論代碼的修養(yǎng)

隨著軟件工程的越來越龐大,需要的技術(shù)也越來越復雜,分工也越來越細。技術(shù)代碼夾雜著業(yè)務代碼,揉到一起的各類代碼異常復雜難懂,被稱為“祖?zhèn)鞔a”。代碼欠的技術(shù)債不斷增加,但是又沒有能力去推倒重來或重構(gòu),導致問題就像雪球一樣越滾越大,好多瀕臨死亡的系統(tǒng)還在服役,好多沒人看懂的代碼還在運行,后接手的人員就像每天逛公共廁所,忍受難聞的氣味,還必須再繼續(xù)改造。

一個合格的技術(shù)團隊應該有以下三類人,第一類稱為架構(gòu)師,對技術(shù)框架、底層體系有著深刻的理解,能夠用簡單的方法抽取共性代碼,避免重復編寫非業(yè)務代碼,這類人很稀缺,需要有充足的項目經(jīng)驗來歷練,還需要個人有充足的動力去學習新技術(shù),百中無一,多數(shù)技術(shù)團隊是沒有這類人員的。第二類是項目經(jīng)理,就是對業(yè)務比較熟悉,技術(shù)一知半解,哪塊技術(shù)覺得還湊合,就用哪塊。這就導致了后期問題積累過多,還沒上線就頻繁調(diào)整架構(gòu)。第三類就是最普通開發(fā)人員了,基本就是沒想法,讓干啥就干啥,不去想為什么,碰到問題就百度,技術(shù)多年還是停留在CRUD層面,沒有質(zhì)的變化。

這三類人或兩類人組成了一個項目團隊,最終交付的質(zhì)量高低,高度由架構(gòu)師的水平掌握,進度由項目經(jīng)理掌握,如果兩類人合二為一,是最理想的狀態(tài),不過可遇不可求。

為了更好的提升項目質(zhì)量,有以下建議:

  • 1.代碼評審。##由于團隊人員眾多,寫的代碼質(zhì)量參差不齊,所以需要定期或不定期的進行代碼評審,目的是糾偏,防止部分人不按規(guī)矩來寫代碼。
  • 2 .數(shù)據(jù)庫良好設計。避免學院派的設計,第三范式僅僅存在理論學術(shù)中,實際開發(fā)中要冗余部分字段,避免多表關(guān)聯(lián)查詢。同時一開始要進行索引設計,避免后期出現(xiàn)性能問題才考慮該問題。
  • 3.前后端關(guān)聯(lián)設計。根據(jù)url很容易找到哪個代碼、哪個service,一次性解決問題。目前發(fā)現(xiàn)根據(jù)url很難查到對應的controller,對后期排查問題阻礙很大。
  • 4.規(guī)范的日志記錄。各類異常都要記錄下來,盡量使用AOP或攔截器來記錄,代碼層面盡量少try catch。各類外部接口請求也都要記錄下來,便于后期的聯(lián)調(diào)。完整的日志體系對后期的排查問題幫助巨大,不能事后出現(xiàn)問題才發(fā)現(xiàn)沒記錄日志。

后記:程序?qū)懙脑蕉?,越發(fā)現(xiàn)人的因素是整個工程質(zhì)量的瓶頸。人是不可控的,項目管理水平的提升,一方面用技術(shù)經(jīng)驗來提升整體設計質(zhì)量,一方面用合理的管理水平來控制進度。新項目的開發(fā)就得高標準要求,不能從一開始就是一團死代碼,還沒外人接手就存在無人可干的地步。

代碼質(zhì)量的提升不是一朝一夕的事,多做設計,多做規(guī)范,萬不可因為時間緊,就不做設計,直接開擼,就會朝著錯誤的路越走越遠。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容