被詛咒的程式設計師的七宗罪

2021-06-19 12:45:13 字數 1777 閱讀 4351

**:

七宗罪(seven deadly sins),13世紀道明會神父聖多瑪斯·阿奎納列舉出各種惡行的表現。這些惡行最初是由希臘神學修道士龐義伐草撰出8種損害個人靈性的惡行,分別是貪食、色慾、貪婪、暴怒、懶惰、傷悲、自負及傲慢。

程式設計師生來不平等。有的偉大。有的渴望偉大。有的就是廢物。

下面是一些程式設計師經常會走入的歧途。聽起來很恐怖,但享用吧。上帝就在你身邊,警惕這些危險的訊號,跟隨主救贖的指引。

作為程式設計師,這種罪惡的表現是不斷的受絢麗的新事物的**。下一代程式語言,最新的框架,最新的平台。

我們程式設計師天生好奇。我們受惑於追求高效,堅信所有的東西都要經過優化。只有用了那種最新的語言,我們才能工作。

雖然不斷的追求改進是非常值得讚賞,但採用新事物也是有代價的。有避免不了的學習曲線。有適應問題。有未知的依賴問題。有未知的未知問題。

清除這些雜念。專心解決你手頭上的問題。充分利用你知道的,停止貪戀那些光鮮新事物。

這是過度之罪。過度的企圖多做,過度的擴充套件深度和廣度。

不必要的功能特徵溜進了產品裡。大量無用的**被生產出來。寶貴的程式設計時間被消耗,被浪費。

這些行為增加了不必要的複雜度,帶來的高昂的維護代價。通常導致的結果是,預期不能完工。bug層出不窮。

警惕那些不該有的功能、警惕那些對不必要的複雜架構的偽辯護、警惕過早優化的跡象。讓產品簡潔。

過度專業化和功能化會導致形成個人的領地。固步自封。我的**。我的模組。我相干的區域。沒有分享。沒有合作。

一種不健康的對這些人的依賴會逐漸形成。所謂的「程式設計教父」,「程式設計巨星」和「程式設計領袖」就代表了這些趨勢。

相反,應該建立乙個崇尚**集體所有和充分合作(比如結對程式設計或相互**審查)的文化。

根據perl語言的創造者larry wall的話,懶惰是程式設計師的三個偉大美德之一。

但懶惰不能和冷漠混為一談。長時間不理出現的問題。允許**腐爛異味。不重構拷貝/貼上過來的重複**。

對軟體開發中這些需要修改的東西要有一種緊迫感。事無鉅細。這是保持軟體健康的必要態度。

在有些地方,有些程式設計師是每個人都尊敬,也是每個人都害怕。你也許遇到過這樣的火星極客。他們恃才放曠,為所欲為,其他人在他身邊都惦著腳走。避免和他衝突。

他們喜怒無常,他們的怒氣經常撒錯方向。他們貶低他人,破壞團隊和諧。

警惕這種不受約束的對峙氣氛的滋生。拒絕忍受這樣的撒野。立即辭掉他們。

不滿足於現有的工具和系統,有些程式設計師眼睛總是盯著別人的。

我曾經遇到過這樣的經歷,乙個wiki系統正在使用中,另外乙個卻同時被引進,因為它的標記語法感覺更好一些。兩個問題跟蹤系統,多種聊天系統,不相容的部落格平台,等等。

如果你不喜歡某個工具,相信有比它更好的,那好,去找到它,使用它。但是,請完全放棄你現有的。吃著碗裡又想佔這鍋裡,只會得不償失,給自己製造麻煩。

有些程式設計師喜歡孤芳自賞。對自己的能力過度自信。從不尋求幫助。

更糟糕的,他認為所有的事情都應該由自己來完成。雖然他有能力完成任何的任務,但他卻沒能完成,因為他承擔的太多了,無法集中精力。他分不清什麼是核心什麼是次要的。在可以使用雲服務時他建造自己的伺服器,在能使用成熟的部署系統時他重新發明自己的,他開發出跟現有框架功能相同的框架,等等。

誠然,做研究是有趣的。這些研究經常被辯稱為「基礎」或「革新」,但卻因沒有更快捷的創造商業價值而使產品喪失市場先機。

小心「非我發明(not invented here)」症候群。準確的定義你的核心目標,你的首要工作。其它的都是次要的,可以借用別人的。這沒有什麼好羞愧的。

[英文原文:

7 sins of doomed teams ]

程式設計師的七宗 罪

雖然軟體工程的思想已被絕大部分程式設計師所接受,但要將這種思想轉化為軟體開發過程中的種種自覺行為卻不是一件很容易的事。究其原因,有很多因素,如很多程式設計師缺乏專業化的訓練,重技巧,輕規範,包括一些計算機專業科班出身的程式設計師也存在這種問題 再如很多公司只注重軟體產品的開發結果,不注重開發過程,客...

程式設計師的七宗「罪」

雖然軟體工程的思想已被絕大部分程式設計師所接受,但要將這種思想轉化為軟體開發過程中的種種自覺行為卻不是一件很容易的事。究其原因,有很多因素,如很多程式設計師缺乏專業化的訓練,重技巧,輕規範,包括一些計算機專業科班出身的程式設計師也存在這種問題 再如很多公司只注重軟體產品的開發結果,不注重開發過程,客...

七宗罪與程式設計師

很多年前,看過一部印象很深的電影 七宗罪 佛家說人要克服 貪 嗔 痴 天主教給人定了七宗罪 暴食 貪婪 懶惰 淫慾 嫉妒 驕傲 憤怒 在各行各業都有自己的原罪,程式設計師也不例外,做為軟體行業的基石,一方面是有太多的程式設計師在 30歲時轉成商務和市場,另一方面是成千上萬的學員擠破腦袋進入這個行業。...