“无剑胜有剑”软件大师之路的一点探索(一)

来源:互联网 发布:sql将a表数据复制到b表 编辑:程序博客网 时间:2024/05/27 20:18


@Dreamcode“无剑胜有剑”软件大师之路的一点探索(一)




本人并非什么武林高手,更不是编程大师, 但是我很仰慕他们,希望有朝一日也可以达到他们的境界,我很幸运能够从事自己喜欢的工作,但是一直以来总觉得自己还是太嫩,每每看到希望,走过去才发现自己依然肤浅。以下所写是我对通往大师之路的一些探索,不当之处请您指正,希望与大家一起探讨。

简单是一种力量 

“工欲善其事必先利其器”而这里所说的“简单” ,并非是使用什么开发利器来提高开发效率,恰好相反我建议大家尽可能使用简单的开发环境,摆脱对可视化环境的依赖。

    作为一个引子在后文中我将分别介绍Windows 、Linux 、Cygwin (Windows 下Linux 模拟器)下J2EE Web 项目的开发、编译和部署的简单开发环境,希望能对大家有所帮助。

   “重剑无锋,大巧不工”出自 《神雕侠侣》对武林神话独孤求败的一段描述 。《笑傲江湖》中令狐冲所使的“独孤九剑”便由其所创。 独孤求败一生用过五种不同的剑,分别为无名利剑、紫薇软剑、玄铁重剑、木剑乃至无剑。这五种不同的剑, 事实上代表了独孤求败剑学的五个不同境界, 依稀有王国维所谓“ 昨夜西风凋碧树” ,“ 衣带渐宽终不悔” ,“ 蓦然回首” 三种学问境界之意,但更为细致精确,更能传神,写出了高手的心路历程。

重剑无锋,大巧不工

    “大道至简,道生一,一生二,三生无穷”, 据说金庸大侠笔下的独孤求败就是通过观察草地上两条大蛇的争斗,悟出了武学的道理。同样我们也能通过生活中朴实的道理领悟出不断提高软件开发水平的正确方法。

“ 独孤求败年轻时曾看到两条大蛇相斗,它们相互缠绕,扭来滚去,极尽柔滑曲张之能事,旁边的树木草花无亦不被摧,他先是看的呆了,然后看这两条蛇斗了好久好久,再目睹周围之万事万物,突然感到神明空灵,似乎触到了什么,这时在他而言,那两条蛇的动作就好像武学中的招式,旁边的一草一木似乎都可以当作武器,顺手拈来即可伤敌,同时那蛇的弯曲弓张,缠绵不绝,腾挪起伏仿佛都很符合自然变化的奥妙,招式总是有限的,而有些东西似乎是无限的,纵然极尽变化之能事,到头来亦不免为敌所伤…… 据说独孤求败经过那惊心动目的两蛇之战,自此悟通武学境界,不以巧取胜终归自然。” 独孤求败最终达到“无剑胜有剑”的境界,生平求一敌手而不可得,无可奈何,惟隐居深谷,以雕为友。

    多年之后 《神雕侠侣》 中的杨过误打误撞,居然找到了独孤求败的剑冢,埋藏了独孤求败在人生的不同阶段使用的“宝剑”, 独孤求败一生用过五种不同的剑,分别为无名利剑、紫薇软剑、玄铁重剑、木剑乃至无剑。这五种不同的剑, 事实上代表了独孤求败剑学的五个不同境界, 依稀有王国维所谓“ 昨夜西风凋碧树” ,“ 衣带渐宽终不悔” ,“ 蓦然回首” 三种学问境界之意,但更为细致精确,更能传神,写出了高手的心路历程。

    第一柄剑“无名利剑”,长四尺,锋利无比,剑下石片上写着:刚猛凌烈,无坚不摧,弱冠前与河朔群雄争锋。 “ 弱冠前” 即二十岁以前,独孤求败仰仗这把“利剑”,所向无敌。如同我们基本掌握了一种开发语言以后,仰仗某个开发工具,如VC++ 、VB ,可以轻易地开发出一个软件,这时候我们会感到似乎编程也不过这么回事,好像“我们什么都可以做只是时间问题”。

    第二片石片前没有剑,石片上面写着:紫薇软剑,三十岁前用,误伤义士不详,乃弃之深谷。软剑比利剑更加锋利,也更加灵活多变, 然而凡事有利亦有弊,剑过于快了往往就难以收发自如, 以至于常常失去控制,而误伤义士,独孤求败心生内疚,将软剑弃于深谷。如同我们使用了更加“高级”的开发工具如 .NET 等,这时我们的开发效率进一步提高了,功能的开发不过是控件的拖曳,以及针对控件的编程(大多数时侯几句话便可搞定),如同练剑的人所有的功夫也都围绕着剑来展开,实际上我们几乎所有的思维也同时被绑定到这些工具上,而忽略了技术背后的本质,和所蕴含的思想,同时由于工具本身的复杂,如同独孤求败的软剑过于灵活而失去控制,我们往往会遇到工具使用不当而带来的错误,如忘记添加某个Lib 等等,表面上看我们是疏忽了,其实更深层的是我们对开发理解的肤浅,同时每每当我们遇到较底层或较抽象的问题又会感到素手无策,如效率,安全性,稳定性,扩展性等等,于是我们不得不依赖于另一个更伟大的工具“Internet ”,赌博似的希望Internet 这次可以帮助我们度过难关。渐渐的我们发现自己已经停步不前,“感觉自己已经变成了做事可以不用多想的熟练工”,实际我们已经逐渐沦为会使用工具的工具。聪明的人会学习独孤前辈将“软剑弃于深谷”不再过多的依赖工具。其实“弃于深谷的不单是误伤义士的软剑,还有少年人不顾一切、不可一世的锐气”,然而更多的人却发现自己已深陷工具的陷阱,无法自拔。

