Posted on 2008-09-18 22:54
非鱼 阅读(2334)
评论(4) 编辑 收藏 所属分类:
面向对象设计
架构师最重要的工作是思考。思考导致决策,或者选择。
为决策而思考
架构师思考的出发点是成就受益人的利益,目的就是为了最终做出决策。在开始的时候,往往会有一些明显的途径,也会有一些隐含的途径。架构师要根据所掌握的信息,结合自身的知识、经验,尽可能找出所有的途径,思考哪条途径是最合适的。在这个过程中,有一些途径会很快被排除。排除一条途径的依据,首先是
软件的价值,其次是软件的假设和前提。良好的实践是记录这些思考过程中被排除的途径,特别是对于经验不是特别丰富的架构师来说,这非常重要。
需要特别提出的是,不要因为不精通某项技术而排除可行的途径。因为一般情况下,技术对软件价值的影响是次要的。比如,当你在JSF和struts之间摇摆的时候,把这个问题提出来讨论,是更好的做法。
决策需要依据
决策是合理的(Reasonable)选择。架构师需要考虑各种选择的优缺点,再根据实际情况,找到支持决策的依据。因为个人及项目等多方面的原因,这些依据也可能是不充分的。但这不要紧,最重要的是,决策要有依据,这就够了。在思考和讨论的过程中,对于反面的意见(不支持决策的依据),也要充分考虑和记录,因为不知道什么时候,这些因素会因环境、认识的变化而由假成真,如果没有相关的记录,你会为此而失去一次宝贵的成长机会。:)
有时候也需要选择
人的智力是有限的,眼界也是有限的。有时候你会发现几条路径很难说哪个更优一点。这时候你面临的就是选择,像掷骰子一样。这是架构设计中风险最大的地方。墨菲定律说:“凡事只要有可能出错,那就一定会出错。”(Anything that can go wrong will go wrong.)把这个选择记录下来,只要可能,就要来重新评价。
如果没有选择的余地
任何时候,如果你感觉只有一种选择(或者你毫无理由的排除了其他选择),这可能说明:
1. 你的知识还不够,过早进入架构设计的领域,对你不是一件好事;或者
2. 你凭借感觉做决策,实在不适合做架构师这样的工作。
by 非鱼。Technorati 标签:
architecture,
decision,
choice