來源:孔凡勇(雲狄)的分享:《細說Tech Leader在開發團隊的核心職責》
開發規範
協作流程
配置規範
統一配置規範,包括IDE、maven、git、各種環境參數等。這些配置都放在WIKI上,方便新來的同學看。
命名規範
包、類、接口都要按規範來命名,不要整些半土半洋,只有你自已理解的命名。可參考阿里之前出過一個JAVA編碼規範。
API規範
前後端分離、微服務架構,API規範尤其重要,版本的兼容性、錯誤碼的規則、鑑權方式、數據脫敏、設計API時的防重、冪等性問題要考慮到。
異常處理規範
好的程序,必定有好的異常處理機制,重試機制、超時的處理、極端情況下的熔斷機制、降級機制。
不要小看這些“雕蟲小技”,比如重試,如果沒有一個好的重試設計,在對方接口調不通的時候,調用端不做控制,頻繁重試,這不亞於一次DDOS攻擊,整個服務會被壓垮。
分支開發規範
分支管理同樣要遵守約定,什麼時候用雙主幹、什麼時候鎖分支,誰來負責分支的管理,緊急版本用主幹還是分支來發版,要根據實際情況來制定標準。
代碼commit規範
commit的標識要統一,如:feat : 新功能;fix : 修復bug;docs : 文檔改變;style : 代碼格式改變;refactor : 某個已有功能重構;perf : 性能優化;test : 增加測試。
可以結合IDE插件來實現。
日誌規範
通常公司的開發框架裏都會集成日誌處理模塊,在編碼的時候按規範調用,禁止用System.out/error來輸出日誌。上線後有統一的配置中心來控制日誌的輸出。
MySQL開發規範
在開發過程中,建表的規範,索引使用和優化,SQL語句的內聯、外聯,好的SQL習慣要養成。
統一工具與框架
常用的工具封裝,如http連接、ORM、文件讀寫。
分佈式基礎組件的使用,不要每個人自已實現,尤其是鎖、限流機制等,使用不當很容易造成線上事故,而且不好查。
需求管理
需求要有治理機制,要根據對主營業務的貢獻度來衡量價值,而不是哪位老闆的聲音大,需求要評出A\B\C等級,根據等級安排資源。
架構評審
架構設計的目標
架構評審的原則:合適原則、簡單原則、演化原則,“剛好夠用”也許是最“完美”的方案。
架構評審,要兼顧功能需求、非功能需求。
代碼評審
- 開發規約插件掃描
- Sonar掃描
不要流於形式,不要變成批鬥會,或是華山論劍,比誰的技術niublity。
目標是找出設計和實現時遺漏的地方,幫助開發人員成長。
發佈計劃評審
對比較大的版本發版,要做發佈計劃評審,要有外部依賴檢查、配置確認、二方庫與應用發佈順序、數據訂正和變更、回滾計劃、線上迴歸冒煙等。
技術規劃
作爲技術經理,要做團隊的技術規劃,如每週、每半年。
平時的技術運維要關注:系統指標、慢接口、慢查詢、錯誤日誌等等,從小處發現改進的點,儘早防範。
團隊建設與管理
依據團隊不同階段,分爲集權式管理、放權式管理。
團隊管理與激勵
團隊管理,分成“管”和“理”。
初級員工要“管”,設定目標、給與輔導,手把手幫助員工提升能力。
資深員工要“理”,給以空間,設定目標,幫助協調資源,有兜底方案,讓員工自由發揮。
團隊文化塑造
溝通與輔導
1on1
1on1是非常重要的溝通方法,尤其跟員工進行輔導的時候。
遵循3分講7分聽的原則,關注個人工作、個人成長、團隊、公司四個方面。
要提好的問題,比如:
你對近期工作滿意嗎?爲什麼?
現在做的事情,跟你的發展方向是一致的嗎?
團隊員你最佩服誰?爲什麼?
你對公司戰略有什麼不清楚的嗎?
團隊招聘
人才選拔要關注:專業能力、溝通、責任心、是否靠譜、價值觀等。不要只看技術,別忘了這個人進來是要跟人打交道的,要綜合考量。
員工解僱
管理者的職責是:定出高目標,帶領團隊共同前進,把團隊從愚昧之巔推向絕望之谷,幫助團隊成員走上開悟之坡。