[转载]软件开发的新生活运动

转载自: 爱德华日志


不晓得是几十年前从 "历史" 还是 "生活与伦理(现在小学还有这门课吗?)" 唸到的,那个在现代听起来有点八股的新生活运动。我倒不是要在此强调复兴中华文化,讲究礼义廉耻,四维八德。只是新生活运动所推行的:“整齐、清洁、简单、朴素、迅速、确实”六项生活记律,倒是与近代软件开发思潮所标举的简易之风不谋而合。

整齐、清洁

程式必须依照一致之风格来写作。没用到的变量要删除,测试用的讯息不要当成注解留在文档中。更进一步的说,系统的设计架构应明确,类别间的阶层与引用关系应形成清晰的脉络,若是系统关连犹如错综复杂的网络,在维护上就相当困难。

要做到整齐清洁的设计,除了一开始开发系统时,就要尽量依据物件导向之原则,采用适当的设计模式外,在设计过程中还要不时的对既有设计加以重构。这就好像是种植盆栽,软件就像是种在盆里的那颗树。一开始时,我们会依照自己的期望来形塑,但当它开始成长,就必须让它依照其本性生长,但成长到一定的阶段,又必须适度的加以裁剪。在如此环境下长成的系统,就会自然适性,有风格却又避免掉明显的匠气。

简单、朴素

好的设计应该易于理解、易于改变、易于重用。“简单就是美,不做过度设计,不开发系统用不到的功能;以更少,做更多”这几乎成为 Agile Methodolodgy 的金科玉律。每个方法 (method) 应设计成只完成一件事,并避免在方法执行过程中产生与方法名称无关的副作用。每个类别应仅代表一抽象或具象概念,当某一类别同时代表一个以上的概念,就会在重用时在引用端导入不必要的特性与关连,而降低重用性。

朴素的概念,也让我想到 Plain Old Java Object (POJO) 的应用。Hibernate 与 Spring Framework 共有的特性之一,就是善用 POJO 既有的能力,来简化物件模型。也因为 Hibernate 与 Spring Framework 只是简单的让 POJO 来代表 Model 的观念,而不把其他的责任(如实体层的存取,使用者动作的反应) 加在模型上,让这 POJO 得于游走于 3-tiers 或 4-tiers 之间,让我们见识到了朴素的能量,真是愿原力与你同在!

简单、朴素也适用于使用者界面的设计。除非你在设计游戏软件或多媒体动画,除非你极具有美学概念,否则把应用程式弄成五颜六色,并缀之以五花八门的图示(这种界面风格被称为小丑装),还不如直接让应用程式以作业系统默认的风格呈现。

迅速、确实

Small iteration, Continuous integration 以及 Build automation 所提供的,正是迅速的开发程序。而正是因为着重确实,所以才要 Unit test,才要 Test driven design,才要代码未动,测试先行。

迅速、确实从程式的 performmance(表现,效能)上来讲,则代表系统要能有效率的完成操作,又能确实的达成系统的功能。

开发速度(迅速) 与开发品质(确实) 永远难以兼顾,若能保持简单、朴素的原则,要做到迅速、确实,就会容易一些!

  1. No comments yet.

  1. No trackbacks yet.

return top

%d 位部落客按了赞: