**比较复杂的时候先实现再重构**
如果用一个简单的公式表达,那就是:软件工程 = 过程 + 方法 + 工具。

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安全)
- [管理侧内网安全](管理侧内网安全)
- [隐私保护](隐私保护)
- [质量效能](质量效能)
