虽然软件并不会随着时间推移而磨损,但是硬件会,随即也需要对软件做相应改动。硬件更新换代是非常快的。
关于测试,总会有许多讨论,测试是系统一部分还是独立于系统之外?测试分为几种?单元测试和集成测试有什么不一样?质量检查测试,功能性测试,Cucumber 测试,TDD 测试,BDD 测试,分别又是什么?...
架构设计的任务就是找到高层策略和低层细节之间的架构边界,同时保持这些边界遵守依赖关系规则。所谓服务,本身只是一种比函数调用成本稍高的,分割应用程序行为的一种形式,与系统架构无关。...
在所有系统中,总会有一个入口函数,负责创建,协调,监督其他组件的运转。我们通常成为Main函数,在静态编程语言中通常如此。
人们习惯将系统分为三个组件:UI,业务逻辑,和数据库。对于一些简单的系统来说,三个就够了,但是稍微复杂一点的系统组件就不止这三个了。
构建完整的架构边界是一件很耗费成本的事情,在这个过程中,需要为系统设计双向的多态接口,用于输入和输出的数据结构,以及管理相关依赖,以便于划分组件。这里会有大量的前期工作,和后期维护工作。...
例如,一个住宅的设计图纸,我们一看到每个房间的作用,应该不会怀疑这是一个住宅。几乎整个建筑设计都在尖叫着告诉你:这是一个家。
flutter中自带了drawer组件,可以实现通用的菜单功能,那么有没有一种可能,我们可以通过自定义动画来实现一个别样的菜单呢?
如果我们要将应用程序,划分为业务逻辑,和插件两个部分。就必须仔细的了解业务逻辑是什么。
本质上所有软件系统就是一组策略语句的集合。每一段代码都是策略。软件架构设计的重点工作之一就是,将这些策略彼此分离,然后按照变更要求进行分组。其中变更原因,频率层次相同的策略应该被分到一个组件中。反之,就不该放...