程序員有哪些借口可以讓自己寫出低質量的代碼?看完深有感觸!

>>>  創業先鋒 眾人拾柴火焰高  >>> 簡體     傳統

提問:程序員有哪些借口可以讓自己寫出低質量的代碼?

寫出低質量的代碼的特征包括但不限于:

·心安理得地寫出低質量的代碼

·最終寫出了低質量代碼卻不在之后改善它

低質量的特征包括但不限于:

·文件關系混亂

·注釋過期、不明確或者沒有

·不檢查API或者函數返回的errorcode或者exception

·沒有單元測試等自動化測試過程

·到處復制代碼,公用的部分不整理成內部庫



匿名觀點


  • ·    我很久很久以前曾經經歷的一個公司特別傻比,人力資源和svn管理員不懂程序。

  • ·    作為服務端的主程序,一直以來都是代碼精簡,效率最優,沒有冗余為畢生追求。

  • ·    突然我無意中發現了一個秘密,我的績效居然不如幾個公司剛招進來的新手。

  • ·    我每天刻苦努力,優化代碼,讓公司的服務端7*24穩穩跑在服務器上,還一心研究各種熱切換,換來績效考核好久沒有優秀了。

  • ·    這究竟是為什么呢,后來好心人告訴我,人力資源說了,他們看了svn的日志記錄,其他人工作很努力,每天提交很多代碼,每天新編寫很多很多代碼文件,貢獻了好多好多的勞動成果。

  • ·    而看看你這個號稱技術排第一的家伙,根本就沒干活嘛,3個月下來,你一共就寫了這么十來個cpp和.h,每天改來改去就這么幾個文件,還好多天差不多行數的位置回改,根本就一直在偷懶。

  • ·    我聽完以后以后直接口吐鮮血,無語至極了。

  • ·    然后我就申請離職了,在那個公司剩下不多的日子了,我為了心安理得的拿最后2個月的工資,為了讓老板知道其實我一直很努力,我在最后一個月更新了幾千個文件,讓服務端的內核穩定度下降了好幾個檔次,內存消耗上漲了好多個數量級,并且把容易讀,容易后續擴展的部分,全部用c++最高級的模版進行擴展,同時刪 掉了我以前用匯編寫的優化代碼。

  • ·    嗯,我想以后這個公司估計會倒閉,我走了以后,再也沒有人能維護這份代碼了,估計3個月以后,我自己也搞不定了。
    然后我就離職了,離職之前老板大夸我厚道,最后一個月還給公司做了這么多的事情,別人走都是刪代碼,我居然還毫無保留的為公司做出貢獻。

  • ·    然后我走了不到半年,公司就呵呵了。

  • ·    我想那是我此生唯一寫垃圾代碼寫的心安理得的一次機會了。




曾經是某電信公司的網站及應用負責人的觀點


  • ·    每一個程序員在他的職業生涯中某一天都會突然獲得開示,這種開示在通常某一個夜晚悄然降臨,有時是以圖靈本人托夢的形式出現。這一開示的主要內容如下:

  1. 程序員是真正理解思維和邏輯真諦的人。非程序員是被蒙蔽的無知者。

  2. 每一個程序員對于世界上其他程序員有著不可推卸的責任。每一個程序員都必須盡力維護程序員這一高貴種族的延續,并保證世界的命運控制在程序員手中,既不被無知者淹沒,也不被機器智能取代。

  3. 完成這一使命的唯一方式,是保證穩定地出產低質量,難以理解,修改和維護的代碼。每一個負責任的程序員,他每一年的產出,必須為另外三個程序員制造一年的就業機會。唯此,程序員一族可生生不息,整個IT行業欣欣向榮。

  4. 圖靈大神在冥冥中微笑,他的紙帶機將嗒嗒作響,直至永恒。




無節操的吐槽愛好者,寫得一手蘿莉的C++的觀點


  “別想太多,先讓代碼work起來,大家都這么干的!”簡直是神借口啊!

-----------------------------------------------------------------

  • 心安理得地寫出低質量的代碼

    親,我是個傻逼來的,從來就沒見過好代碼或者根本不知道好代碼長啥樣子。我一直寫爛代碼,專注爛代碼30年,挖坑挖到天荒地老。這不叫心安理得,而是天真無邪爛漫蠢!!!因為無知,所以不存在良心被譴責的問題。

  • 最終寫出了低質量代碼卻不在之后改善它

    代碼能work,我看不出有bug。喂喂,QA也測不出有bug啊。寫單測浪費時間啦,我還有更多的代碼要寫。再說,這個 東西也不好測試啊,別太認真啦。。。由于原因A,我那么爛,我根本就不知道我寫的代碼很爛啊啊啊啊!
    哦哦,還有還有,我今天已經加班到11點了啊,確實不想再clean up以前的mess了。哦哦哦!不對,那些爛代碼是離職的大石君寫的。太君,不是我的錯啊,我只是帶路的啊啊啊!

  • 綜上所述:
    不知者不罪,我都不知道我的代碼爛,那何來改善?或者,我加班加成狗,哪有時間改善?

    PS:有鑒于我實在太爛了,有可能越改越爛,化神奇為腐朽,而且還會引入更多的bug。不不不!QA會測出來的!我絕壁不能這么干!!!既然能work,就讓它這樣好了恩恩。





