`
lua
  • 浏览: 74571 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

Google時代的程式撰寫

阅读更多

Google時代的程式撰寫

最近愈來愈覺得網路時代的程式撰寫工作變得極端的快速多了。原先想將這個題目訂為「網路時代的程式撰寫」,但稍加想想,似乎少了Google 這個威力無窮的搜尋引擎,這樣子的速度提昇又辦不到,故以此題為名。

 

Google 時 代的程式撰寫,在那些面向上能帶來速度的提昇呢?首先是學習的速度的提昇。過去我們接觸新的程式撰寫知識,除了同儕之間的交流外,最主要的途徑還是透過書 籍或是雜誌。可能遇到的問題是,不知道是否能找到自己所關心主題的書籍或雜誌;找到相關的主題後,不知道是否能找到自己所需的項目。有了網路的存在,發表 的型式變得極端簡化,無數的論壇或個人的blog ,充滿著和各種主題相關的文章,而透過Google 的搜尋,可以輕易又準確的搜尋到這些散落在世界各地的文章。此外,專門的教學網站也提供各種不同的教學文章與範例程式,都大大的助益了新的技術的學習。例如我常造訪的http://www.codeproject.com 就是一個很好的例子。

 

再來是錯誤排除的速度也大大的提昇了。最簡單的錯誤形式就是compiler error message ,像MicrosoftIDE 時常會給出一些令人難以理解的compiler error message 。而我最常使用的解決方法,就是把message 直接複製丟給Google ,通常在前一兩個頁面,就會得到自己想要的解答,因為世界如此之大,你會犯下的錯誤,通常在世界各地的論壇上,往往就會出現解決該問題的答案。除了compiler error 之外,程式或程式庫所得到的各種錯誤代碼或錯誤情況,直接丟給Google ,通常也都會有令人滿意的結果。相較起來,在過去一個簡單的錯誤,很有可能阻礙程式撰寫十分漫長的時間,在這個過程中,可能充斥著不斷的錯誤嘗試、遍覽群書或偏詢同儕而不可得等等的活動。提昇錯誤排除的時間,自然大大的加快了程式撰寫的腳步。而類似MSN Messenger 之類通訊軟體的普及,與朋友或伙伴之間建立綿密的人際溝通網絡,彼此交換心得或詢問錯誤排除方法的速度也變快許多。

 

除 了文章的取得變得多樣化又快速之外,另一個很大的型態轉變,是基於開放原始碼的精神普遍而生的。由於原始碼開放的程度日益普及,網路上散佈著解決各種問題 的原始碼。但除了介面定義良好的原始碼程式庫之外,即使是以開放的型式存在,能直接重複利用的程度並不高。但經過適當的拆解與重組,這類的程式碼還是可堪 重用。於是,程式員開發的型態,就起了很大的轉變。在過去,程式員可能大量的自己重新撰寫所有自己所需要的程式碼,頂多倚靠自己或團體中已經建構良善的程 式庫。但是現在,以隨手可得的程式碼為基礎,許多心力都可以節省下來,但程式員需要的技能卻改變了!在過去,也許程式員不需要太多讀懂程式碼,拆解程式碼 的能力,但在現在,一名具備良好追蹤原始程式碼、拆解原始程式碼能力的程式員,卻極有可能在撰寫速度上勝過撰寫程式碼能力相同的程式員。

 

在過去,對程式員的訓練也許不甚重視追蹤原始碼以及拆解原始碼。大家重視的是如何撰寫可讀性高的程式,以及設計出具彈性、重用性高的程式。但在開放原始碼的世界中,有太多的程式不僅可讀性低,而且不具彈性、重用性也不高-往往只是為了專門的需要而hack 。 如果具備了追蹤程式碼的能力,除了可以透過現成的程式碼學習新的技術之外,也可以做為拆解程式碼的基礎設施。而要拆解程式碼的第一步,自然是看懂程式碼, 看懂之外,要進一步判斷那些是自己要的,那些不是,同時評估怎麼調整這些程式碼的架構,可以去除掉自己不要的部份,保留自己要的部份,又毋需對現有程式碼 做過大幅度的更動。

 

具 備了上述的兩項能力,程式撰寫就不再只像是重新建構,或適度組裝自己已有的元件。而像是找尋和自己所需元件相像的元件,經過適當的理解之後,施以最小幅度 的裁切,將其介面修繕成自己所需的介面,淘汰掉其內容中多餘的組成,最後將重新賦予生命的元件與其他無論是自己既有的,或是同樣回收自開放原始碼元件的元 件組裝在一塊,就得到自己想要的東西。

 

重新思考這整個過程,倘若沒有開放原始碼的幫助,程式員得先花上一段時間學習新技術,然後重新撰寫全新的程式,但在這個時代一切可都不同了。


無論是追蹤原始碼或拆解程式碼都需要特別的一套技巧。有時間我想分享一下。但我的確認識一些人,有程式撰寫的老手也有新手,彷彿都有這兩項技巧的天份,這實在是一件很神奇的事情。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics