依据《第三智慧》一书作者Danah Zohar的研究,东方人头脑思维偏向模拟(如Neural-network)模型,而西方人偏向牛顿的推里(如Rule-based)思维习惯。根据笔者多年来参与软件框架开发经验,有深有同感。例如,我们开车到一个城市,发现有许多人都把车停在斑马线上,并且打开引擎盖。依据东方人的思维习惯,会记住这样的情境,有需要临时停车时,也会依法炮制。而西方人则会先想到交通规则,发现那是违背规则的,即使依法炮制,心中也会念念不忘那是违「规」的。
换句话说,东方人思维习惯善于观察、模仿与跟进。因此寻找一个模板或模板(Template)来做为各种创新性讨论议题的出发点,并逐步讨论、取得共识,经常能获得意想不到的好效果。
在软件框架开发时,上述途径的效果尤其显着。由于Android是开源且完整可执行的框架平台,所以我特别喜欢拿Android来做为框架的开发母板,基于此母板来开发自己的框架,并且在其平台上执行、进行实际测试。真的经常能获得意想不到的好效果。
如何做好框架(Framework)呢?
礼记学记篇 有言:「良弓之子,必学为箕」。其中的箕就是弓的框架,没有好好学做框架,就不会有优越的弓(和箭)。同样地,没有好好学做软件的框架,就不会有优越的软件系统了。
为什么 礼记学记篇 要特别强调:「为箕」的重要性呢? 因为在中华文化和历史里,蛮强调「愚公移山」的持之以恒精神。例如,在软件界里,西方的微软公司耗费巨资发展.NET框架(即为箕—-就像畚箕),而东方国度的数十亿愚公竞相使用畚箕(即使用.NET)来挑泰山之土,比赛谁最有毅力、姿势最漂亮!!
为什么东方众多软件人员只能当愚公呢?依据笔者自从1995年出版<<应用框架技术入门与实务>>一书以来,亲自参与多个框架开发项目,也获得许多架构师的回馈。从笔者的研究,东方人头脑思维偏向模拟(如Neural-network)模型,而非牛顿的推里思维(如Rule-based),所以在抽象层面,框架设计团队成员之间比较难以取得共识(Agreement)。而偏偏框架顾名思义,它必须是抽像的、共识的,才能容纳各式各样的具象的软件系统。
东方人做框架的康庄大道
东方人思维习惯有其优越性,也有其弱点,并不需要改变。而是寻找如何弥补东方人思维的不足,发展全脑思维,并能顺利取得抽像设计之共识,将是一条具有高度意义和商业价值的康庄大道。
东方人善于观察、模仿与跟进,因此寻找一个模板(Template)来做为讨论议题的出发点,并逐步讨论与改善,经常能获得意想不到的好效果:比西方人更容易取得共识,而且能有实际的进展和产出。因为实际的产出,吸引团队积极跟进,整个项目就像飞轮一般渐入佳境了。
Android是优越的范本
东方人最容易接受的开源(Open Source)的软件模板。因为源代码是具象的,其执行逻辑是完整清晰的,而且是可执行测试的。自从2007年Google推出Android开源框架以来,Android 成为东方嵌入式软件领域(包括手机、电信产业)最具有代表性的Framework开发模板。
Android更是框架的开发母板
Android本身是个可执行的完整框架平台。它具有如下特性:
开放源码
力与美均衡:在如手机的有限资源、电信的大量数据压力下,好用与效率必须兼具。Android使用Java与C++双语言,藉由JNI来衔接,是个优越的设计样本。
善用设计模式(Design Patterns)。
IPC Binder机制:这是高效率的远距沟通机制。
线程(Thread)模型。
安全(Security)机制。
UI架构。
网络服务机制。
Intent-based 沟通机制。
等等。
人人皆可基于这个开发母板,而开发自己擅长领域的框架,并融入到Android框架里,一起执行,立即能看到框架的实际运作情形。
结论
东方人团队发展框架时,经常陷入共识难求的困境里,这并非单靠精致的软件技术所能解决的。例如,Message Queue、Thread model等都是常常出现公说公有理、婆说婆有理的困境里。甚至,将整个Spring框架纳入自己的框架里,导致无法满足高效率的需求,引来众多人的质疑,更陷入无共识的深渊里。
今天,上述困境可轻易使用Android开放框架为母板来加以化解。一旦远离了上述的困境和深渊,则东方人开发之路就会晴空万里了。
(原文http://www.miiceic.org.cn/07/0702/070201/200911161437373.asp)
中程在线(北京)科技有限公司
中国信息产业培训网
www.miiceic.org.cn
咨询热线:400-7068-123
浙公网安备 33010602011771号