前端碼畜,INTJ,各種秒收FLAG的觀點


LZ真的覺得程序員寫出低質量的代碼是需要理由的嗎?

非也,大多數程序員只把寫代碼當作謀生的手段而已,上個班、領點錢。

Because they do not care.

寫出高質量的代碼,反而是需要理由的。



外資銀行IT Payment Development的觀點


首先我要向大家檢討,這樣惡意求贊的方法是不對的,所以如果大家覺得我說得故事沒意思可以取消贊。 (⊙_⊙!)

(啊喂!我說取消贊你就真取消贊啊, 醬紫還能愉快的答知乎上題目了嗎?)

---------------------------------------------------

當我還是個實習僧的時候,我做了個項目,將在新加坡,臺灣,馬來西亞等地區分行上線。

一個小小實習僧就接了幾百萬美刀的項目啊!有多緊張多害怕你造嗎?那種既喜歡又害怕的心情就跟便秘一樣你造嗎???
滿心歡喜顫抖著接過User Requirement,洋洋灑灑的英文好雞凍啊。

然后我一個月不到完成了第一階段的Coding,我蹦啊跳啊到老板面前,‘Samseng,請賜予我高級武功秘籍吧’ ‘納尼?沒、、沒了?⊙﹏⊙b汗’

滿懷忐忑的上交了代碼,(中間省略1萬字打醬油的時間)莫名其妙就成功上線新加坡了。

臺灣User Acceptance Testing 的時候,突然來問題了。 客戶姓名還有地址欄很多繁體字顯示不出來啊摔!
臺灣嗲妹(后來才知道是大媽,為毛大媽的聲音都這么嗲啊摔!默默對著聲音擼了無數管了讓我以后如何面對啊)說,老濕,怎么這么不給力啊。
我。。。。。。

問題最后發現是,中文字錄入的時候格式是ASCII,一個字符占2個字節,輸出到目標系統的時候是UTF-8,一個字符占3個字節,但是設計的時候,沒有考慮到(鄙視所謂Architect)全部規定長度20.
問題發現了,如何解決呢?
臺灣da嗲ma妹說,你介系統有bug啦,趕緊幫人家解決啦。
我老板默默拿出用戶簽的設計書sign-off文檔。
臺灣da嗲ma妹說,客戶的名字都顯示不出,客戶都走了啦。
我老板默默拿出用戶簽的用戶需求sign-off文檔。
臺灣da嗲ma妹找到大老板,你們的人都不給倫家解決問題,真系討厭啦
大老板面無表情,煙霧彌漫中,若隱若現的聲音傳來,‘加錢’
臺灣da嗲ma妹只好找到我,老濕,你要給力啊老濕
我。。。。
我想了個辦法,超出20字符的我全部砍掉,強行把第19、20位字符賦空,于是頂多顯示18/3 = 6個字。
臺灣da嗲ma妹說,不給力啊,老濕
我。。。。那加錢吧。。。

臺灣da嗲ma妹以訊雷不及掩耳盜鈴兒響叮當機立斷章取義博云天雞不可泄露之勢說,’那就按你說的方法做吧,謝謝,再見!‘(喂喂,加點錢能死嗎?話說你為什么不發嗲了啊。T_T)
于是我瞞著老板給她寫了這個fix。

(臺灣上線一片坎坷,差點最后上線失敗的說)

終于來到馬來西亞了,這次換了個馬來華人大叔。
我說,大叔,你要做好準備,臺灣出了很多問題的。
大叔說,哦。
我說,大叔,這些question description的郵件你拿去,他們都不肯加錢呢。
大叔說,哦。
我說,大叔,那馬來西亞就和臺灣一樣,就這樣放了?
大叔說,哦。
我說,大叔,你不考慮考慮加錢強化強化點么?
大叔說,哦。
我。。。。。。。。。

然后,大叔轉身找到馬來技術部門自己開發了個類似的系統。。。。。。。。。。。。。。。

我終于明白那個等咱有了錢,豆漿買2杯,喝一杯倒一杯的哏了。

這邊的項目都是先出錢再開始的,也就是說馬來弄了2套一樣的系統。。用一套,擺著鄙視一套。。

后來我問大叔,你們為什么不給我加錢,要自己做一套呢?
大叔說,你們,不能太慣。
我。。。。。。。。

—————————————————

謝不邀:

這個問題我必須回答一下,我從上家公司離職前也寫了不少低質量代碼。原因倒不是我有多么不負責任,而是老板讓我這樣。

事情是這樣,走之前最后一個項目,本著好聚好散的態度,我以平常態度完成了代碼,結果提交給老板審查的時候,老板說,你寫這么復雜干嘛?給多少錢做多少事,并且你寫這么復雜,以后誰來維護?把這些邊路條件判斷全刪了,不用catch這些exception了,死就讓他死了。到時候用戶會加錢來增強功能的 blabla

