架构随想
软件架构就是在软件开发领域,实现软件系统目标的一个架构。当一个人新进入一个系统的时候,首先要摸清的就是这个系统的架构,从形式上去理解内容,从分析其部分到综合其整体。 一个软件系统是为了满足特定的功能需求。正如一个组织部门是为了完成一项事业。这都是在成事的层面。背后则是真正的推动力量必然是人, 是利益相关者。在政治上,是领袖,领袖的联盟成员即领袖的班底,各级官僚,老百姓等。在软件系统的利益相关者,用户客户,项目经理,开发、运维。甲方乙方各自是一个系统,又因为一个软件系统联结成为一个共同的系统。 为了解决特定问题,就需要对问题进行建模,模型就是人们在长期的解决问题过程中,形成的经验套路。为了能让甲方满意,就要找到甲方的关注点,即要需求分析,进而成为软件系统的关键约束,达成人之间的契约约束。 架构并不神秘。它是工程学,而非科学。在科学的世界里,对就是对,错就是错,容不得半点妥协;而在工程的领域里,妥协随处可见。所以没有完美的架构,只有合适的架构。两个差别很大的架构,当不给定context时,我们不能说架构A一定优于架构B。 很多软件工程师在一线开发岗位呆了十年八年,却未被贴上架构师的标签,只因为他们还没有找到属于自己的做架构的机会;而那些高高在上,张口闭口modularity,clean architecture,etc. 却一行代码不肯写也不肯读的所谓的『架构师』们