软件开发生命周期
Zoom into设计与开发
设计中需要注意的点包括,架构方式,质量属性,消息机制,APIs;开发需要确定:编程语言,设计模式,工具,自动化。
Architecture是development的输入,
APIs和消息,感觉现在软件设计时都强调使用REST API来作为接口,感觉所有的服务都成为了网络服务形式。
质量属性包括伸缩性(scalability),适应能力(reliance),适配性(adaptability),安全性。这部分对架构影响很大。
现在的设计模式主要包括:
difference between architecture pattern and design pattern
架构模式在上层也就是在产品设计阶段,我认为是定义有哪些组件,以及组件怎么交互;设计模式是开发阶段,关注的是组件本身如何设计。
以下是集中架构模式和设计模式:
最传统的就是第一个,作为一个软件,分层设计实现,每层中用API调用。
分布式设计,是事件驱动;微服务说实话我怎么感觉也是分布式的呢。这块没怎么明白。
除了上述几种,还有为内核模式,操作系统就采用这种模式,他有个大的内核,其他功能作为插件集成进来。
推荐的学习资料
右边这本是被强烈推荐的:面向模式的软件架构,卷1:模式系统。