任安在 IT 公司工作的人,对于“架构”这个词应该都不陌生。但你去问“架构”这个词是什么意思,好像又有点只可意会不可言传的意思。那么
“架构”这个词,它应该如何界说呢?
架构操持对于软件体系和软件开发而言起到的作用是什么呢?
软件体系或软件产物的架构应该用什么样的方式表达呢?
这篇文章,会实验讨论一下上面这些题目。
如何界说架构操持?
我们先来看一个古老的的头脑实验:
忒休斯之船(The Ship of Theseus)最早出自罗马帝国期间普鲁塔克的纪录。它形貌的是一艘可以在海上飞行几百年的船,归功于不绝止的维修和更换部件。只要一块木板腐烂了,它就会被更换掉,以此类推,直到全部的功能部件都不是最开始的那些了。题目是,终极产生的这艘船是原来的那艘忒休斯之船,还是一艘完全差异的船?如果不是原来的船,那么在什么时间它不再是原来的船了?
(摘自百度百科)
如前文所述,如果在软件体系开发前,没有将架构题目办理,那么会给开发工作带来无尽的贫苦。而对于从事 TO B 软件产物或服务开发的商业组织而言,因其所提供的产物或服务要面临差异客户,也肯定碰面临差异客户的差异需求所带来的定制化题目,架构操持的紧张性就更加不问可知。
因此在产物或服务的立项阶段和研发过程中的操持阶段,就必须将业务架构、应用架构、数据架构和技能架构中的关键题目形貌清晰,而且该产物或服务的功能越多、摆设方式越复杂就越必要认真完成这一工作,不可绕过。如果只是把 UI/UE 操持完成绩开展相干的研发工作,肯定会在熵增的路上越陷越深。