從Swift_寫程式碼命名規範細節中再次溫故一些命名規範(匈牙利命名法vs駝峰命名法的歷史)_查爾斯·西蒙尼生平

在計算機語言發展過程歷史中
衍生出了三種命名規範方法


一、匈牙利命名法(Hungarian notation)
(注重 型別檢查)
通常只針對變數命名
規則是:  變數名 = 類型前綴 + 描述
Ex:
bFoo  ---->             表示         布林值  型態的變數
pFoo  ---->             表示         指標      型態的變數
strName ---->        表示         字串      型態的變數
iSize ---->              表示         整數變數  
u32Identifier ----> 表示         無符號32位元整數
等等
這種命名法其實是對於西蒙尼祖籍的一種諷刺。















查爾斯·西蒙尼(英語: Charles Simonyi)
原名西蒙尼·卡羅利(匈牙利語:Simonyi Károly

曾任微軟公司的產品開發主任(軟體開發專家)

微軟的早期員工之一,堅持物件導向的軟體開發運程

1948年9月10日生於匈牙利布達佩斯一個電子學教授之家
中學時代   酷愛電腦科學和數學於晚上為大學實驗室打雜工
在當時他所處的實驗室中有一台笨重的蘇聯制烏拉爾二號電腦(Ural II)
西蒙尼透過自學快速掌握該電腦的全部操作指令
並自己開發出一個Fortran語言程序編譯器。

1966年西蒙尼中學畢業後,他憑藉著
開發程序編譯器的工作經驗丹麥「A/S Regnecentralen」計算中心找到第一份工作
兩年後
他利用工作攢下的錢至美國加利福尼亞州的加大柏克萊分校
學習工程應用數學數理統計

1972年從加大畢業後(六年~)
進入史丹福大學研究生班學習深造計算機科學。
在學習期間他還在施樂公司兼職工作

在導師的指導下和公司同事合作
開發出當時領先的可視見(WYSIWYG)文本編輯軟體BRAVO。

1977年(五年~)
取得了史丹福大學的博士學位。

1981年
施樂的同事Metcalfe建議他
向微軟公司主席比爾蓋茨寫信毛遂自薦。
後來被重用,主持Multiplan軟體(即Microsoft Excel的前身)的開發工作
採用一項新設計準則使得Multiplan軟體能在多個平台上工作
儘管後來微軟的DOS作業系統迅速普及
使該軟體可移植性意義相對不大
但是西蒙尼的創舉令蓋茨對他深為賞識,隨後兩人密切合作。

後數年,Excel試算表就此誕生,
針對微軟的程式設計師們各自有獨特風格並不擅長團隊合作之陋習
創導了匈牙利命名法(Hungarian notation)。
後來成為世界軟體行業的一種行業標準,
保障了微軟程序的質量和原始碼的易讀性、可維護性。

2007年  從微軟辭職並創辦了「Intentional Programming」公司
力求創造新的軟體開發模式

匈牙利人名和大多數其他歐洲人名相比是反過來的
姓氏在名字的前面
Ex:
英語化的名字「Charles Simonyi」在匈牙利語中原本是「Simonyi Károly」。
在匈牙利命名法中,類型名在實際變數名前













二、駝峰命名法(Camel-Case)
混和使用大小寫字母進行命名
又可細分為
大駝峰(第一個單字全大寫)
Ex: ClassRoom

小駝峰(第一個單字全小寫)
Ex: myRoomCount


三、帕斯卡命名法(Pascal Case)
當變數名和函式名
是由二個或二個以上單字組合時
第一個單字首字母採用大寫字母
單字之間不以空格斷開或連接號(-)、底線(_)連結
以增加變數和函式的可讀性。
Ex:
FirstName、LastName
MyAddress
和大駝峰命名法規範有相同



於Swift語言中採用駝峰式命名法


以下幾點是Swift變數命名規範
若沒遵守這些細節而養成壞習慣命名
通常會影響團隊之間相互看彼此程式碼不統一規範
而有所影響

因此以下這個統一規範可以作為參考
養成一個小小的命名好習慣

(1)對於   結構體(structure)類別(class)列舉(enum)協定(protocol)
應該採用大駝峰命名法
Ex:  SplitViewController

(2)對於文件名稱
採用大駝峰命名法
Ex: BlockOperation.swift

(3)對於  擴展(延伸)文件, 有時會定義在一個獨立的文件中
用 原始類型名 + 擴展名 作為擴展文件名
Ex: NSOperation+Operations.swift

(4)變數 及 屬性  採用小駝峰命名法
Ex: studentNumber

(5)常數、 列舉成員採用 大駝峰命名法
Ex: MaxStudentNumber、ExecutionFailed

(6)函數 及 方法 採用 小駝峰命名法
且第一個單字通常為動詞
Ex: balanceAccount ()、 isButtonPressed()、countCar()、getName()




參考資料:

匈牙利命名法
https://zh.wikipedia.org/wiki/%E5%8C%88%E7%89%99%E5%88%A9%E5%91%BD%E5%90%8D%E6%B3%95

查爾斯·西蒙尼
https://zh.wikipedia.org/wiki/%E6%9F%A5%E5%B0%94%E6%96%AF%C2%B7%E8%A5%BF%E8%92%99%E5%B0%BC




留言

這個網誌中的熱門文章

何謂淨重(Net Weight)、皮重(Tare Weight)與毛重(Gross Weight)

Architecture(架構) 和 Framework(框架) 有何不同?_軟體設計前的事前規劃的藍圖概念

經得起原始碼資安弱點掃描的程式設計習慣培養(五)_Missing HSTS Header