今天学习了《架构漫谈》,对什么是架构、怎样做好架构、如何根据架构写好程序等有了更加清楚的认识。下面简单谈一下我的一些自己的想法。
首先我们要明确的就是到底什么是架构?为什么产生架构?老师上课的时候以程序员的发展来解释这个问题,在早期编程的时候,程序比较小,一个人完全可以开发一个软件,这时候是不需要任何架构就能完成任务的;而随着计算机软件技术的高速发展,一个人编程已经成为了过去式,现在都是以编程团队为单位进行开发,这时候就需要架构来指导我们进行开发,由此可以引出一个架构的定义:把一个整体切分成不同的部分,由不同的角色来完成这些分工,并通过建立不同部分相互沟通的机制,使这些部分有机的结合为一个整体,并完成这个整体所需要的所有活动,这就是架构。
总之,架构要:1.根据要解决的问题,对目标系统的边界进行界定。2.对目标系统按某个原则进行切分。3.并对这些切分出来的部分,设立沟通机制。4根据切分出来的部分,合并成为一个整体,完成目标系统的所有工作。
然后我们要认识一下概念,这是理解架构的基础。就比如说桌子,一件日常生活中很常见的东西,但是真要是抽象出一个概念的话,我们不一定能描述清楚,所以说要理解架构的定义,做好架构,就必须要有正确认识概念的能力。
接下来我们要做的就是正确的识别问题,就拿文章中切土豆的问题为例,女主人公让男主人公切一半土豆下锅,而男主人就每个土豆都切了一半,结果可想而知。男主人公的错误就是没有正确的识别问题。要正确的识别问题,我们一定要分析出主体是谁,作为一个软件架构师,我们要解决的问题一定是别人的问题。而在这一过程中,需要问两个问题,是谁的问题,有什么问题?
当我们完成识别问题后,就需要对系统进行切分,而切分的原因呢?大抵有几种情况:某个或某些利益相关人等额负载太重,时间上负载太重,某个或者利益相关人的权利与义务不对等。其实切分的过程就是建模的过程,架构切分最终会产生分层,我们要尽量使其变成一颗平衡树,使整个系统的效率最大化。
那么到底什么是软件呢?软件,其实就是用机器模拟人,在硬件上进行编程,以控制软件的各种行为。其实软件架构的发展架构的发展是相似的,开始的时候规模比较小,只需要一个人便可完成编程工作,随着软件规模的扩大化,单个程序员的编程已不能满足需求,于是便出现了架构师,人们将软件划分的工作交给架构师,让他对每个程序员的工作进行划分,实现利益的最大化。
软件架构,软件因流量增大而拆分成不同的运行单元,在不同机器上部署所形成的软件架构,属于软件架构。每个运行单元为了让不同角色的人,比如前端,业务,数据存储等能够并行工作,所分成的代码架构,也是软件架构。
要成为一个优秀的架构师,我们就不能惧怕对时间的恐惧和压力,这是不自信的表现,我一定突破这个障碍,才能最终成为一个合格的架构师,另外,架构师必须是一个领导人,有实权,这样才能充分平衡别人的利益,做到利益的最大化。架构师还必须有一定的技术能力才能设计出优秀的架构。
那么如何根据架构来写出好的代码呢?我的理解就是,将代码进行分层,将处理数据库操作、逻辑业务层、界面表现层分出来。这样可以降低代码的耦合程度,当需要修改代码的时候,只需要改很小的一部分就可以完成功能的改变。
标签:读后感,编程,架构,漫谈,问题,切分,软件架构,架构师 From: https://www.cnblogs.com/fuchuchu/p/18048132