13518219792

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

成为一个优秀架构师,你必须了解的30条设计原则

众所周知,架构师的角色,更偏向于策划、而非指挥,塑造、而非支配,其存在的意义,在于引导大家讨论、而非自己主宰一切。

但是,具体应该如何执行呢?本文作者整理了 30 个公认的架构原则,来帮助大家解决此问题。也许有的原则,你从未听说,但你看完就能快速学会。

相信你学会了,工作起来也会事半功倍,或许还可帮你避免很多无用的加班!

本文作者叫 Srinath Perera,是一位计算机科学家、软件架构师、作家。他是 Apache 的核心成员,拥有 15 年分布式系统编程经验,设计了 Apache Axis2 以及 WSO2 流处理器。

在 WSO2,我参与架构评审的时间已长达八年之久。WSO2 的产品非常丰富,比如 WSO2 ESB 、WSO2 API Manager 以及 WSO2 SP 都人尽皆知。在过去八年中,我们对许多产品和功能进行了讨论、设计、改进和重新设计。

我们在设计软件的过程中,把握的一个关键点是:软件架构并非由架构师负责设计。我们的架构不是由架构师制定,然后交给其他人来实施。

相反,架构的设计任务由真正编写代码的团队负责。架构师负责对工程师设计的架构进行修复、完善和改进。我们的架构团队是指导员和把关人,而非独裁者。

在短期内,由一位架构师来制定架构的确既快捷又实惠。但是,从长远来看,我们会组建一个团队,让他们自己不断思考、改善架构,并从他们的错误中来提升自己。

当我们专注于团队时,他们自然会随着时间的推移而变得更好。架构团队的首要任务是:尽可能保证架构容易执行。此外,架构评审也存在缺陷。

就像 Paul (@pzfreo)描述的架构评审那样:架构师参与进来,听一会,发表一点评论然后就走了。作为一名架构师,你对架构发表自己的看法和意见无可厚非。但是,如果你不够投入和细心,你的意见可能会让团队感到困惑,团队就无法确定正确的做法到底是什么。

接下来我会将 30 个架构原则一一列出,其中一些原则是众所周知的,而有些则源于我的个人经验和心血。

基本原则

功能选择

服务端设计和并发

分布式系统

用户体验

难点

最后,谈一下我的感受。在理想情况下,一个平台应当由多个正交组件组成,每个组件负责一个方面(例如,安全性、消息传递、注册、调解、分析,等等)。使用这些功能构建的系统将是很好的。

不幸的是,现实中我们很难达到这样的状态。因为在项目初始状态时,很多事情是不确定的,你无法做到这样的独立性,现在我认为在开始的时候适当的重复是必要的,当你尝试铲除他们的时候,你会发现引入了新的复杂性,分布本身就意味着复杂。有时候治愈的过程要比疾病本身更加的糟糕。

总结

作为一个架构师,我们应该像园丁一样思考、塑造、策划和去除杂草而不是定义和构建。虽然在短期内,由一位架构师来制定架构的确既快捷又实惠。但是,从长远来看,团队的力量才是强大的。

如果你不够投入和细心,你只指出错误,但是不道明错误原因,那么你的意见可能会让团队感到困惑。避免这种情况的一种方法是拥有一套普遍接受的原则,这些原则是讨论架构时遵循的基本点,也是初学者学习架构的好资源。所以想成为一名优秀的架构师,还是需要长期的磨练以及时间的验证,当然随时保持学习的状态也是非常重要的。当你学会更多知识,你便会更清晰的解决各种复杂的架构问题。


名称栏目:成为一个优秀架构师,你必须了解的30条设计原则
转载源于:http://cdbrznjsb.com/article/dpsjhei.html

其他资讯

让你的专属顾问为你服务