我在程式設計20年中學到的5件事 - DaedTech
在過去的4-5年中,對程式設計師的需求增長如此之快,以至於程式設計師的數量總是每五年翻一番。結果,擁有5年經驗的程式設計師所擁有的行業任職時間比整個行業的一半還多。
我現在在這個行業中已經推進了20年。我花了大約10個角色擔任我的主要職能是編寫程式碼。其他10個專案涉及管理程式設計師,指導他們,就如何管理它們向組織提供諮詢,執行程式碼庫評估實踐以及如今的內容營銷。但是在所有這些角色中,我都不同程度地編寫了程式碼。以下是我認為是20年程式設計生涯中最重要的教訓和收穫。
1. 重複是最糟糕的
“避免複製貼上程式設計!”,這是可怕而草率的做法。
想象一下,您有一個可以完美使用的CalculateBill()方法,但是產品經理徘徊並說:“我們在墨西哥招募了新客戶,您在那兒計算的帳單有所不同。”因此,您複製當前方法,將其貼上,將其重新命名為CalculateBillMexico()並根據需要進行調整。
下面是這種方法的問題:
- 如果將來的更改需要調整核心邏輯,那麼您現在必須做更多的工作並修改2種方法。
- 現在,您有2次機會在此類更改期間引入錯誤。
- 現在,您已經建立了一個“設計模式”,並且隨著全球擴張的繼續,您的程式碼正在乞求一種新的冗餘方法。
- 隨著工作的進行,您的勞動量將急劇增加。
- 通過忘記在任何需要的地方進行更改來引入錯誤只是時間問題。
- 最終,所有這些方法都將有足夠的不同,以致您無法再將它們合理地合併回去並解決問題,但相差無幾,您可以避免每次有人更新計費規則時進行20次更改。
系統中的知識重複可以多種方式發生,而簡單的複製貼上只是最明顯和最晦澀的。還有重複知識的其他示例:
- 一個for迴圈和一個程式碼註釋就在其上方,解釋了開始,結束和增量。
- 全域性變數向內聯分配了一個值,然後(也許)從配置檔案中重新分配了一個值。
- 具有“ PretaxTotal”,“ Tax”和“ Total”列的資料庫表
- 範圍廣泛的ERP系統,將客戶儲存在CRM模組中,然後再儲存在計費模組中。
最好的情況就是您已經有了適當的流程和系統來認真地跟蹤重複並確保同時更新。
當您開始構建複雜的邏輯(然後必須進行維護-請參閱下一節)以確保同步時,會發生更糟的情況。
2.程式碼是責任
少即是多,實際上,我已經擔任了多年非常專業的管理顧問。我進行資料驅動的程式碼庫評估,並幫助IT領導者制定有關程式碼庫的戰略決策。因此,我可以檢視,分析和收集大量程式碼庫的統計資訊。
關於程式碼庫的幾乎所有不良之處都與程式碼庫的大小有著顯著的關係,以邏輯程式碼行來衡量。
我喜歡編寫,研究,分析和使用它來構建事物。但是請不要誤會-這是一個巨大的責任。始終努力使用盡可能少的程式碼來完成所有工作。
3. 高階開發人員:信任但要驗證
我的意思是警告您,有多少高階開發人員表面上看起來很牛,但實際上並非如此。
因此,當您是新手時,請給前輩帶來疑問的好處並順應他們,但不要僅僅假設他們告訴您的是對還是對。自行驗證(最好不要在它們前面)。
4. TDD是有效的,但是帶來維護成本
大約10年前,我對TDD持懷疑態度。我決定寫一篇關於TDD為什麼不是那麼出色的部落格文章。
5.證據為王
程式碼審查或團隊或組織內的任何其他形式的協作過程中,如果您想就任何事情向管理層或領導層提出任何理由,證據就是您的朋友。
證據將贏得您的論點,尊重,領導角色和職業發展。
我的意思是在程式碼庫中查詢有無全域性狀態的模組,並對照JIRA故障單或其他事件的發生率交叉引用這些模組。
相關文章
- 我從程式設計寫軟體學到的 7 件事程式設計
- 我在蘋果公司學到的程式設計技巧蘋果程式設計
- 開發者談設計《我的戰爭(This War Of Mine)》所學到的7件事
- 我從程式設計面試中學到的程式設計面試
- 讓程式設計師失去程式設計激情的5件事程式設計師
- 我在阿里寫程式碼學會的六件事阿里
- 5年程式設計師生涯,我學到最重要的6個教訓程式設計師
- 10年程式設計教會我最重要的10件事程式設計
- 從學生到遊戲開發者: 我學到的五件事遊戲開發
- 老程式設計師應該記住的 5 件事程式設計師
- 19歲程式設計師在谷歌學到的5條經驗教訓程式設計師谷歌
- 你以為我在玩遊戲?其實我在學程式設計!遊戲程式設計
- 程式設計師最應該知道的20件事程式設計師
- 前端程式設計師:月薪 5K 到 5 萬,我幹了啥前端程式設計師
- Java程式設計師今年要考慮的5件事Java程式設計師
- 我在開發第一個Swift App過程中學到的四件事SwiftAPP
- 程式設計師可以在週末做的8件事!程式設計師
- 程式設計師可以在週末做的8件事程式設計師
- 我們從雲端計算中領悟到的10件事
- 在學程式設計中我犯的2個最大的錯誤程式設計
- 程式設計師最害怕的5件事 你中招了嗎?程式設計師
- 工作中最讓程式設計師瘋狂的5件事程式設計師
- 案例學習 – 為Soundwave設計Watch應用時學到的五件事
- 案例學習 - 為Soundwave設計Watch應用時學到的五件事
- 作為軟體工程師,我學到的9件事軟體工程工程師
- 程式設計師應知道的12件事程式設計師
- 程式設計師創業五年學到的 5 條經驗程式設計師創業
- 我在學習程式設計中犯的兩個最大錯誤程式設計
- 走開 我們在程式設計程式設計
- 我瞭解到的JavaScript非同步程式設計JavaScript非同步程式設計
- 關於 Unicode 每個程式設計師應該知道的 5 件事Unicode程式設計師
- PM 幫程式設計師提高效率需要做的 5 件事程式設計師
- 從事程式設計後,讓我最快樂的十件事程式設計
- 最令程式設計師沮喪的 10 件事程式設計師
- (轉)程式設計師應知道的12件事程式設計師
- 設計iOS應用時需要知道的 5 件事iOS
- 為什麼我還在程式設計程式設計
- 我是如何學習計算機程式設計的計算機程式設計