Software Design and Engineering
软件系统设计和工程化是一个相当大的领域,涵盖了从软件架构、设计模式、开发流程到项目管理等多个方面。
在这里,我会讨论以下内容:
- 软件设计哲学、原则和设计模式
- 大规模代码的组织
- 系统的架构设计、系统演进与重构
- 最佳实践、工程化、项目管理等
这个领域没有放之四海而皆准的黄金法则,也没有唯一的解法,更多的是针对不同情况的经验总结和最佳实践。
曾几何时,我喜欢只阐述观点而略过书中名人的话。不过后来发现,引用原文既能补充我的描述,也能佐证我的想法,更容易让他人理解和接受我的观点。因此,这里会引用一些业界知名人士的观点和话语。
我会使用 C++ 作为示例语言来说明一些设计原则和模式,但这些原则和模式是跨语言的,适用于各种编程语言。不过,不同编程语言提供的功能不同,具体实现可能有所差异,或需要做出调整。
这里阐述的是一些业界共识及我个人的理解,欢迎批评指正。