虽然软件并不会随着时间推移而磨损,但是硬件会,随即也需要对软件做相应改动。硬件更新换代是非常快的。
关于测试,总会有许多讨论,测试是系统一部分还是独立于系统之外?测试分为几种?单元测试和集成测试有什么不一样?质量检查测试,功能性测试,Cucumber 测试,TDD 测试,BDD 测试,分别又是什么?...
架构设计的任务就是找到高层策略和低层细节之间的架构边界,同时保持这些边界遵守依赖关系规则。所谓服务,本身只是一种比函数调用成本稍高的,分割应用程序行为的一种形式,与系统架构无关。...
人们习惯将系统分为三个组件:UI,业务逻辑,和数据库。对于一些简单的系统来说,三个就够了,但是稍微复杂一点的系统组件就不止这三个了。
上一章节中,引入了展示器的概念(presenter)。它实际上是采用谦卑对象(humble object)模式的一种形式,这种设计模式可以帮助试别和保护系统架构的边界。上一章节中,介绍的整洁架构就充满了大量的谦卑对象的实现体。...
1999年,英伟达发布第一代GPU架构GeForce 256,标志着GPU时代的开始。随后,英伟达推出了Tesla、Fermi、Kepler、Maxwell、Pascal、Volta、Turing和Ampere等GPU架构,不断增强GPU的计算能力和程序性,推动GPU在图形渲染、...
虽然这些架构在细节上各有不同,但总体是相似的,它们都有一个共同的目标,按照不同的关注点对软件进行切割分层,并且至少有一层是只包含该软件的业务逻辑的,而用户接口,系统接口属于其他层。...
例如,一个住宅的设计图纸,我们一看到每个房间的作用,应该不会怀疑这是一个住宅。几乎整个建筑设计都在尖叫着告诉你:这是一个家。
如果我们要将应用程序,划分为业务逻辑,和插件两个部分。就必须仔细的了解业务逻辑是什么。
本质上所有软件系统就是一组策略语句的集合。每一段代码都是策略。软件架构设计的重点工作之一就是,将这些策略彼此分离,然后按照变更要求进行分组。其中变更原因,频率层次相同的策略应该被分到一个组件中。反之,就不该放...