漫談程式設計師系列:千奇百怪的程式設計師

發表於2015-01-15

幹開發時間長了,遇見好多好玩兒的程式設計師。

看看你躺槍了沒。

留一手

有個哥們兒,在一合資公司做程式設計師,能力挺強,寫程式碼很神的。

他的程式碼我看過,深得 MFC 的精髓:大量的巨集,很多函式就兩三個巨集,一個BEGIN_XXX,一個END_XXX,中間再夾另外一個巨集。諾,這就是漢堡包了。

我碰巧看他的程式碼(題外話,沒和他在一個公司一塊兒待過),那個頭大啊……這玩意兒也能記得住嘛,厲害,真是厲害。

就是這麼厲害個人兒,專案組數他牛 B ,他的程式碼只有他能看懂,他的地盤他做主,沒人敢進去改東西。

這都不是真正的牛 B 之處,最牛逼的是,這哥們兒程式碼裡有不少 BUG ,每個版本都不改完,故意留上兩個,要是專案經理急了,就把舊的改完,埋兩個新雷進去。

因為沒人動得了他的程式碼,他就這麼一直搞著,專案經理恨得牙根癢癢,可愣是沒辦法。

全域性變數控

看一段程式碼:

恐怖嗎?這是我在一個專案中的一個原始檔裡看到的,還有很多類似的原始檔……

話說,有些程式設計師就愛這口,特別喜歡全域性變數,只是,程式碼寫完的第二天,他就可能被自己的全域性變數們給吞噬了……

別想看我的程式碼

還有的兄弟,對於自己的程式碼,非常之在意,他把自己的程式碼當作聖姑了,雖然必須行走江湖,但是我就是要給它戴個斗笠蒙個面紗,就是不讓你看。有時候你看他一直埋頭電腦前,噼裡啪啦的擊鍵之聲不絕,可是就是不知道他寫了什麼。他從來不讓別人看他的程式碼,誰看給誰急。不知道是怎麼想的,我有時候只能猜測,他啪啪啪敲鍵盤,其實是在聊 QQ 了,他之所以不讓人看,完全是因為,半個月過去了,一行程式碼還沒寫呢。當然還有一種可能,他的程式碼比較凌亂,不想讓人看出來……我們也可以往好的方面猜猜,此君自視甚高,認為自己的程式碼高深莫測,怕別人看了自慚形穢,怕打擊別人柔弱的小心臟;或者此君認為自己的程式碼太優秀了,怕別人偷學了去……

不管怎麼樣,死捂著程式碼不放,終歸不是個辦法。

祥林嫂

“祥林嫂”原本是魯迅小說《祝福》中的人物,是舊中國農村勞動婦女的典型。而“祥林嫂”這個詞兒本身,現在又有了特別的含義,我只取其“牢騷滿腹”、“不斷 goto 當初”之意。

有個別程式設計師,對自己的技能比較珍視,採用二分法,認為這些技術是好的,是靈丹妙藥,認為那些技術是壞的,是穿腸毒藥。尤其是產品技術方案沒有選擇他認為好的那個技術時,他會很長一段時間不能接受,但凡專案執行過程中遇到點兒不順,就會嘮叨:“要是當初選擇 XXX ,肯定沒這些問題”。類似的話,會不斷從他嘴裡說出來,迴圈往復,一詠三嘆,簡直讓人崩潰。

我能幹我不干我很忙

也許你遇見過這樣的隊友:分解任務時,說到哪個模組,都能頭頭是道,看起來沒有他不懂的,可是你讓他干時,哪個都不願意幹,老推說我已經 take 了多少少 task 。到最後,他基本上沒什麼 task ,還是很簡單的,但當你跟蹤進度時,他卻總是說遇到了這個問題,還得多長時間,遇到了那個問題,又得多長時間,你要幫他看看時,他又說不用自己能搞定。

未來戰士

未來戰士們對新的技術和工具特別熱衷,每個領域的前沿技術他都知道,都能說出個一二三,而且這些技術更迭時他也都知道,比辦公室裡的其他人都知道得早。對於那些新技術,一旦他和你說起來,就神采飛揚,唾沫星星子四濺,此時即便你有事兒都不好意思走開。

未來戰士所開發的軟體所使用的 SDK 、 工具 ,只要有新的版本出現,一定要更新。哪怕是昨天剛剛更新過,今天也要更新。你不讓他更新他就坐立不安,一定要來說服你,新版本有千般好,舊版本效能差、漏洞多、使用不便、編譯緩慢等等問題都會被他找出來。

未來戰士的哲學思想非常明確:新的就是好的。

石器時代的守護神

與未來戰士相反,另有一些程式設計師,對自己掌握的技術、對既有產品所採用的技術堅定不移的維護,你要想讓他把軟體依賴的框架版本升級一下,那是比登天還難:Run得好好的,為毛要升級?用現在的版本可以應付一切!

石器時代的守護神具有很強的韌性和對抗一切新技術的定力,只要舊系統還可以用,他就可以曠日持久的堅持、維護下去,因為他們的原則就是:只要將就能用,不到萬不得已一定不要去更新,因為任何新的技術新的改動新的設計新的重構都是怪獸,不知道會帶來多大的破壞。

老子不需要幫助

見過沒?有的程式設計師就愛自己搞,就算是我被一個問題絆住,吭哧吭哧搞上一星期還搞不出來,你也別想幫助我!他們的信條是:老子能搞定,老子不需要幫助。

這種型別的程式設計師特別敏感,特別害怕別人瞧不起他,當然有時也有些自卑、多疑,擔心別人的幫助裡夾帶著嘲笑,他們的敏感、多疑、驕傲、自卑等等複雜情感驅使他們拒絕接受別人的幫助,也驅使他們忘記時間盒的存在。

快來幫幫我吧

嘿嘿,這種型別的程式設計師,最愛說的就是:哎呀搞不定了,誰來幫幫我。

只要你一幫他,這活兒就成你的了,他們會讓你覺得幫人不到底你好意思嗎你,還會讓你覺得送佛不到西天就是你的罪過……我天,他們遇到問題都不想的,直接拉你過來調程式碼。

他們是“老子不需要幫助”的反面。

別讓我讀程式碼,我是文盲

我懂得一門語言的所有語法,關鍵字認得,控制結構懂得,繼承知道,多型瞭解,設計模式我也清楚,可你別讓我看程式碼,看不懂,真心不懂。

這也是一類程式設計師,他們能夠了解程式語言的所有語法和細節,可就是看不懂別人的程式碼。

精雕細琢的藝術家

咦,這裡該不該斷行?

程式碼編輯器裡,到底這種字型好看還是那種字型好看?

這裡的條件判斷,到底是三層 IF 語句巢狀好還是三個 IF-RETURN 好?

……

這些藝術家們把程式碼當作一門藝術,從編輯器開始打磨,一直到每一行程式碼到底多少個字元合適,花括號是放在行尾還是行首……都要仔細斟酌研究。對他們來講:美觀是高於一切的。

孤獨的人

有些人選擇軟體開發,就是因為:再也不用和別人打交道了。

所以,他們會迴避任何與別人交流的機會,談話、電話、郵件、即時通訊、微信……總之,他們理想的工作環境裡只有程式碼沒有人類。與同事或客戶溝通,對他們來講是巨大的負擔,感覺說一句話就會耗費他們一輩子力氣。

 

———–回顧分割線——————-

相關文章