《程序员必读之软件架构》读书笔记

简介:

网站作者 Simon Brown的书。编码的架构师,一直是我的职业模板。而当年我觉得RUP的基于4+1视图的机械架构文档模板不足以表达系统时,Simon Brown的模板给了很好的过渡范例。

《程序员必读之软件架构》读书笔记 I

架构师应该编码吗?

有些公司认为架构师太宝贵了,不该承担日常编码工作。

优秀的架构师的重要特征是抽象思维能力,也可以理解为不把时间耗在细节里。

一些大型项目通常意味着照看更大的“大局”,有可能你根本没时间写代码。

你不必放弃编码,也不要把大部分时间用于编码

你不应该因为“我是架构师”,就把自己排除在编码之外。但也必须有足够的时间扮演技术架构师的角色。

1. 参与编写代码

要避免成为PPT架构师, 最好是参与实现与交付的过程,确保架构的交付,接地气的了解设计在实现上的问题,演进架构而不是画完框图就交给实现团队从此不管。同时,缩短与团队的距离,分享自己软件开发的经验,帮助团队对架构的正确理解。

另外,作为开发团队的一份子,你不需要是开发代码最好的。

2. 构建原型、框架和基础

如果不能参与日常编码,至少尝试在设计时快速构建原型去验证你的概念。还有为团队编写框架和基础,这也是最磨练与体现编码与设计能力的时刻。

3. 进行代码评审

如果完全没有时间编码,至少参与代码评审,了解发生了什么。

4. 实验并与时俱进

如果完全没有时间在工作时间里编码,在工作之外你往往有更多空间来维持编码技能,从贡献开源项目,到不断尝试最新的语言、框架。

一般来说,一个写代码的软件架构师会更有成效也更快乐。


来源:51CTO

相关文章
|
设计模式 JSON 架构师
你真的需要防腐层吗?DDD 系统间的7种关系梳理与实践
当提到系统间交互的时候,人们都会想到大名鼎鼎的防腐层,用来防止其他系统的模型变更对本系统造成影响。但是在实践这个模式的过程中,我们常常会遇到问题。此时我们也应该考虑下其他的系统交互方式。
27935 12
你真的需要防腐层吗?DDD 系统间的7种关系梳理与实践
|
Java 容器 Spring
聊聊Spring的bean覆盖(存在同名name/id问题),介绍Spring名称生成策略接口BeanNameGenerator【享学Spring】(中)
聊聊Spring的bean覆盖(存在同名name/id问题),介绍Spring名称生成策略接口BeanNameGenerator【享学Spring】(中)
|
人工智能 物联网 Android开发
探索安卓开发的未来趋势:从传统到尖端技术
随着技术的不断进步,安卓开发领域也迎来了新的变革。本文将深入探讨安卓开发的最新趋势,包括Kotlin的崛起、Flutter的应用、AI集成以及物联网的结合等方面。我们将通过分析这些技术如何影响当前的开发实践,来揭示未来安卓应用开发的可能方向。文章旨在为开发者提供前瞻性的视角,帮助他们把握技术发展的脉搏,从而在竞争激烈的市场中脱颖而出。
422 1
|
数据可视化 Java
探索Drools:Java世界的规则引擎
探索Drools:Java世界的规则引擎
984 1
|
敏捷开发 监控 架构师
【领域驱动设计专题】一文带领你透视DDD领域驱动模型的本质和设计原理分析指南(构建领域知识)
【领域驱动设计专题】一文带领你透视DDD领域驱动模型的本质和设计原理分析指南(构建领域知识)
415 0
|
前端开发 Java Maven
springboot整合websocket最基础入门使用教程详解
springboot整合websocket最基础入门使用教程详解
4248 0
springboot整合websocket最基础入门使用教程详解
|
领域建模
领域建模问题之四色原型具体是哪四色呢
领域建模问题之四色原型具体是哪四色呢
340 0
|
SQL 关系型数据库 MySQL
深入探究MySQL中的NULL
不知道大家有没有遇到这样的问题,当我们在对MySQL数据库进行查询操作时,条件写的是status!=1,理论上会将所有不符合条件的查询出来,但奇怪的是结果为NULL的就查不出来,必须得拼接上条件or status IS NULL。本篇文章我们就一起探究一下MySQL中的NULL。
1112 0
|
存储 算法 C语言
怎么理解面向对象和面向过程到底的本质区别? .
面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。 面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。
|
XML 人工智能 Java
Spring Bean名称生成规则(含源码解析、自定义Spring Bean名称方式)
Spring Bean名称生成规则(含源码解析、自定义Spring Bean名称方式)