63. 架构师首先是开发人员
身居要位仍然要继续跟进各自领域的发展。获得开发人员的尊重和信任,让开发人员自愿接下任务。
时不时的去处理一些比较复杂的任务,目的:a)让自己做到宝刀不老 b)有助于向开发人员证明自己不是只会吹牛皮的
主要目标是创建可行、可维护的解决方案。且自己设计的系统自己应该能编程实现。
64. 根据投资回报率(ROI)进行决策
我们对项目所做的每一个决策--无论是技术、过程、还是与人相关都可以看作是一种投资形式。假设产品上市时间对投资方是至关重要的,那么快速发布就能带来更高的投资回报率,这个时候“完美的架构”就不如架构稍差,但能快速完成的版本。
将架构决策视为投资,并将相关的回报率也一并考虑在内。
65. 一切软件系统都是遗留系统
系统再先进,对接手它的人而言,都是遗留系统,所以不应该排斥这个标签。
66. 起码要有两个可选的解决方案
对某个问题,如果只考虑了一个解决方案,就有麻烦了。如果没有对比其它方案之前就想当然地给出了解决方案,那就要三思了。
67. 理解变化的影响
架构师在解决方案中给出的抽象,应该能为更高的层次提供坚实基础,应该能足够务实地应付未来的变化。了解变化,包括人与人,系统与系统的。要清楚认识解决方案中变化的类型和将带来的影响。
68. 你不能不了解硬件
架构师既要负责连接业务需求和软件解决方案,也要负责连接硬件和软件。硬件方面的一些知识同软件架构一样重要,比如说硬件的容灾能力、容量规划等。如果缺乏硬件规划能力,最好和基础设施架构师紧密合作。
69. 现在走捷径,将来付利息
碰到架构问题或设计缺陷,作为架构师,一定要坚持成本还很低廉时就动手。搁置越久,为之付出的利息也就越高。
70. 不要追求“完美”,“足够好”就行
“足够好”指的是,剩余的不完美之处,对系统的功能、可维护性或性能不会产生任何有深远意义的影响。
71. 小心“好主意”
“好”主意的邪恶之处:它们是好的,不容易被发现它们的问题,如:某框架有升级版本,我们也应该使用新版本。某技术很强大,我们可以把它用于……
72. 内容为王
很多系统无止境地强调需求、设计、开发、安全等,从未关注系统真正的要点---数据。对基于内容的系统,数据尤其重要。在新系统的设计过程中,必须留出一部分精力专心考评内容库。比如系统重点关注哪些内容,能否及时更新,内容主要来源等等。
系统的成功取决于其内容。
73. 对商业方,架构师要避免愤世嫉俗
自我感觉过于良好,往往会忘记倾听,并且会拒绝听取、分析别人的建议。过度自信,会让你在业务领域头破血流。业务是架构师职业存在的原因,为业务服务是我们的生存之本,倾听和了解雇主的业务,是我们必须掌握的最为关键的技能。
不能只提批评意见,还需要针对不足提出建设性的意见。