首页 > 代码库 > 课堂作业02--架构漫谈笔记
课堂作业02--架构漫谈笔记
《架构漫谈》讲述了架构产生的原因以及怎样做架构。产生的原因:必须由人执行的工作、每个人的能力有限、每个人的时间有限、人对目标系统有更高的要求、目标系统的复杂性使得单个人完成这个系统。简单说就是所有人按照每个人所擅长的进行分工,最后共同完成一件事情,这个过程就形成了社会架构。
作者通过人类建筑学的发展,向我们介绍了架构的基本含义:1.根据要解决的问题,对目标系统的基本边界进行界定,2.并对目标系统按照某个原则的进行切分。切分的原则,要便于不同的角色,对切分出来的部分,并行或串行开展工作,一般并行才能减少时间。3.并对切分出来的部分,设立沟通机制。4.根据3,使得这些部分之间能够进行有机的联系,合并组装成为一个整体,完成目标系统的所有工作。这不仅是建筑行业的构架,也是我们软件行业开发的基本架构。
架构师应该是第一个发现系统问题的。准确识别问题后,还是会有一些问题需要调整,也就是架构的切分。一般来说,架构切分的导火线是人的负载太重。因为维护自己的利益是每个人的本性,所以所有的切分调整,都是对相关人的利益调整。如果不能正确处理系统切分问题,将可能导致严重的后果,因此作者给出了切分的原则:1.必须在连续的时间内发现的一个活动,不能切分。2.切分出来的部分的负责人,对这个部分的权利和义务必须是对等的。3.切分出来的部分,不应该超出一个自然人的负载。4.切分是内部活动,内部无论怎么切,对整个系统的外部应该是透明的
软件架构过程可以明确地拆分为两个不同的责任:其一,表达业务逻辑的代码,很多人把这部分叫做Domain Logic,或者叫Domain Model。这部分实际是来源于生活的,必须保持和现实生活中的切分一致,并非人为的抽象而成。其二,对用户提供访问并保存业务逻辑运行结果的代码。计算机的状态保存有一个缺陷,本机保留业务运行结果有很大的问题,一般都在外存储设备上保存,也便于扩展。众所周知,service的代码是最复杂的,需要服务于三方,为了把这三方的变化对service的影响降到最低,对于service进一步的拆分为三个部分,他们分别是Service、Glue Code、Business,让每一个部分都能够独立的变化,这样这三方的变化就不会产生连锁响应,降低成本。这就是软件架构的本质思想,由于我还为进行过项目的架构的使用,对架构如何在项目中实现还不是很明白。
我认为架构是对于几年以上自己对于软件的总结和经验。
课堂作业02--架构漫谈笔记