當前位置: 華文星空 > 知識

國內人寫程式碼的水平跟美國的差距在哪?

2013-12-25知識

由於之前在外企的工作關系,接觸過老美、印度和俄羅斯的三國軟件工程師以及他們寫的程式碼。

說下他們的區別。

老美的程式碼看起來是一件藝術品,他們會在程式碼檔頭、函數頭裏寫上很漂亮工整的註釋,然後專案有一個龐大復雜的架構,各種設計模式、框架結合使用,好像這些東西用得越多越流逼一樣。喜歡將簡單問題復混成,一個能用全域變量實作,且沒多執行緒不用上鎖的東西卻偏偏要用一個singleton模式來做。能用簡單的callback函數實作的活但偏要弄一套Observer模式。把程式碼寫得異常深奧。什麽樣版的偏特化、虛繼承那邊邊角疙瘩的技術都搬弄出來,怕你一下看懂程式碼讓他感到很沒面子似的。

解一個bug需要7個工作日,君若問為什麽要7天?

待我細細道來:問題重現要1天,debug要1天,workout solution要1天,測試1天,review 1天,review後再submit要1天,submit後經理approve又要1天...感覺那邊的時間不是錢啊,不帶這麽玩的啊。

印度人寫的程式碼就像一條工業流水線出來的產品一樣,每個都很規矩,但也很死板。一個環形訊息緩存的東西用竟然陣列來實作,然後在下標計算時倒來倒去。尼瑪用個連結串列來實作會死是不。

俄毛子的程式碼那簡直就是天書,一股濃烈的geek氣味伴隨著灌滿伏特加後眩暈的混沌感撲面而來。變量名寫長一點清晰一點會死嗎?plmm不是漂亮美眉,看了半天程式碼連猜帶懵才知道是Platform Link Maintainess Manager。然後裏面各種各樣tricky的程式碼與潛規則,get_user_policy(UserId)函數跟根據使用者id獲取他的安全策略是吧,慢著,如果你傳入的id是0,我返回的是系統所有使用者的策略;你傳入的是-1的話就是重新載入策略檔...別問為什麽,我是故意這樣做的。我勒個去...

中國人寫的程式碼還是比較實用的,但如果不加控制就會犯低階錯誤。你見過為了尋找一個使用者id,先用select *從數據庫把所有內容都撈出來,然後用個大大的for迴圈來尋找的程式碼嗎?我看了當時就淚奔無語了。

還有一次一幅圖片控制項在多次操作後就死活顯示不出來,郁悶地查了一天一夜看到某處程式碼pic.alpha=0.我問為什麽,他說因為我想隱藏圖片啊。我當時立馬有一腳踹死他的心都有,是不是大學影像處理學傻了,不知道有visible=true/false這個方法啊,要給我搞什麽alpha通道,這東西真是誰用誰才知道啊。