话说三国时期,曹操带领百万大军攻打东吴,大军在长江赤壁驻扎,军船连成一片,眼看就要灭掉东吴,统一天下,曹操大悦,因而大宴众文武,在酒席间,曹操诗性大发,不觉吟道:“喝酒唱歌,人生真爽。…………”。众文武齐呼:“丞相好诗!”因而一臣子速命印刷工匠刻版印刷,以便流传天下。
样张出来给曹操一看,曹操感受不妥,说道:“喝与唱,此话过俗,应改成‘对酒当歌’较好!”,因而此臣就命工匠从新来过。工匠眼看连夜刻版之工,完全白费,心中叫苦不喋。只得照办。
样张再次出来请曹操过目,曹操细细一品,以为仍是很差,说:“人生真爽太过直接,应改问语才够意境,所以应改成‘对酒当歌,人生几何?…………’!”当臣转告工匠之时,工匠晕倒…………!
惋惜三国时期活字印刷还未发明,因此相似事情应该时有发生,若是是有了活字印刷。则只需更改四个字就可,其他工做都未白作。实在妙哉。
第一,要改,只需更改要改之字,此为可维护;第二,这些字并不是用完此次就无用,彻底能够在后来的印刷中重复使用,此乃可复用;第三,此诗若要加字,只需另刻字加入便可,这是可扩展;第四,字的排列其实有多是竖有多是横排,此时只需将活字移动就可作到知足排列需求,此是灵活性好。
而在活字印刷术以前,上面的四种特性都没法知足,要修改,必须重刻,要加字,必须重刻,要从新排列,必须重刻,印完这本书后,此版已无任何可再利用价值。
小时候,我一直奇怪,为什么火药、指南针、造纸术都是从无到有,从未知到发现的伟大发明,而活字印刷仅仅是从刻版印刷到活字印刷的一次技术上的进步,为什么不是评印刷术为四大发明之一呢?
作了软件开发几年后,经历了太多的客户(曹操)改变需求,更改最初想法的事件,才逐渐明白当中的道理。其实客观的说,客户的要求也并不过份(改几个字而已),但面对已完成的程序代码,倒是须要几乎重头来过的尴尬,这实在是痛苦不堪。说白了,缘由就是由于咱们原先所写的程序,不容易维护,灵活性差,不容易扩展,更谈不上复用,所以面对需求变化,加班加点,对程序动大手术的那种无耐也就很是正常的事了。
以后当我学习了面向对象分析设计编程思想,开始考虑经过封装、继承、多态把程序的耦合度下降(传统印刷术的问题就在于全部的字都刻在同一版面上形成耦合度过高所制),开始用设计模式使得程序更加的灵活,容易修改,而且易于复用。体会到面向对象带来的好处,那种感受应该就如同是一中国酒鬼第一次喝到了茅台,西洋酒鬼第一次喝到了XO同样,怎个爽字可形容呀。
再次回顾中国古代的四大发明,另三种应该都是科技的进步,伟大的创造或发现。而惟有活字印刷,实在是思想的成功,面向对象的胜利。不知您是否也有所感呢?