background image

面向对象可以应用的领域非常广泛。不仅在写代码的过程中要考虑到面向对象,实际上在设计和分析阶段也可以

 

用面向对象的方法。

舍得抛弃:软件设计是一个渐进过程,是通过不断碰壁,不断调整提高的。要想取得突破,就需要舍得抛弃。廖

恒毅说: 通常情况下,我写的第一版程序是要被扔掉的。对于一个功能,我上来就写,也不做设计,什么都不想,
写到最后,自己都烦了,然后就把这些代码删除掉再重新写,这些脑中有了很多体会和印象,写完第二版之后,
也会扔掉,继续写第三版的代码。这时程序逻辑架构和关系自然就很清晰了。只有用这种不断消灭自己以前的东
西方面才能够成长的特别快,这就像相当于脱壳,不过这需要自己对自己要求很严格,否则又会回到原来的老路

子上了。 很多人舍得扔掉自己的代码的,往往是不断的修改,最后进入一个恶性的循环。当然,这种抛弃也是有
继承的抛弃,不同时期产品的架构之间也有连续性,不是一个架构就会完全取代前面的架构,好的东西还是可以
继承的,像微软的

.NET 架构就是从 DNA

 

架构上发展来的。

领悟和突破:程序员技术成长一种是通过学习技巧而成长,一种是通过思想领悟而得到成长,后者更为重要。如
果不能领悟开发的思想,仅仅掌握了技巧,一旦改换了平台和语言,又要从头学起,所以很多人在转型过程中失

败了。而掌握了编程的思想,自动就移过去了。廖恒毅表示: 语言本身从来不对我产生任何障碍,各种语言没有

”    

任何本质的差别,就象练武一样,刀背也可以当锤子用。
 

从程序员到软件设计师

(3)

即便是很小的软件,也可以锻炼突破性的编程思维。廖恒毅以自己写拼音加加的经历讲了一个例子。 输入法体系
结构和流程很简单,就是原生数据库和后生数据库加上一个简单的界面。但在处理退格的时候,你会发现这是一
个很复杂的问题,如果按照常规的方法考虑各种出现的情况,程序几乎是无法写下去了。其实方法很简单,只要
做一个正向编辑器,定义好一个字母产生什么样的操作,二个字母产生什么样的操作,一个字符串产生什么样的
操作,并抽象成为每个操作对应后台进行什么样的操作。删掉一个字母,无非就是把字符串去掉一个,重新处理
一遍就可以了。这个问题就变得很简单。总结出来一种基本的设计原则和思路,就是程序设计千万不要回溯,否
则就会崩溃,这是脑袋碰墙多少次之后才明白的。所以说尽管编程序写了十几年了,到现在还不敢称完全领悟软

” 

件设计,而是一直在找这种感觉。

非软件知识:提起软件设计师,人们很喜欢那建筑师做比较,的确这两个行业有很多相似之处。古罗马建筑师维

特鲁威说 理想的建筑师应该既是文学家又是数字家,他还应通晓历史,热衷于哲学研究,精通音乐,懂得医药知

 

识,具有法学造诣,深谙天文学及天文计算。 软件设计师同样如此。

廖恒毅说 所有让人去思考,一切美的东西都会吸引我,我欣赏每个行业中有内涵的东西。 甚至包括周易五行,

他都觉得这对开发软件有很大的帮助。 周易五行的一套自我完备运行的体系结构,它也有自己的对象和作用关系。
各种对象之间不是独立的,而且衍生出来的作用关系让整个系统运转的更加自然。我编程的时候也用这种思路,

” 

努力去寻找整个程序中的内部作用关系。

邓适宜也有自己的看法,他觉得软件系统比起建筑来,更象一台机械。因为建筑一旦完成之后就很少改变它的结

构,但机械不一样,它是一台可以通过改装改变不断增加功能的系统。 现在机械制造中经常是把机器分解为多个
组件,分别生产,只有到最终销售的时候,才根据用户的需求把各个组件拼接组合起来产生不同的功能,这称为
延迟制造。这种想法在我们的软件开发中也经常用到。我们也开发了很多灵活的可视化组件,在实施的时候才根
据用户的需求进行组装,不仅满足了客户的个性化需求,而且也降低了开发成本。

U8 软件中的 ERB 模块要提供第

三方软件的接口程序,为了保证稳定性和下一代产品的延续性,我们做了一些模块,可以通过注册扩展功能,很

” 

象机械中的插件。

 

向软件设计师发展

当然,并不是每一个程序员都适合向软件设计师角色发展的。除了自身的努力之外,还同所处的环境有很大的关
系,如果只是几个人的小公司,对软件设计的要求不明确,自然也就无法得到锻炼。邓适宜说自己早期接触的软
件开发环境都是比较大型的基于

UNIX

 

的大型数据库环境,从中学到了很多东西,受益菲浅。

彭六三介绍说,在用友这样开发大型软件的公司中,程序员成长是很快的。一个普通的程序员,在代码编写多之
后,首先可以成为一个主程序员。除了他的编程能力更强,在一个开发小组中起主导作用之外,他实际上也具有
了一定的设计能力。接下来,就是和深入的了解具体的应用。除了面向对象的程序设计一定要具备,对具体应用
的深入了解也是必不可少的,否则无法去设计产品。要想继续发展,接下来的工作就是要更多了解技术标准方面

 

的知识了。