程序員應(yīng)知 善于借鑒
最近幾天對(duì)D語(yǔ)言有了一些了解,據(jù)說(shuō)能夠具備和C、C++一樣的高性能,語(yǔ)法類似于C#和Java,并且支持當(dāng)前比較流行的語(yǔ)言——像Ruby和Python——的一些新特性,而且微軟還提供了Visual D的插件,可以安裝在Visual studio中,從而使用它來(lái)開(kāi)發(fā)D語(yǔ)言的程序。
我們會(huì)發(fā)現(xiàn),其實(shí)這門語(yǔ)言,在很大程度上是以往各種語(yǔ)言長(zhǎng)處的結(jié)合(不知道是否實(shí)現(xiàn)了這一點(diǎn),但目的應(yīng)該是這樣),與其說(shuō)是一種新的語(yǔ)言,不如說(shuō)是在借鑒了很多語(yǔ)言之后,組合出的一種語(yǔ)言。
由此我們可以發(fā)現(xiàn),借鑒具有很強(qiáng)的力量。通過(guò)借鑒,我們能夠創(chuàng)造出一些新的有自身特色的東西來(lái)。
說(shuō)到借鑒,就不能不說(shuō)創(chuàng)新,曾經(jīng)有位朋友拿微軟和蘋果做過(guò)比較:微軟最近幾年來(lái),在技術(shù)上一直沒(méi)有非常明顯的創(chuàng)新,似乎總是跟在別人的后面走,比方說(shuō)云計(jì)算,比方說(shuō)手機(jī)開(kāi)發(fā),再比方說(shuō)服務(wù)式的web應(yīng)用等等。而蘋果的東西似乎每一種都具有很強(qiáng)的創(chuàng)新性,iPad、iPhone、手表式的ipod,還有傳言中的裸眼3D功能的iPad等等,都讓人能夠眼前一亮。
的確,創(chuàng)新很棒!能夠產(chǎn)生不錯(cuò)的效果。相比之下,借鑒似乎就要差一些,而且“山寨”和借鑒之間也有些搞不清楚。然而,我們也應(yīng)該看到,創(chuàng)新其實(shí)也是建立在借鑒的基礎(chǔ)之上,而且借鑒也能夠產(chǎn)生很不錯(cuò)的效果。畢竟,創(chuàng)新力不是說(shuō)說(shuō)就能具備的,也需要長(zhǎng)時(shí)間的積累和思考,而且還有一些天賦的成分在里面,試問(wèn)世界上又能有幾個(gè)喬幫主級(jí)別的人物。而借鑒往往更適合我們這些普通人,能夠讓我們從中受益。
作為程序員來(lái)說(shuō),也有很多地方都可以采用借鑒的方式來(lái)提升自己的能力。
比方說(shuō)前幾天我在百度Web app開(kāi)發(fā)大會(huì)上的演講中,談到Web應(yīng)用前端設(shè)計(jì)如何能夠美觀的時(shí)候,我就借鑒了版面設(shè)計(jì)的理論(來(lái)自于《寫個(gè)大家看的設(shè)計(jì)書(shū)》),web應(yīng)用的設(shè)計(jì)也應(yīng)該遵循重復(fù)、對(duì)齊、對(duì)比、親密性四種原則,那樣就會(huì)達(dá)到美觀的效果。而談到設(shè)計(jì)需要規(guī)范的時(shí)候,我也借鑒了項(xiàng)目中經(jīng)常會(huì)使用的代碼規(guī)范,對(duì)于前端設(shè)計(jì)也一樣要有相應(yīng)的規(guī)范,那樣才能夠更利于開(kāi)發(fā)和后期的維護(hù)工作。
再比方說(shuō)之前的一篇blog中,我談到了如果《以投資的觀點(diǎn)學(xué)習(xí)編程》,這正是在聽(tīng)了公司投資部經(jīng)理關(guān)于投資的一場(chǎng)講座之后想到的,學(xué)習(xí)編程和投資一樣,也有不少可以觸類旁通的地方。
不僅僅如此,軟件這個(gè)年輕的產(chǎn)業(yè),本身很多方法都是從其他傳統(tǒng)行業(yè)借鑒過(guò)來(lái)的,軟件架構(gòu)在很大程度上借鑒了建筑學(xué)的知識(shí),而精益的理論更是來(lái)自于生產(chǎn)行業(yè),我們能夠看到,軟件行業(yè)的發(fā)展與對(duì)其他行業(yè)的借鑒是分不開(kāi)的。
而作為程序員,我們應(yīng)該借鑒什么呢?
首先我想要借鑒已有的程序和項(xiàng)目,當(dāng)我們想要完成一項(xiàng)任務(wù)的時(shí)候,不一定要從零開(kāi)始,畢竟不是考試,我們完全可以先查看一下是否已經(jīng)有類似的程序或者類似的項(xiàng)目,看看他們是如何完成的,而且在完成的過(guò)程中是否有相關(guān)的經(jīng)驗(yàn)和教訓(xùn),那些都是非常寶貴的財(cái)富。當(dāng)然我們不是要完全地復(fù)制,而是要“批判地學(xué)習(xí)”,在理解了已有內(nèi)容的基礎(chǔ)上,加上自己的思考,從而創(chuàng)建出最適合我們自己的程序。在這個(gè)過(guò)程中,借鑒本身就是學(xué)習(xí)和提高的過(guò)程。
其次我想可以借鑒在非計(jì)算機(jī)領(lǐng)域解決問(wèn)題的方式。我們知道,計(jì)算機(jī)真正廣泛應(yīng)用在解決問(wèn)題上,也就是幾十年間的事兒,之前遇到問(wèn)題,傳統(tǒng)的行業(yè)中一樣可以解決,也都形成了不少方法論。那正是我們需要借鑒的地方,不一定在解決問(wèn)題的時(shí)候完全要依賴于計(jì)算機(jī),先從非計(jì)算機(jī)的方式入手,放寬一下自己的視野,可能會(huì)有更好的效果。
想要真正實(shí)現(xiàn)良好的借鑒,我想我們要時(shí)刻有借鑒的準(zhǔn)備,機(jī)會(huì)總是留給又準(zhǔn)備的人的,當(dāng)我們?cè)谄綍r(shí)的生活中,或者是在各種書(shū)籍中,發(fā)現(xiàn)好的解決問(wèn)題的方法時(shí),就可以試著思考一下,是否可以借鑒到計(jì)算機(jī)領(lǐng)域中,這樣,在以后編程解決問(wèn)題的時(shí)候,可能就會(huì)不自覺(jué)地使用了。切不可把自己處于一種封閉的狀態(tài),對(duì)外界的事情不聞不問(wèn),更可怕的就是完全排斥了,根本就不接受外界的思想,那樣“閉關(guān)鎖國(guó)”的話,如何才能發(fā)展呢?(這里貌似也是借鑒,:))
關(guān)于借鑒,你的想法如何,歡迎在此評(píng)論。
作者:侯伯薇@大連
出處:http://www.cnblogs.com/houbowei/
原文地址:http://www.cnblogs.com/houbowei/archive/2011/05/26/2057771.html
【編輯推薦】