我在程式設計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故障單或其他事件的發生率交叉引用這些模組。
相關文章
- 我在阿里寫程式碼學會的六件事阿里
- 我從程式設計面試中學到的程式設計面試
- 5年程式設計師生涯,我學到最重要的6個教訓程式設計師
- 開發者談設計《我的戰爭(This War Of Mine)》所學到的7件事
- 你以為我在玩遊戲?其實我在學程式設計!遊戲程式設計
- 從Delphi到Lazarus——我的程式設計之路程式設計
- 程式設計師體驗——我在 RightCapital 的工作程式設計師API
- 自學程式設計的朋友,我想給你們這 5 個建議程式設計
- 程式設計靠天分?不!我學程式設計靠風變程式設計
- 程式設計師跳槽到國企後,月薪達到20K,網友:請國企毀了我!程式設計師
- 自學程式設計兩個月,現在我月入 4 萬元程式設計
- 大學老師告訴我:20年內程式設計師會被取代,未來不需要程式設計師...程式設計師
- 有哪些事情是程式設計 20 到 50 多年後才知道的?程式設計
- 我的程式設計人生程式設計
- 我的程式設計之路程式設計
- 萌新必看|程式設計師在技術團隊一定要學會的7件事,趕緊學起來!程式設計師
- 程式設計我們學到了什麼?程式設計
- 5k和5萬程式設計師的差距原來是在於10大程式設計禁忌!程式設計師
- 0基礎學程式設計,瞭解這15件事能事半功倍!程式設計
- Linux系統程式設計【5】——stty的學習Linux程式設計
- 程式設計師打怪升級六件事程式設計師
- Python 程式設計從入門到實踐5Python程式設計
- 我學習的程式設計,都給我帶來了什麼?程式設計
- 我們在編寫python程式碼時應該注意那幾件事!Python
- 感悟我的程式設計之路程式設計
- 我的程式設計師之路程式設計師
- [譯] 我在程式設計初級階段常犯的錯誤程式設計
- 為什麼在中國僅有20%的程式設計師買房?程式設計師
- 以前的程式設計師,現在的程式設計師程式設計師
- 關於我在學習LFU的時候,在開源專案撿了個漏這件事。
- 開始自學ue5的c++程式設計C++程式設計
- 從初學者到程式設計高手,幾種必學的程式語言程式設計
- 從美術生到程式設計師轉型之路【我的故事】程式設計師
- 從程式設計到養生程式設計程式設計
- 我是如何學習一門程式設計技術的?程式設計
- 學完風變程式設計,我的焦慮緩解了!程式設計
- 深夜,我偷聽到程式設計師要對session下手……程式設計師Session
- 物件導向程式設計從小白到王者系列-建立我的第一個程式物件程式設計