增量主义是,增量设计与所有的模块化设计应用直接相关,其中组件如果经过改进,可以自由替换,以确保更好的性能。
增量系统逐步创造价值,利用了系统的模块化或组件化。
迭代式工作是在一系列迭代中细化和改进一些东西,增量式工作是一部分一部分地构建一个系统,并在理想情况下一部分一部分地发布。
增量式方法让我们把工作进行分解,一步步增量式地交付价值,以更小、更简单的步骤更快地实现价值和交付价值。
模块化有许多优点,每个组件可以聚焦于问题的一部分来构建,在设计时需要的妥协更少。不同团队独立于其他团队处理每个模块。只要就模块之间的接口达成一致,团队就可以不受约束地解决自己模块的问题。
这是基于组件方法的设计原理,比如微服务。每个组件可以独立测试、部署。
模块化带来的巨大好处之一是隔离,一个模块的内部细节对其他模块是隐藏的。模块化使团队能够独立自由地工作。每个团队都可以增量式地快速前进,而不需要太多的团队间协作。这种自由程度让组织以更快的速度前进和创新。
小团队能在增量式地小步骤中取得进展。小团队可以自由地进行自我变革。模块化组织比传统组织结构更灵活、更可伸缩、更高效。
支持增量主义最彻底的工具是反馈和实验,也需要关注模块化和关注点分离。
低风险变更代码的重要实践是重构。这就是在小的、简单的、可控的步骤中进行变更的能力。
如果将细粒度增量主义与强大的版本控制结合起来,则始终不会离安全的地方太远。测试特别是自动化测试提供了保护,使我们能以更大的信心增量式前进。
为了使系统的各个部分更加独立,可以使用端口和适配器模式。在两个组件之间的接口点即端口定义一段单独的代码来转换输出和输入,即适配器。我们可以自由地更改适配器代码,而不必改变端口背后模块的代码。
持续集成和持续交付帮助在几分钟内发现和解决问题。
复杂的系统不会完全从某个天才创造者的头脑中突然形成,它们往往是开发人员通过努力工作解决问题、加深理解、探索思想和潜在解决方案的成果。这就是增量式设计。
10倍效能程序员使用增量式工作。避免过度设计解决方案。在设计中分离关注点,分解系统的不同部分,设计接口,隐藏接口另一端发生的细节。
能够自由改变代码和想法是优秀工程师的基础,也是增量主义的基础。如果代码变更是困难的,那么就是低质量的。
增量式工作是构件复杂系统的基础。系统是知识理解和累积的结果。