虽然软件并不会随着时间推移而磨损,但是硬件会,随即也需要对软件做相应改动。硬件更新换代是非常快的。
关于测试,总会有许多讨论,测试是系统一部分还是独立于系统之外?测试分为几种?单元测试和集成测试有什么不一样?质量检查测试,功能性测试,Cucumber 测试,TDD 测试,BDD 测试,分别又是什么?...
架构设计的任务就是找到高层策略和低层细节之间的架构边界,同时保持这些边界遵守依赖关系规则。所谓服务,本身只是一种比函数调用成本稍高的,分割应用程序行为的一种形式,与系统架构无关。...
在所有系统中,总会有一个入口函数,负责创建,协调,监督其他组件的运转。我们通常成为Main函数,在静态编程语言中通常如此。
人们习惯将系统分为三个组件:UI,业务逻辑,和数据库。对于一些简单的系统来说,三个就够了,但是稍微复杂一点的系统组件就不止这三个了。
构建完整的架构边界是一件很耗费成本的事情,在这个过程中,需要为系统设计双向的多态接口,用于输入和输出的数据结构,以及管理相关依赖,以便于划分组件。这里会有大量的前期工作,和后期维护工作。...
当我们第二天醒来,发现之前运行好的代码突然间不能工作了。这很有可能是因为别人修改了我们所依赖的组件。主要原因是多个程序员同时修改了同一个源代码文件导致的。在项目小,人数少的项目中,这种情况或许不严重。项目大...
单一职责原则(SRP:Single Responsibility Principle)。
该范式,主要提到一个人,Dijkstra,该范式主要由他提出,为行文方便,下文简称大壮。
该篇提出了一个问题:系统行为和系统架构的灵活性,哪个更重要?即系统正常工作更重要,还是系统易于修改更重要。分别对应了软件系统的两个价值维度。...