紀律造就強大的開發人員

來源:互聯網
上載者:User

註:本文譯自Coding Horror部落格。《高效能程式員的修鍊》的第83頁提到了這篇文章。

最近,Scott Koon談到了紀律作為開發人員的一項基本素質的重要性。他是這麼說的:

每個月,總有一些新的程式設計語言或者方法論冒出來。隨後,信徒們的溢美之詞便會充斥互連網的每一個角落。這些東西貌似都能提高生產力和產品品質。但他們忽略了所有成功的開發人員都擁有的一個特質。這個特質足以決定項目的命運。那就是紀律

不受紀律約束的開發人員不能保障產品的按時發布,他們也不會寫出易於維護的代碼。相反,自律的開發人員不僅是項目成功的保障,他們還能提升其他人的生產力水平。如果軟體架構師和開發人員把他們的成功歸功於他們所採用的工程方法,這對他們其實是一種傷害。歸根到底,其實要看他們有多麼遵守紀律、多麼訓練有素。

真是很湊巧!我最近給一個Team Dev做了一次關於源碼控制(Source Control)的演講,期間我也反反覆複地提到了“紀律”這個詞。紀律!紀律!我反覆提到它,是因為單純建立一個優秀的源碼控制系統是不頂事的,它並不能讓人自覺自愿地以一種結構化的、合理的方式去使用它。這事必須得靠紀律!然而,依我的經驗看來,紀律嚴明的公司並不多。我所看到的源碼控制,往往更像下面的Windows案頭那樣一團糟:

項目之間本該有一種優雅的結構,並且使用符合邏輯的代碼分支和標籤,但事實又是怎樣的呢?源碼控制系統裡滿眼都是胡亂命名的檔案夾,淩亂不堪,毫無邏輯可言!就像一個普通電腦使用者的案頭那樣……

這其實跟你選用哪種程式設計語言沒有關係。因為縱然功能要求一樣,FORTRAN程式也可以被寫得千差萬別。

FORTRAN是英文“FORmulaTRANslator”的縮寫,意思是“公式翻譯器”,它是世界上最早出現的電腦進階程式設計語言,廣泛應用於科學和工程計算領域。FORTRAN語言以其特有的功能在數值、科學和工程計算領域發揮著重要的作用。——譯者注

因此,我更傾向於贊同Scott的觀點。如果沒有紀律的保障,程式設計語言和工具都將是浮雲。然而,在口頭上反覆強調“紀律”並不見得能帶來多少協助。也許,那些入門級的開發人員需要的是一位導師(他會毫不客氣地主張必要的紀律),或者像Dave Cutler那樣雷厲風行的人,更或者像槍炮士官哈特曼那樣在強化紀律訓練方面很有手段的人。

David Cutler(大衛·卡特勒)是一位傳奇程式員,他是VMS和Windows
NT的首席設計師,1988年去微軟前號稱矽谷最牛的核心開發人員,被人們稱為“作業系統天神”。在開發Windows
NT 3.5的時候,他帶領的開發員有1500名之多,自己還兼做設計和編程,絲毫不改程式員的本色。他天生脾氣火爆,與人爭論時喜歡雙手猛擊桌子以壯聲勢。日常交談也髒字不離口。——譯者注

哈特曼(Hartman)是電影《全金屬外殼》(《Full Metal Jacket》)中的一個角色。這是一部描述美國海軍陸戰隊與越南戰爭的影片,被認為是電影史上最出色的戰爭電影之一。在影片中,哈特曼粗魯的語言、刻薄的訓練方式,誇張但也真實地刻畫了海軍陸戰隊新兵教官的形象。——譯者注


如果你們這些“女人”能從我這裡學成出師,如果你們受得了這新兵訓練,你們就會變成一件武器,成為祈求戰爭的死亡牧師。但在那天到來之前,你們屁也不是!你們是地球上最低等的動物。你們甚至都不是他媽的人類。你們什麼都不是,還不如兩棲類動物拉出來的大便!我很嚴厲,所以你們不會喜歡我。但是,你們越恨我,就學得越多。我很嚴厲,但我很公平。這裡沒有種族歧視。我不鄙視黑鬼、猶太佬、意大利佬或墨西哥佬。在這裡,你們都一樣,全是廢物。我奉命淘汰你們中的無能之輩,把那些跟我所熱愛的海軍陸戰隊格格不入的人踢出去!你們這些蛆蟲聽明白了嗎?

