高手指点:如何取得好的软件设计

高手指点:如何取得好的软件设计,第1张

高手指点:如何取得好的软件设计,第2张

似乎作为一个软件开发者,就注定要背着沉重的行囊,穿行在茂密的热带丛林里,酷热,没有风,只有腐烂的植被、浓浓的瘴气、不时从肩膀上爬过的毒蜘蛛和从脚背上“嗖”地窜过的毒蛇。汗流浃背,疲惫不堪,却不能休息片刻——因为这是一个软件开发的混乱的时代!

  充分的前期需求分析?严格的开发流程控制?严密的后期测试?这些都做到了啊,可是为什么软件还是有bug?特别是用户频繁地提出新的要求,软件要不断地修改,每一次修改都胆战心惊几近崩溃,这到底是为什么?神啊,到底要怎么做才能获得好的软件设计啊?

  人们一直都没有停止思考如何能够获得好的软件设计。软件工程风行了几十年,“没有银弹”的咒语还没有解除。人们不禁要抛弃所有的“软件工程”带来的规制,回到软件开发的源头寻找答案。如下就是笔者看到的火烧云的形状,像猫像虎任凭端详。

  1、要有技艺高超的开发者
  软件是人的思维活动的产物,软件开发首先需要的是人的创造性。就如同其他一切人类创作一样,人是占据核心地位的。恐怕再过一百年,也没有哪个自动化的工序可以代替金庸先生的妙笔写出《笑傲江湖》这样经典的小说。所以,当前软件工程企图用其眼花缭乱的流程控制来达到“软件工厂”的目的,是方向性的错误。人,只有人,技艺高超的开发者,才是产生好的软件设计的核心因素。

  技艺高超的开发者,应当有丰富的软件开发经验。有了丰富的软件开发经验,才会培养出对软件设计中的各种“坏味道”的敏锐的嗅觉,才能熟练地绕过软,技艺高超的开发者,应当有专业的领域知识。软件总是服务于某一领域的应用,各个领域的专业特性不同,使得软件开发也产生了许多分支。从事某一专业领域的软件开发,必然要对该领域的专业知识有深入的了解,才能在软件设计中正确地把握对概念的抽象。随着软件的复杂性的转移,领域建模越来越受到重视。在此强烈推荐《领域驱动设计——软件核心复杂性应对之道》(Eric Evans著,陈大峰等译,清华大学出版社出版)一书。

  技艺高超的开发者,应当有求真务实的技术作风。在这个浮躁、虚华、官僚化的社会里,“求真务实”显得太可贵!这也是对开发者提出的很高的要求。求真务实的技术作风,就要求开发者不要盲从技术风潮,软件开发的技术发展飞快,也产生了不同技术流派,各个流派都想扩大自己的影响,这时候就需要开发者自己去识破各种幌子,吸收真正对软件开发有所助益的好方法;求真务实的技术作风,还要求开发者实事求是地看待各种非技术机制对软件开发的影响,看看这些机制是否对软件设计质量的提高有帮助,有则批判地采纳,无则无情地抛弃,不要抱有“这个流程是某某认证所必须的,且其他很多公司都这样做了,所以它一定有它的道理”的想法,这些目前看不到好处的东西,不要指望将来给你带来什么好处;求真务实的技术作风,更要求开发者抛弃官僚主义作风和自大的姿态,在技术面前人人平等,以开阔的胸襟对待不同技术观点和反对者,友好地同其他人合作,以把软件设计做好为要旨。

  技艺高超的开发者的成长需要长期的磨练,代价很大。且人的因素确实是一个很不确定(流动性很大)的因素,软件工程减少不确定因素的初衷是好的,但是人的地位毕竟不可替代。“软件蓝领”是又一个软件工程产生的畸形儿,软件工程宣称,只要几个月的短期训练,就可以胜任软件开发的工作。真是可悲!

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 高手指点:如何取得好的软件设计

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情