软件架构:决策与选择

架构师最重要的工作是思考。思考导致决策,或者选择。

为决策而思考

架构师思考的出发点是成就受益人的利益,目的就是为了最终做出决策。在开始的时候,往往会有一些明显的途径,也会有一些隐含的途径。架构师要根据所掌握的信息,结合自身的知识、经验,尽可能找出所有的途径,思考哪条途径是最合适的。在这个过程中,有一些途径会很快被排除。排除一条途径的依据,首先是软件的价值,其次是软件的假设和前提。良好的实践是记录这些思考过程中被排除的途径,特别是对于经验不是特别丰富的架构师来说,这非常重要。

需要特别提出的是,不要因为不精通某项技术而排除可行的途径。因为一般情况下,技术对软件价值的影响是次要的。比如,当你在JSF和struts之间摇摆的时候,把这个问题提出来讨论,是更好的做法。

决策需要依据

决策是合理的(Reasonable)选择。架构师需要考虑各种选择的优缺点,再根据实际情况,找到支持决策的依据。因为个人及项目等多方面的原因,这些依据也可能是不充分的。但这不要紧,最重要的是,决策要有依据,这就够了。在思考和讨论的过程中,对于反面的意见(不支持决策的依据),也要充分考虑和记录,因为不知道什么时候,这些因素会因环境、认识的变化而由假成真,如果没有相关的记录,你会为此而失去一次宝贵的成长机会。:)

有时候也需要选择

人的智力是有限的,眼界也是有限的。有时候你会发现几条路径很难说哪个更优一点。这时候你面临的就是选择,像掷骰子一样。这是架构设计中风险最大的地方。墨菲定律说:“凡事只要有可能出错,那就一定会出错。”(Anything that can go wrong will go wrong.)把这个选择记录下来,只要可能,就要来重新评价。

如果没有选择的余地

任何时候,如果你感觉只有一种选择(或者你毫无理由的排除了其他选择),这可能说明:

1. 你的知识还不够,过早进入架构设计的领域,对你不是一件好事;或者

2. 你凭借感觉做决策,实在不适合做架构师这样的工作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值