Software Design and Engineering

软件系统设计和工程化是一个相当大的领域,涵盖了从软件架构、设计模式、开发流程到项目管理等多个方面。

在这里,我会讨论以下内容:

  • 软件设计哲学、原则和设计模式
  • 大规模代码的组织
  • 系统的架构设计、系统演进与重构
  • 最佳实践、工程化、项目管理等

这个领域没有放之四海而皆准的黄金法则,也没有唯一的解法,更多的是针对不同情况的经验总结和最佳实践。

曾几何时,我喜欢只阐述观点而略过书中名人的话。不过后来发现,引用原文既能补充我的描述,也能佐证我的想法,更容易让他人理解和接受我的观点。因此,这里会引用一些业界知名人士的观点和话语。

我会使用 C++ 作为示例语言来说明一些设计原则和模式,但这些原则和模式是跨语言的,适用于各种编程语言。不过,不同编程语言提供的功能不同,具体实现可能有所差异,或需要做出调整。

这里阐述的是一些业界共识及我个人的理解,欢迎批评指正。