程式員應知——借鑒

來源:互聯網
上載者:User

最近幾天對D語言有了一些瞭解,據說能夠具備和C、C++一樣的高效能,文法類似於C#和Java,並且支援當前比較流行的語言——像Ruby和Python——的一些新特性,而且微軟還提供了Visual D的外掛程式,可以安裝在Visual studio中,從而使用它來開發D語言的程式。

我們會發現,其實這門語言,在很大程度上是以往各種語言長處的結合(不知道是否實現了這一點,但目的應該是這樣),與其說是一種新的語言,不如說是在借鑒了很多語言之後,組合出的一種語言。

由此我們可以發現,借鑒具有很強的力量。通過借鑒,我們能夠創造出一些新的有自身特色的東西來。

說到借鑒,就不能不說創新,曾經有位朋友拿微軟和蘋果做過比較:微軟最近幾年來,在技術上一直沒有非常明顯的創新,似乎總是跟在別人的後面走,比方說雲端運算,比方說手機開發,再比方說服務式的web應用等等。而蘋果的東西似乎每一種都具有很強的創新性,iPad、iPhone、手錶式的ipod,還有傳言中的裸眼3D功能的iPad等等,都讓人能夠眼前一亮。

的確,創新很棒!能夠產生不錯的效果。相比之下,借鑒似乎就要差一些,而且“山寨”和借鑒之間也有些搞不清楚。然而,我們也應該看到,創新其實也是建立在借鑒的基礎之上,而且借鑒也能夠產生很不錯的效果。畢竟,創新力不是說說就能具備的,也需要長時間的積累和思考,而且還有一些天賦的成分在裡面,試問世界上又能有幾個喬幫主層級的人物。而借鑒往往更適合我們這些普通人,能夠讓我們從中受益。

作為程式員來說,也有很多地方都可以採用借鑒的方式來提升自己的能力。

比方說前幾天我在百度Web app開發大會上的演講中,談到Web應用前端設計如何能夠美觀的時候,我就借鑒了版面設計的理論(來自於《寫個大家看的設計書》),web應用的設計也應該遵循重複、對齊、對比、親密性四種原則,那樣就會達到美觀的效果。而談到設計需要規範的時候,我也借鑒了項目中經常會使用的代碼規範,對於前端設計也一樣要有相應的規範,那樣才能夠更利於開發和後期的維護工作。

再比方說之前的一篇blog中,我談到了如果《以投資的觀點學習編程》,這正是在聽了公司投資部經理關於投資的一場講座之後想到的,學習編程和投資一樣,也有不少可以觸類旁通的地方。

不僅僅如此,軟體這個年輕的產業,本身很多方法都是從其他傳統行業借鑒過來的,軟體架構在很大程度上借鑒了建築學的知識,而精益的理論更是來自於生產行業,我們能夠看到,軟體行業的發展與對其他行業的借鑒是分不開的。

而作為程式員,我們應該借鑒什麼呢?

首先我想要借鑒已有的程式和項目,當我們想要完成一項任務的時候,不一定要從零開始,畢竟不是考試,我們完全可以先查看一下是否已經有類似的程式或者類似的項目,看看他們是如何完成的,而且在完成的過程中是否有相關的經驗和教訓,那些都是非常寶貴的財富。當然我們不是要完全地複製,而是要“批判地學習”,在理解了已有內容的基礎上,加上自己的思考,從而建立出最適合我們自己的程式。在這個過程中,借鑒本身就是學習和提高的過程。

其次我想可以借鑒在非電腦領域解決問題的方式。我們知道,電腦真正廣泛應用在解決問題上,也就是幾十年間的事兒,之前遇到問題,傳統的行業中一樣可以解決,也都形成了不少方法論。那正是我們需要借鑒的地方,不一定在解決問題的時候完全要依賴於電腦,先從非電腦的方式入手,放寬一下自己的視野,可能會有更好的效果。

想要真正實現良好的借鑒,我想我們要時刻有借鑒的準備,機會總是留給又準備的人的,當我們在平時的生活中,或者是在各種書籍中,發現好的解決問題的方法時,就可以試著思考一下,是否可以借鑒到電腦領域中,這樣,在以後編程解決問題的時候,可能就會不自覺地使用了。切不可把自己處於一種封閉的狀態,對外界的事情不聞不問,更可怕的就是完全排斥了,根本就不接受外界的思想,那樣“閉關鎖國”的話,如何才能發展呢?(這裡貌似也是借鑒,:))

關於借鑒,你的想法如何,歡迎在此評論,也歡迎通過我的微博:@侯伯薇 和我交流,:)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.