软件架构设计感悟

简介:

如果你要开一家能处理公司相关业务的公司。你将要面对如何设计这个公司的职能部门,定义工作岗位,业务如何通过这些职能部门进行处理的问题。如果是10人以内小公司,那无所谓。如果是上百人的公司,那么就得有详细的职能部门划分,有规范的业务办理流程。
软件的架构设计与设置一家公司的组织架构有异曲同工之处。

接口类,其实就是定义一个工作岗位。定义了这个岗位的职能范围。
每个类实例化的对象,其实都是这个工作岗位上的员工。

设置一个工作岗位之前,我们一定要想清楚这个岗位的职能范围。要给这个岗位命一个明确(一看就知道它的职能)的岗位名称。
这个岗位上的员工只能从事岗位职能范围内的工作。我们不能随意给这个岗位添加与这个岗位预想职能范围不符的职责。比如:“项目经理”,不能因为开发需发把编码的工作强加给它。职能范围要划清,什么该做,什么不该做,一定要明了。(单一法则)

社会很多关系都是上下级关系的。一个工作岗位上可能手下会有几个别的岗位。如:项目经理下可能会有软件组长、硬件组长、平台组长。而这些组长下,还会有其它岗位。(组合模式)

下属辞职必须要与上级解除上下级关系(人都走了,我怎么让他工作)。上级也可以为岗位招聘新员工(new成员变量)。如果上级被解职,那么其有义务辞掉(delete)其下属(不能不干事儿领空饷)。

上级可以向下级下达工作指令(直接调用)。下级属需要上级协助,那么可以向上汇报(发信号)。如果直属上级不能处理,可以接着向上汇报,直到被上级处理。(职责链)

一个良好的架构,有很明朗的业务流程规则。当我们在增添一个新的业务流程的时候,我们希望一眼就能找到最直接最正确的工作流程。而不是:“这样可以实现,那样也可以”。否则会让我们浪费大量的时间来犹豫,且最终不一定能选择到正确的实现方法。维护的人多了,各创一套,杂乱无章。

一个应用中,顶多只能有一个单例(应用实例本身)。所有的对象都应该在编制内。

想到的就这么多,欢迎指正。

目录
相关文章
|
8月前
|
缓存 NoSQL 前端开发
|
文字识别 算法 NoSQL
读书分享:《程序员修炼之道:通向务实的最高境界》的思想经验
相较于全书众多的干货笔记,这篇文章是个别思想经验的总结,希望和大家交流。 ETC;DRY不仅限于编码;维护一个项目概念列表;帮助业务方理解他想要什么;防御性编程;继承税;学会沟通;小实验
读书分享:《程序员修炼之道:通向务实的最高境界》的思想经验
|
数据可视化
设计国学,软件设计感悟
设计国学,软件设计感悟
|
存储 缓存 负载均衡
|
架构师 前端开发 程序员
为了成为一名架构师必须稳扎稳打,软件架构设计的基本概念
软件行业的人才结构是金字塔,我们的目标就是向塔尖走去,从程序员到技术经理或者程序员到架构 师,都是我们职业路上所追求的。
|
存储 架构师 程序员
为了成为一名架构师必须稳扎稳打,软件架构设计知行合一很重要
最近在看程序员向架构师转型这本书,同时也做了思维导图的笔记,确实也是有一些收获,在为做好一个架构师而做准备,通过学习架构设计的原则到设计架构的过程来对架构师的工作有更大而全的认识。
|
设计模式
【参与评论有奖】把书读薄 | 《设计模式之美》总结篇(上)
从六月开始,断断续续,算是把王争的《设计模式之美》看得差不多了,实战部分没来得及看,不过也是获益良多,思维方式上的一些变化。肚子里的墨水不多,不知道如何描述这种感觉,说两个实际的应用场景,读者自行意会哈,顺便带出总结思维导图~
197 0
|
设计模式 数据处理
【参与评论有奖】把书读薄 | 《设计模式之美》总结篇(下)
从六月开始,断断续续,算是把王争的《设计模式之美》看得差不多了,实战部分没来得及看,不过也是获益良多,思维方式上的一些变化。肚子里的墨水不多,不知道如何描述这种感觉,说两个实际的应用场景,读者自行意会哈,顺便带出总结思维导图~
193 0
|
敏捷开发 架构师 测试技术
软技能2:软件开发者职业生涯指南-读书笔记
整书有很多内容,从成为一名软件开发者一直到完整的职业生涯,这里只是记录自己阅读过程中感受最深或者最受用的部分。
|
架构师
10年技术管理实战不传心法
10年技术管理实战不传心法
117 0
10年技术管理实战不传心法