[碎碎念] 程序开发领域由菜鸟到老鸟的成长历程 (27) - 老鸟阶段-架构思维。

都当上老鸟了,总不可能只做写程序的工作吧,上面交代的也许会是规划新系统的任务,这时老鸟在经验上的优势就很容易表现出来了,尤其是思考系统架构的深度。


在规划系统时,除了使用者的需求以外,适当的设计软件的架构 (architecture) 会让底下的程序员日后在撰写或维护程序时比较轻松,而软件架构就像是把系统当做房子一样,每个系统都有适合自己的架构,而架构又会成为日后指导与规范开发方向与方法的蓝图一样,它和 Framework 意义有点像,但本质上却是不同的。

所谓的软件架构(Software Architecture)是一种软件的蓝图,它告诉你这个软件的结构,功能,界面,用法,与其他系统的构连以及数据交换等等规范,但它并没有叫你要用什么方式实践,因此软件架构通常会产生文档,图样,原型以及规格等,就是没有可用的程序,因为那不是软件架构应该有的东西,就像盖房子时是给你蓝图,而不是一幢盖好的房子。相对的,软件框架(Framework) 的英文名称原意是骨架,拆开来看是 "Frame"-"work",表示是在一个既定的框架下可以做的工作,也就是说,这是一个已经成形的方法,而且有程序实例(例如钢构工法也是要有钢材才能做),并且会告诉你要如何使用它(即 Framework Documentation,MSDN Library 即为一最佳例子),但怎么使用它是程序员(也就是监工)的工作,与 Framework 无关。

因此,软件架构设计是需要许多知识和经验的一种工作,前面所分享的面向对象思维以及思考大型系统的建构等都是其中的一部分,还有一些像是界面导向程序设计,抽象化的能力,分层思维,适配环境构思,或是与网络系统的整合等等,在软件的架构设计上几乎都会沾到一些,所以累积的知识愈多在架构设计上会愈有帮助。以往在学校念的东西多少也会派上用场,工作上会用到的 domain knowledge, design pattern, enterprise pattern 与工作经验也会发挥很大的作用。

市面上也有不少有讲述到软件架构方面的书,网络上也有不少 sample solutions,都会直接会间接的展示了一个系统的架构的设计方式,可多去接触这些东西,将有助于软件架构思维的进化。

Reference: http://www.dotblogs.com.tw/regionbbs/category/2520.aspx

原文:大专栏  [碎碎念] 程序开发领域由菜鸟到老鸟的成长历程 (27) - 老鸟阶段-架构思维。


猜你喜欢

转载自www.cnblogs.com/chinatrump/p/11458289.html