全站文章 iT邦幫忙
iThome Online提供免費電子報,現在就訂,最新IT訊息每日寄達。

iThome 每日新聞報
iThome 產品技術報
加入iThome Online會員,立即使用討論區、Blog等服務。

免費加入會員
登入 / 登出
管理會員帳號
忘記帳號密碼
聯絡客服
訂閱周刊
讀者服務
12' E政府專刊no.6(46)
12' 個資法專刊No2(45)
12' iTcloud No.2(44)
12' e政府專刊No.5(43)
12' 個資法專刊(42)
11' CIO專刊(41)
11' e教育專刊No.3 (40)
11' e政府專刊No.4 (39)
11'iTcloud專刊(38)
10' e教育專刊No.2 (37)
10'e政府專刊No.3 (36)
09'e政府專刊No.2 (35)
09'e教育專刊(34)
09'e政府專刊(33)
08'企業資安專刊-端點安全防護(32)
08'企業採購情報誌(31)
07'資訊安全技術應用專刊(30)
07' 新世代資料中心專刊(29)
07'企業資安技術應用專刊(28)
企業採購情報誌'06冬季號(27)
企業軟體技術應用專刊(25)
企業資安技術應用專刊(24)
用慣例管理複雜度,形成一致文化
文/林信良 2012-07-12
分享到facebook
慣例反映了技術生態圈管理複雜度時的特有方式與文化

林信良
因在網路上經營「良葛格學習筆記」(openhome.cc)而聞名,曾任昇陽教育訓練中心技術顧問、甲骨文教育訓練中心授權講師,目前為自由工作者,從事講師、技術書籍寫作與翻譯,專長為Java 程式開發相關技術教育訓練,研究興趣包括:程式語言、Web 相關開放原始碼框架。閒暇之餘記錄所學,技術文件涵蓋 C/C++、Java、Ruby/Rails、Python、JavaScript 等領域。


已熟悉一門語言,短時間瞭解另一血統相近語言的語法實為可能,然而短時間要瞭解新語言的慣例(Convention)並不容易,畢竟慣例是語言長期應用下的經驗集合,反映了技術生態圈管理複雜度時的特有方式,可以促進程式具有一致文化,而文化並非短時間內足以吸納的事物。

慣例定義語言的非正式語義
每個語言通常都有個基本但鬆散的命名慣例,規範整個語言技術生態圈的基本命名風格,這類慣例通常傾向指出名稱代表什麼或可以作什麼,減少開發人員間一再詢問「這是什麼」的需求。

舉例來說,Java在類別命名採大駝峰式(Upper camel case),變數命名採小駝峰式(Lower camel case),若開發者對慣例有一致共識,只要看到名稱大寫開頭,表示是個類別,若之後跟隨點運算子(Dot operator)來操作方法,表示該方法是靜態(static);雖然使用開頭小寫變數來呼叫方法,語法上並非錯誤,但在慣例上這暗示該方法是個實例(Instance)方法,不遵守慣例的情況下,易誤導程式的閱讀者,增加了維護的複雜度。

基本命名慣例通常定義了語言未正式規範的語義,有時因慣例上這類未正式規範的語義至關重要,語言本身也會納入成為正式語法。例如一般語言慣例中,常數通常使用大寫字母,Ruby語法則直接規定常數必須以首字大寫字母作開頭,類別與模組名稱也是一種常數,所以在Ruby中,類別名稱必然以大寫字母作開頭,否則就會直譯錯誤。

命名慣例目的無非就是在程式碼中,透過特定名稱形式來提高可讀性。例如Java變數或方法採用駝峰式,常數則採全大寫、底線區隔字母,目的就是要讓開發者易於區別名稱中每個單字;有些語言則偏好用全小寫、底線區隔字母,來命名變數或方法。

基於提高可讀性,不同開發團隊會有更特定的命名慣例,會因不同開發文化或面對的領域而有極大差異,這類命名慣例會更接近行話(Jargon),目的是在程式碼中傳達特定團隊或領域資訊。

除了程式碼本身會有命名慣例外,檔案名稱、程式庫資源、專案檔案布局也會有其慣例,這也是提高可讀性的一種表現,只不過可讀性層次並非展現在程式碼,而是表現在應用程式所需資源、與其他專案整合性或環境部署。

整合開發工具通常會有預設的程式庫資源與專案檔案布局,有些建構(Build)工具也規範專案結構,目的都在維持一致的專案慣例。例如Java領域中Maven發展目的之一,就是為了統一專案資源相關架構,以解決Ant自由度過高而產生的不一致問題。


1 / 2 / 3 下一頁

分享到facebook

6/20-6/21 Enterprise Cloud EXPO
企業雲資源應用博覽會與企業雲端論壇
2013 BlackBerry Enterprise Experience Forum-無庸置疑的企業行動化使命
2013 BrainShare Technology Forum Asia Pacific Tour
2013 Java Developer Day
更多研討會
▼ ADVERTISEMENT ▼
▲ ADVERTISEMENT ▲

電週文化事業版權所有、轉載必究 •Copyright © iThome | 刊登廣告授權服務服務信箱隱私權聲明與會員使用條款關於iThome