软件架构设计(1)

●长生剑:UML(UML2)
UML(Unified Modeling Language)这一建模语言已经成了软件设计人员的必备工具,几年前就曾有过“苦干年之后,不通UML者无法染指软件开发”的言论,虽然从目前来看,UML的应用还并未达到如此程度,但使用UML最大的好处在我看来就是减少了沟通的成本,让我们把一些想法能够很清晰直观的表达出来,在设计的过程中,使用得较多的是用例图,类图,组件图,部署图和时序图。当下,各种设计和建模工具对UML都有良好的支持,UML本身也是一门不断发展的语言,现在UML2已经成为主流。UML本身也极为简单,对于初学者来说可能有些概念比较难懂,可以结合实际的程序来理解,这样会事半功倍,但我认为也不会太高深,熟练使用就达到了应有的境界。
剑谱:
UML官方 站 http://www.uml.org/
《UML基础、案例与应用(第3版)》,此书作为UML入门较为适合,书中也以详实案例来教会我们怎么使用UML。

●孔雀翎:Office
架构设计的成果就是两项重要的产出物,一是框架代码,二是架构设计文档。在架构设计文档中,除了包括一些UML图之外,还有一些UML无法表示的图表,采用Office来制作和撰写这份文档再合适不过,最常用的就是Word,Excel和Visio。
掌握这门“武器”不难,可利用这门武器把各类文档写好就难了,除了专业能力,良好的文字表达能力也是十分重要的,一个成熟的架构设计师在我看来应该也能写得一手好文章,最基本的要求就是能够准确的表达你想要表达的意思。
秘籍:
《Word排版艺术》,在大陆十分有名的台湾IT作家候捷的作品(之所以这样说是我曾经跟我们公司在台北的同事聊起过此人,几乎没人知道此人),此书一度借着他的名气卖得很火,因为他出书很多,在这方面也有很多优秀的经验,值得借鉴。

●多情环:架构设计类经典书籍
架构设计类好书不多,但也不是没有,我也没有认真读过几本,但觉得有那么两本还值得推荐:《Pattern Of Enterprise Application Architecture》,Martin Flower的经典之作,几乎是架构设计人员的必读之书,详细论述了企业应用各layers上的模式和设计思想;《Large-Scale Software Architecture》,告诉你什么样的人才是架构师,然后以构件为粒度深入探讨架构的方方面面,同时用UML呈现,也是一份UML在架构设计中应用的最佳实践;《J2EE Core Pattern》,设计Java平台应用系统的经典参考书,对GOF(Gong Of Four)的设计模式在Java中的应用和扩展进行了深入的讨论,看看你的设计中可以运用其中的哪些核心模式。
秘籍:
有一套适合自己的学习知识的方法,对于IT行业的人来说,要看的书籍和资料远远超过其他行业,面对如此繁杂的知识,要有自己的方法学会去整理,要做到看必有收获,否则不如去温习古龙或是金老爷子的小说。我常常喜欢用Mind Manager等软件把读书笔记和心得记录下来,也常常回过头来看看这些笔记,以前喜欢手抄,信奉什么好记心不如乱笔头,但后来发现有些落后,不能与时俱进,方式肯定会被淘汰,人自然也会被踢出局。

●霸王枪:Internet/Intranet
当今时代,离开 络这条枪对于IT从业人员来说寸步难行,大多公司目前都还没有自己完善的Intranet,公司知识库的资料与Internet的资源相比可谓是小巫见大巫,但千万不要忽视了公司通过SEPG(Software Engineering Process Group)或相似职能部门积累起来的知识,这些东西往往关注于行业,领域或适合于你所在公司的实际状况,从这个方面考虑的话,其力量超越Internet,是很好的模板。常常我们会遇到自己不能解决的问题,这个时候就需要去 上百度一下;在架构设计文档中,我总喜欢弄个术语表,而对于有些术语的解释,你会发现百度原来也是一本好辞典。
枪谱:
百度,谷歌
利用搜索引擎,可以快速的获得自己需要的资料,大幅提高效率,也不至于让你淹死在浩如烟海的信息海洋中。
之所以将百度写在前面,是因为我的个人习惯,常常在搜索的时候会优先考虑用百度,在百度搜不到的情况下才去谷歌,百度出来的大都是中文资料,对于母语是中文的人来说,会提高我们的阅读速度和理解效率,命中率较高,较好的分词技术,值得推荐。谷歌当然不错,相信不用多说。

●离别钩:评审
邀请你公司的架构设计同行,资深技术专家,公司领导,或行业中的其他专家,还有你的PM(Project Manager),充分利用团队的力量,对于你所做的架构设计的初稿进行评审,在评审前先把重点部分,特别是你想跟大家一起讨论更好解决方式的部分整理成简单的演示文稿(PPT)发给大家,同时把详细资料也发给大家,请大家在有空的时候提前了解。在评审会议时,要先向与会人员介绍一下项目背景,需求,千万不要忘了非功能性需求(包括性能,安全,可扩展性等方面),然后再从重点的议题开始与大家一起讨论,这样可提高效率。
秘籍:
虚心听取各方面意见。评审时大家会提出各种各样的问题,有时候可能会提出各种让你很生气的问题,这个时候一定要克制住自己的情绪,虚心的听取他们提出的建议,对各种问题进行解释,让他们真正明白你的意思,同时也从他们那里获取有用的建议。

●拳头:激情
这也是与人最密切相关的一样武器,拳头是你身体密不可分的一部分,激情也是你思想密不可分的一部分,要想把架构设计做好,有做好一件事的激情是必不可少的,你要对新知识,新技术充满好奇心,要有创新精神,在前人的基础上,结合自己的所学去进行一些小的创新,其实人类的进步也就是靠这样的一次次的小创新,以最大程度的确保架构的稳定性和可扩展性,同时也尽可能的提高程序开发的效率。
秘籍:
确定自己的发展方向就是做一个技术专家。如果你对自己的职业规划有一些想法,不妨可以考虑一下这个方向,国外的很多大师级的人物因技术牛而成就了卓越的事业,国内目前也有向这个方向发展的趋势。
我认为做一个技术专家与向管理方向发展并不冲突,技术专家也可以是管理行家,软件行业的很多人都是“技术优则管理”,否则你在管理者的位置上却不懂得基本的技术,在各方面都会遇到绊脚石,也没有人真正的服你。

正如古龙所说,“武器是死的,人却是活的”。“武器”是否能令你觉得神奇刺激,主要还得看使用它的是什么人,虽然架构设计不是人人都可以做的,但我相信这几种武器通过大家自己的努力一定可以掌握。

 

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2016年1月19日
下一篇 2016年1月19日

相关推荐