**比较复杂的时候先实现再重构** 如果用一个简单的公式表达,那就是:软件工程 = 过程 + 方法 + 工具。 ![image.png|1000](https://imagehosting4picgo.oss-cn-beijing.aliyuncs.com/imagehosting/fix-dir%2Fpicgo%2Fpicgo-clipboard-images%2F2024%2F11%2F24%2F02-15-34-732744fab378837671302ddc8f050bfa-202411240215416-56f187.png) data in data out 中的 data flow 就是所谓的瑞士计算机科学家 Niklaus Wirth 的名言『程序设计 = 算法 + 数据结构』。 软件工程 本质是信息工程 信息的传达是基础 核心 和大头 之上的一致性 和可靠性 考验程序员的高阶能力 周末用了 cursor 这款新的 IDE,非常震撼,完美解决了过去 AI 编程交互中所有的痛点, 其实这款软件,从技术上并无难点,单是复制粘贴的原理就可以融资十亿美金,不由地 引发我们去思考,软件的本质到底是什么? 随着这一年对于开发工作的熟悉,我觉得答案就是 data in data out。看似简单,但是其 实在人类社会中所有能让信息流动变得更丝滑的点,背后都意味着效率、利润、和生产 力的提高。 延伸到最近参与的 P2 需求中对自己负责的数字化工具的迭代,其实 grocery 在 sirius 这 样的复杂业务系统中,起到的作用就是把 data in data out 过程中的 data flow,通过前端 化的手段做一个更可读的呈现,是加强版的业务日志。另一方面通过工程化的固化和迭代, 将过去业务代码中容易腐化的业务注释和代码逻辑,做了有力的固化和绑定,以实现保鲜 的效果。可以称之为『软件的软件』。这样面向 data flow 本身的 data in data out 其实是 有很大的复用空间的,所有以责任链模式为主体框架的复杂业务系统,我相信都有去设计 和实现这样一个伴生系统的必要。 ## 原则 DRY 是软件开发中的一个重要原则,全称是 "Don't Repeat Yourself"(不要重复自己)。这个原则由 Andy Hunt 和 Dave Thomas 在他们的著作《程序员修炼之道》(The Pragmatic Programmer)中提出。DRY 原则的核心思想是 每一个知识点在系统中都应该有一个单一、明确、权威的表示。 Single responsability principle: every note should be responsible of one unique topic. Even if it means having shorter notes (KISS design principle here 😄). I like to see this principle through the maxim "Divide for better reign". Open-closed principle: Even if it's a bit counter intuitive with the principle around evergreen notes, I try to extend more than I modify my notes. It force navigation around concepts more than getting stuck on long articles. --- 知乎上面有哪些计算机科学与软件工程方面值得一看的问答?- 知乎 https://www.zhihu.com/question/30114650/answer/46817941 - [后端](后端) - [Golang](Golang.md) - [计算机基础知识](计算机基础知识) - [设计模式](设计模式) - [计算机网络](计算机网络) - [计算机体系结构](计算机体系结构) - [数据结构和算法](数据结构和算法.md) - [前端@](前端@.md) - [JavaScript](JavaScript.md) - [开发框架](开发框架) - [React](React) - [Vue](Vue) - [浏览器](浏览器.md) - [项目管理](项目管理.md) - [项目规划](项目规划) - [需求分析](需求分析) - [系统设计](系统设计) - [开发测试](开发测试) - [运维运营](运维运营) - [团队协作](1%20一切皆项目/搁置中/Q2:做CS的经典lab%201/Q2:做CS的经典lab/团队协作.md) - [云原生](云原生) - [IAAS](IAAS) - [PAAS](PAAS) - [云架构](云架构) - [云服务](云服务.md) - [运维Devops](运维Devops) - [微服务](微服务) - [Git](Git.md) 和 [github](github.md) - [Linux](Linux.md) - [MacOS](MacOS) - [DevOps的定义、价值、实施与衡量](DevOps的定义、价值、实施与衡量) - [可信与安全](可信与安全) - [编译构建](编译构建) - [开源使用](开源使用) - [配置管理](配置管理) - [软件工程@](软件工程@.md) - [网络安全](网络安全) - [租户侧Web安全](租户侧Web安全) - [管理侧内网安全](管理侧内网安全) - [隐私保护](隐私保护) - [质量效能](质量效能) ![image.png|1000](https://imagehosting4picgo.oss-cn-beijing.aliyuncs.com/imagehosting/fix-dir%2Fpicgo%2Fpicgo-clipboard-images%2F2024%2F06%2F29%2F17-39-55-175cfb2e81a8d60ad7656e4cc65f181c-20240629173955-e8812b.png)