Steve McConnell的《代碼大全》給出了同樣的建議。不過,他的措辭要溫和許多:

面對一個剛剛從電腦科學專業畢業的學生,你很難向他解釋為什麼需要遵循工程規範和紀律。在我讀大學的時候,我編寫過的最大的一個程式不過500行代碼。工作之後,儘管我也開發過一些少於500行的工具,但主專案一般都達到了5000~25000行代碼的規模。我甚至還參與了幾個規模超過50萬行代碼的項目。而在這些大項目中,原先“小米加步槍”的應對方法已經力不從心了,我們需要一套全新的技能。

McGarry和Pajerski在美國宇航局軟體工程實驗室工作了15年,在回顧了這段工作經曆之後,他們在1990年總結道:注重紀律的方法和工具起到了顯著的成效。很多有創造力的人都是極其自律的。有句諺語說得好,“形式即自由”。偉大的架構師總是在人力資源、時間和成本的約束範圍內開展工作。偉大的藝術家也是這樣。只要你仔細看過列奧納多的畫,你就不得不承認他對細節的一絲不苟。米開朗基羅在設計(羅馬梵蒂岡的)西斯廷教堂(Sistine
Chapel)的天頂時,他把它分成了幾何形狀的對稱集合,比如三角形、圓和正方形。他根據柏拉圖(在《烏托邦》中提出)的3個階級,把天頂對應設計成了3塊地區。如果沒有這種他自己設定的結構和他的自律,300個人體畫像挨在一起可能會陷入一片混亂,我們也就看不到如今的這個曠世傑作了。

列奧納多·達·芬奇(意大利語:Leonardo Di Ser Piero Da Vinci,1452~1519),意大利文藝複興三傑之一,也是整個歐洲文藝複興時期最完美的代表。他是一位思想深邃、學識淵博、多才多藝的畫家、寓言家、雕塑家、發明家、哲學家、音樂家、醫學家、生物學家、地理學家、建築工程師和軍事工程師。他是一位天才,他一面熱心於藝術創作和理論研究,研究如何用線條與立體造型去表現形體的各種問題,另一方面他也同時研究自然科學,為了真實感人的藝術形象,他廣泛研究與繪畫有關的光學、數學、地質學、生物學等多種學科。他的藝術實踐和科學探索精神對後代產生了重大而深遠的影響。——譯者注

米開朗基羅(意大利語:Michelangelo,1475~1564),他是一位雕塑家、建築師、畫家和詩人。他與列奧納多·達芬奇和拉斐爾並稱“文藝複興三傑”,以人物“健美”著稱,即使女性的身體也被他描畫得肌肉健壯。米開朗基羅脾氣暴躁,不合群,但他一生追求藝術的完美,堅持自己的藝術思路。他的風格影響了幾乎三個世紀的藝術家。——譯者注

柏拉圖(Plato,約前427年~前347年),古希臘偉大的哲學家,也是全部西方哲學乃至整個西方文化最偉大的哲學家和思想家之一,他和老師蘇格拉底、學生亞裡士多德並稱為古希臘三大哲學家。他的《烏托邦》向我們描繪出了一幅理想的烏托邦的畫面;柏拉圖認為,國家應當由哲學家來統治,烏托邦中的公民劃分為衛國者、士兵和普通人民三個階級。——譯者注

紀律有很多種形式,並且它滲透在軟體開發的每一個環節。從小處著手吧!假設你的資料庫模式定義裡包含了3個主鍵,它們的名字分別是“list_id”、“ListId”和“list_value”。你的Team Dev裡應該有個像槍炮士官哈特曼那樣的人,讓他去“溫柔地”提醒大家:在開始深入編碼之前,最好先把那令人困惑的主鍵問題先解決了。

你不必制定嚴厲而死板的軍事化管理辦法。但即使軟體工程尚是一個不成熟的領域,我們也已經有很多公認的規範以形成現代軟體開發模式。要想從這些規範中受益,我們需要做的只是遵守一點老生常談的紀律。如果你不嚴於律己,那麼誰還會把紀律當回事呢?

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.