1. 程式人生 > 實用技巧 >我是程式設計師:你只加了兩行程式碼,為什麼用了兩天時間

我是程式設計師:你只加了兩行程式碼,為什麼用了兩天時間

幫助我寫一個電商網站,像淘寶一樣,3000預算還不夠嗎?但可以再加一點。”幫助我寫一個像百度一樣的搜尋引擎,一個輸入框應該不會花多少時間吧?"我這方面的需求有點複雜,幫我寫一本隨手機主題顏色變化的智慧後蓋,錢不成問題。"

無論你是一家正規的網路公司,還是一名兼職的開發人員,你都會或多或少地遇到各種各樣的產品需求,客戶需求,老闆需求,他們都同意:這個需求很簡單。

這是不是真的呢?

"只要兩行程式碼,為什麼要花兩天時間?"

這個問題看起來是有道理的,但是在其背後有幾個荒謬的想法:

程式碼行數=工作量程式碼行數=價值程式碼行之間沒有什麼差別,相互等價很明顯,以上三個都是廢話。

開發人員面對這樣的指責,翻白眼之餘卻也不免怨天尤人,軟體開發是將現實世界對映到虛擬世界的魔術,回顧我們所做的改變,有太多的理由可以解釋為什麼兩行程式碼要花上兩天。

由於問題報告對再現方法的描述不夠清晰。

有時我們要花費數小時才能可靠地重現某些問題。遇上這樣的情況,一些開發人員會立刻聯絡問題報案者,要求對方提供更多的細節。但是有些開發人員不喜歡修復 Bug,因此缺乏資訊就成了甩鍋的好方法。

由於所報告的問題是關於功能的,所以我並不熟悉這些功能。

這可能涉及一些功能,一些開發人員很少使用,因此並不十分熟悉相關細節。在這種情況下,開發人員需要花費更多時間來了解如何使用功能,尤其是這種功能 bug與軟體互動的具體過程。

這是因為我花了時間研究問題產生的真正原因,而不僅僅是流於形式的症狀。

如果一些程式碼產生錯誤,直接將其封裝到 try… catch語句中,這樣可以有效地抑制錯誤。沒有錯,沒有問題,對不對?肯定不行對於負責的開發人員來說,掩蓋問題和解決問題是兩回事。隱藏錯誤很容易引起其它意想不到的副作用。在未來的一個緊要關頭,我不想再為同樣的錯誤而煩惱。

這是因為,除了報告的複製步驟外,我還研究了其他可能引起相同問題的情況。

儘管可以很容易地使錯誤重現,但一組重複步驟往往不足以揭示引發錯誤的深層原因。在找出這種根源因素的同時,研究一切可行的解決辦法,才是真正有價值的分析洞見。它可能涉及到程式碼的實際工作方式,可能是在其他位置有其他需要解決的問題,也可能是某些程式碼不一致的狀況(導致某個程式碼路徑發生錯誤,而其他路徑沒有發生錯誤)等等。

由於我花了一些時間來驗證其他程式碼是否受到類似問題的影響。

假如這個錯誤是由一個 bug引起的,那麼同樣的錯誤應該出現在程式碼庫的其他地方。現在有了使用者報告,最好是徹底檢查一下。

由於找到了錯誤的根源,我想用最簡單的方法來解決問題,保證副作用被控制到最低的風險。

由於我完全測試了這個變化,並確保它在不同的程式碼路徑下解決了相同的問題。

我不想讓別人對修復測試感到麻煩事。在此之前,我不希望再有類似的錯誤發生,因此我竭盡全力確保問題得到徹底解決。環境轉換既複雜又乏味,我希望自己的工作能夠使全職測試人員不再需要做本質上“完全相同”的更改。

有什麼比修復 bug更麻煩的事情嗎?這意味著重複修復相同的 Bug。您看到的只是我新增的兩行程式碼,而沒有看到我在背後分析為什麼要新增這兩行程式碼,以及為什麼這兩行程式碼會這樣實現。

每天只寫幾行程式碼,這是怎麼回事?

很多團隊的績效考核指標都曾經爆出過“程式碼行數”的問題,部分測試人員以查“Bug”數為依據,各大因特網大廠也曾將團隊中動輒上億行程式碼作為品宣賣點。

它讓外界產生一種錯覺,認為程式碼行的數量就是衡量程式設計師的技術能力、工作成果的萬金標準。能寫的多了,就代表寫的好了?莫非是那種濃密的 if… else衝擊波,還能像寫文章時那樣用排比句式來形容?

林克斯看著想打人。

實際上,程式設計師的工作產出與程式碼行的數量並沒有很大的關係,而且程式設計師的工作時間並不侷限於寫程式碼。

去年,外國研究機構 ActiveStates進行了一項調查,結果顯示,80多個國家的開發者中,有數千人來自美國和中國。

開發人員平均每天編寫程式的時間不到4小時。

有38.8%的人在1250個調查樣本中每天只花費2-4個小時來程式設計。這個結果和2018的調查相似,37%的人每天花2-4個小時來程式設計。與此相比,27.92%的人每天花5-7小時來程式設計,而在2018年的調查中有31%的人每天花5-7小時來程式設計。

更令人吃驚的是,在2019年,61.52%的受訪者花費4小時或更少的時間進行程式設計,而在2018年,只有51%的人花費4小時或更少的時間進行程式設計。另有10.56%的人花費8小時或更多的時間進行程式設計,比2018年的19%下降了近一半。

開發人員編寫程式碼所花費的時間越來越少了,那麼時間都到哪裡去了?

百分之四十四的人說他們必須把時間用在各種活動上,包括會議,測試,維護,甚至是社會交往。一個最耗時的活動是軟體設計/體系結構,佔11.36%,然後是參加 standups/會議,佔8.24%。

這些開發人員可能還要花很多時間寫日誌,寫週報,在中國:

這些程式碼體現了我的社會情懷,包含了我的哪些精髓技術和商業思維,最大程度地實現了客戶價值,滿足了使用者需求,為團隊留下了寶貴的技術財富,為實現數字化經濟增添了一份力量,拉通了團隊,對齊了目標,解決了痛點,賦予了行業,賦予了生命。這是一個非常棒的程式設計師!

花上兩天的時間,你會不會覺得我很高效?

點選瞭解更多資料,更有免費開源專案和課程等你觀看哦!