放弃“软剑”这一剑学“歧途”之后,独孤求败的 第三把剑竟是凝重的钝剑。石片上写的是:重剑无锋,大巧不工,四十岁之前持之横行天下。这段充满了自信与豪气的题字,说明正当壮年之时创立了“重剑级”剑学的独孤求败在当时实已无敌于天下了。

《神雕侠侣》中对杨过初练玄铁重剑的情形有如下一段描写:

“如此练剑数日,杨过提著重剑时手上已不如先前沉重,击刺挥掠,渐感得心应手。同时越来越觉以前所学剑术变化太繁,花巧太多,想到独孤求败在青石上所留‘重剑无锋,大巧不工’八字,其中境界,远胜世上诸般最巧妙的剑招。他一面和神雕搏击,一面凝思剑招的去势回路, 但觉越是平平无奇的剑招,对方越难抗御。比如挺剑直刺,只要劲力强猛,威力远比玉女剑法等变幻奇妙的剑招更大。”

所谓“越是平平无奇的剑招,对方越难抗御”事实上正是“无招”境界的自然体现。

玄铁剑重近七十斤如何才能战胜锋利轻盈的锐剑和软剑呢? 方法只有一个:提高自身的内力,当我们放弃对高级工具的依赖而改使用简单的工具,自然会去探究事物的本质,而这些本质正是那些高级工具背后所做的事。这样的例子在生活中比比皆是,当我们没有汽车,我们不得不骑车或是走路,无形中腿力得到增强,当我们没有计算器,我们不得不心算或是研究更好的计算方法,脑力因此得到增强。提高软件水平,必须了解软件的本质,探究本质必须亲力亲为,放弃对工具的依赖。

而能对本质掌握多深,就在于能对工具放弃的有多彻底,设想一下假如你没有现成的虚拟机可用,有哪些事需要做(即虚拟机的功能),如何做,如果你能做出来或者至少研究明白,你一定对Java 有了更加透彻的理解。

独孤求败就是按照这样的办法,一步步的放弃对工具的依赖 “自此精修,渐进于无剑胜有剑之境。”最终达到了“不滞于物,草木竹石均可为剑”的境界。

不依赖于工具并不是说让我们倒退到刀耕火种的时代,当我们可以不依赖于工具,深刻的了解了事物的本质,我们就能更好的驾驭工具,为我所用。



@Dreamcode“无剑胜有剑”软件大师之路的一点探索(一)


0 0
原创粉丝点击