于是,我走之前寫了一段極簡單毫無任何錯誤判斷的代碼。
—————————————————
如果贊過50我明天再分享幾個奇葩案例給大家把,賣方市場強勢的it領域就會誕生很多大家平時見不到的情況



“令狐沖”的觀點



  • 嚴格來說,這不是問題的答案,而是針對高票答案的一個評論,但是一不小心超過了字數限制,只好發表在答案下面。

    這是個很有意思的答案,除了答案本身,還包括答案下的評論。

    答案下的評論分為兩派,贊成派基本可以斷定都是開發人員,相反提出異議的也可以斷定大都不是開發人員,并且也可以斷定反對派也大多是行業相關人員。說到底,對這個答案的評價基本上圍繞著各自的切身利益展開。

    答案本身很精彩,不過很可惜,答主的行為在現實中不太容易發生。這無關法律、道德等方面的問題。一個習慣于高質量代碼的程序員,實際上不大可能寫出質量非常低劣的代碼,并且還能讓其正確運行。即使刻意的去編寫這樣的代碼,刪去優化的部分,恐怕仍然比沒有質量意識的新手寫出來的質量要高的多。

    恐怕不少程序員都動過類似的念頭,最后沒有付諸行動原因一般不是道德上的,而是工作量太大,沒有可操作性。而且這個問題論及道德也很是怪異,“我按照你們的標準做了,怎么就不道德了?”

    看起來很諷刺,這個答案的矛頭自然指向的是公司的管理層。粗略看來,似乎是這位程序員導致了公司的倒閉,但是糾其本質,使公司倒閉的是其制度。由于在制度上追求低劣的代碼,就算這位程序員沒有最后那兩個月的行為,公司不倒閉也只能茍延殘喘而已。

    這個答案基本上反映了軟件行業中非程序員群體(包括部分程序員)和程序員群體對待質量標準以及評價體系上的巨大鴻溝,在很多水平較高的軟件公司也是存在的,從評論中那么多反對的聲音就可以看的出來。有人據此評價程序員的整體素質以及人格特征,但是從這些贊同的評論中恰恰可以說明程序員群體在這兩個方面做了多少努力。一方面,程序員在嘗試著按照世俗體系的標準做事,另一方面卻要糾結于世俗體系帶給軟件開發的惡果。

    相比較贊同的評價以外,評論反對意見都顯得文字很長,而且言辭激烈。這折射出一個現象,公司老板和產品經理一類的人由于對軟件開發的不了解,對軟件的開發以及程序員做事的方法和態度充 滿了恐懼,只能一再的試圖從道德的角度來約束程序員的行為。而這種道德的表達實際上平時根本沒有落點,只有程序員自己陳述一些事實以后才有機會。

    不過上一段陳述其實不太嚴謹,因為從答案中可以看出,HR和svn管理員以及這位公司的老板也在進行著道德標準的表達,具體內容就是:“你看,這個人平時提 交這么點代碼,工作一點都不努力,沒有職業道德!”,程序員最后的行為雖然違背了自己的良心,但是卻符合了這些人的道德標準。

    但是從社交的角度來講,是寫了很多爛代碼讓老板高高興興,然后和公司快快樂樂的分手好些呢,還是最后兩個月什么都不干,留下優美但無人認可的代碼然后黑著臉離開公司好呢?那些在評論中看不起程序員性格特征的卻又對程序員有很多要求的同學們,正是你們讓程序員們兩頭不是人,是不是可以試著收回你們的雙重標準?

    請再仔細想一想,如果那位程序員自己不說,這世上有誰會認為他做了違背良心的事呢?絕大多數人恐怕都會像他的老板一樣,大夸其厚道,負面的評價頂多是后來的程序員大罵其代碼爛,而根本不會想到他是故意的!

    當然,這位程序員的行為并不值得提倡。

    ————

  • 最后為避免被折疊,補充一個和問題本身相關的答案:因為寫高質量的代碼并不能確保升職和加薪,而且還有可能起到反效果。

  • update:
    有個別反對者強調自己也是開發人員,這并沒有什么奇怪。以上文字一開始就持謹慎態度,并沒有把這兩個群體絕對化,事實上不懂編程但同情開發人員的人也大有人在。這件事說到底還是個利益問題,出現在利益上存在處于反面情況的程序員一點都不奇怪。這一個群體有如下幾種可能:

  • 1.管理層、骨干或換工作可能比較小的程序員

  • 2.公司流程比較規范,沒有切身體會

  • 3.本身沒有能力寫出高質量的代碼,因此對這位程序員的遭遇沒有共鳴

  • 4.本身沒有能力寫出高質量的代碼,因此是這種制度下的既得利益者

  • 5.真的能夠客觀理性的看待問題



來源:知乎



CocoaChina 2015-08-23 08:43:57

[新一篇] 盤點史上最具毀滅性的軟件Bug

[舊一篇] 高薪IT工作者做的工作是什么?
回頂部
寫評論


評論集


暫無評論。

稱謂:

内容:

驗證:


返回列表