读书笔记-《程序员必读之软件架构》
什么是软件架构师?
软件架构师是一个开发角色,不是一个行政级别;是一个循序渐进的过程,不是一蹴而就的;是一个实践的职位,不是一个空谈写文档的职位。
架构师决定了软件的结构和具体的设计、技术选型、架构演化,不单满足业务功能需求,还需要满足各种非业务功能需求,比如:登录和拦截、日志审计、性能等。
架构师应该编码吗?
必须
架构设计是一个实践活动,作为架构师必须不断的做各种实验。通过编码来验证想法,验证新的技术,验证新的框架。
架构师不需要全部时间用在编码上面,除了技术,平衡资源与安排进度也是一门学问。
既要低头拉车,也要抬头开路。
架构师哪些需要的软技能?
需要的很多,但在下以为最重要的是以下几个?
- 领导力,保证团队的目标愿景一致,并带领团队向目标前行的能力。
- 沟通, 再好的想法也要别人认同,良好的沟通能够保证想法不失真,能保证内外的协调一致。
- 信心, 是领导力和沟通的基础,有信心的架构催生更易演进的架构设计。
软件架构不是接力运动。
着重强调下,架构不是单个活动,不是接力活动,是一个持续的活动。架构师在整个软件生命周期内,都要对软件负责。
现代软件需要文档吗?
需要,非常需要。至少需要两份文档,一份是软件使用说明书,一份是软件维护说明书。第一份告诉用户如何使用系统,第二份告诉运维同学如何维护系统。这两份文档能极大压缩开发人员的维护成本。
恰如其分的预先设计?
如何做到恰如其分?