如果引用或轉貼,麻煩註明出處與本網誌連結,否則視為侵權。

2005年1月5日

如何寫出無法維護的程式 - 命名 6-10

原作 : How To Write Unmaintainable Code, Roedy Green©1997-2004 Canadian Mind Products
中譯 : Fred F.M. Wang 2005/1/3


6. Thesaurus Surrogatisation 辭典代理人
為避免無聊,使用辭典儘可能尋找一些相同動作的可替代性詞彙,如 : display, show, present。將有重要差異但相似的功能使用相同的字來描述,例如print表示”write to a file”, “put ink on paper”, and “display on the screen”。不要為特定目的的專案編寫明確定義的語彙表,這樣是不專業的,因為違反結構化設計資訊隱藏的原則。
: To break the boredom, use a thesaurus to look up as much alternate vocabulary as possible to refer to the same action, e.g. display, show, present. Vaguely hint there is some subtle difference, where none exists. However, if there are two similar functions that have a crucial difference, always use the same word in describing both functions (e.g. print to mean "write to a file", "put ink on paper" and "display on the screen"). Under no circumstances, succumb to demands to write a glossary with the special purpose project vocabulary unambiguously defined. Doing so would be an unprofessional breach of the structured design principle of information hiding.

7. Use Plural Forms From Other Languages 使用別種語言的複數形式
使用世界語(Esperanto), 克林貢語Klingon(出自電影星際大戦http://www.kli.org) and 哈比語(Hobbitese出自電影魔戒) 等語言,讓您往世界和平的目標邁進。
: A VMS script kept track of the "statii" returned from various "Vaxen". Esperanto, Klingon and Hobbitese qualify as languages for these purposes. For pseudo-Esperanto pluraloj, add oj. You will be doing your part toward world peace.

8. CapiTaliSaTion 將字中的每個音節的第一個字用大寫
:Randomly capitalize the first letter of a syllable in the middle of a word. For example: ComputeRasterHistoGram().

9. Reuse Names 重用名稱
在程式語言允許的範圍內給classes, constructors, methods, member variables, parameters and local variables相同的名稱。另外在相同的{}區塊重複使用local variable名稱,這樣可以讓維護程式的人可以仔細的檢查每一個instance的範圍。特別在Java,可以讓一般的methods偽裝成constructors。
: Wherever the rules of the language permit, give classes, constructors, methods, member variables, parameters and local variables the same names. For extra points, reuse local variable names inside {} blocks. The goal is to force the maintenance programmer to carefully examine the scope of every instance. In particular, in Java, make ordinary methods masquerade as constructors.

10. Åccented Letters 使用重音字母
: Use accented characters on variable names. E.g.
typedef struct { int i; } ínt;
使用一般的編輯器很難區分重音字母上的斜線( í )
where the second ínt's í is actually i-acute. With only a simple text editor, it's nearly impossible to distinguish the slant of the accent mark.

譯者註 :
6-10條實際要說明的是
a.命名應該與其意義相符,不要用含糊不清的字眼或通用的字眼,例如: Printable Page會比Print更清楚,如果是特定專案使用的專業詞彙應該要編寫詞彙表(Glossary)
b.應改用標準的英文字作為命名,不要加上其他語言的特殊用法
c.名稱大寫的地方應該是一個字的第一個字母而非音節的第一個字母
d.不要在程式中重用名稱,不管是在classes, constructors, member variables, local variables, parameters or methods。
e.不要使用重音字母(accented characters)
2005/01/05 Fred Wang(http://fredwang.blogspot.com )

相關文章

如何寫出無法維護的程式- 簡介
如何寫出無法維護的程式- 基本原則
如何寫出無法維護的程式- 命名1-5
如何寫出無法維護的程式- 命名6-10
如何寫出無法維護的程式- 命名11-15


沒有留言:

張貼留言

歡迎提供意見, 謝謝 (註 : 留言經過版主審核通過才會發布)