做者:小傅哥html
沉澱、分享、成長,讓本身和他人都能有所收穫!😄
1、前言
互聯網公司常見工種有哪些?
git
互聯網中一個項目的上線會須要各個工種
間的配合,以研發爲視角上會承接產品需求,下會交給測試驗證,最終完成項目交付上線。其實除此以外,還會有業務、運營、UI設計、運維,來配合項目的發起、使用和運維維護。程序員
圖 18-1,互聯網工種協同合做。github
除了一條線上的工做交替配合,還有同工種間的跨部門協同工做。 好比:數據庫
- 產品階段:A產品中的部分服務,須要由另一個部門配合開發相關服務支撐。那麼雙方產品須要協調好時間節奏,配合上線。
- 研發階段:承接着產品跨部門的對接功能,雙方研發會定義好對接接口、對接時間,以及最終的聯調上線。
- 測試階段:按照產品的功能節點、研發的開發流程以及接口描述,進行測試驗證。
最終,同部門工做的交替、跨部門的工做協同,保障項目開發過程所需的各項物料都如期上線。設計模式
接下來咱們來講一說,項目上線中各個階段的執行過程。 固然,並不必定全部的開發都是按照這個過程執行。會根據公司的體量、項目的大小、架構的模式有些許差別。因此,僅做爲參考學習便可,不須要強制趨同。緩存
2、時間節奏
- 級別:⭐⭐⭐⭐
- 事項:定義項目開發時間節點
- 人員:業務、產品、研發組長、測試組長、架構師、核心項目成員
- 描述:這個時間節奏的定義很是重要,它能夠是項目經理髮起也能夠是產品發起。通常不少時候互聯公司發一個項目,常常會聽到老闆說
我要這個時間上
。可能這句話看上去很不合理,但爲了活下去,爲了快速站住市場,壓到下面執行人員就是一個必需要上線的時間。但,這個上線的時間若是想知足, 那麼就須要把總體的時間節奏確認出來。好比業務和產品何時把需求確認清楚
,什麼時間與研發過PRD
,研發何時開發到提測
,測試什麼時間測試完成
。若是,沒有這個時間節奏,前面的職責人員把時間都耗費沒了之後,越日後面風險越高。就像最後研發只有4天,測試只有2天,那帶BUG上線嗎!?因此要總體把控纔是對項目的負責。
3、資源投入
- 級別:⭐⭐⭐
- 事項:研發資源投入
- 人員:架構師、研發人員、測試人員
- 描述:站在研發視角,研發須要從工程開發、配合測試(改bug)、項目上線等的全流程參與,是一個較長週期的工做。但在某個階段所投入的時間成本會有差別,能夠按照必定的資源佔比進行投入(1是100%、0.8是80%)。那麼,當一個新的項目下來之後,就須要按照最近原則和項目的人員可投入狀況,進行資源投入安排。若是項目較多的狀況下,資源安排不合理。可能會致使項目提交測試晚或某些功能所有由一個研發提交測試的,最終改不過來BUG。從而也就致使了,項目的延期風險。
4、研發、測試、上線階段
- 級別:⭐⭐⭐⭐
- 事項:研發、測試、上線階段
- 人員:研發人員、測試人員、架構師/技術組長
- 描述:這個階段包括的內容較多,主要是以研發視角看上下銜接人員。研發接過產品的需求開始作設計,設計完成後由研發主導發起設計評審,這個階段參與的人員較多(研發、架構師、測試、產品等)。功能的合理設計也是能夠很是有效的保障資源使用的重要一環,另一個需求的合理架構將會爲後續需求迭代作好鋪墊。就像女廁改男廁,若是沒有流出小便的水管,就很麻煩。 最終研發完成須要提交相應的成果物,尤爲是提測報告、接口文檔、單測信息。若是研發不能有完整的單元測試覆蓋度,那麼交給測試之後,平常的修復bug的事情就會很是多。當研發和測試工做完成之後,接下來就是發佈上線。上線前夕會有研發發起上線報告,同時各方配合以及產品、運用準備相應的線上配置數據和權限。最終上線完成交付產品運營使用。
5、項目覆盤
- 級別:⭐⭐⭐⭐
- 事項:項目覆盤
- 人員:面向研發和測試人員
- 描述:覆盤可能會由於出現事故、技術總結、分享成長,幾個方向而進行的概括、總結,避免同類事情的發生。覆盤內容通常會包括技術方面的使用,例如:DB、應用開發、網關等,也包括業務領域邏輯的建設。
覆盤DB:架構
-
- 數據庫鏈接數配置依照業務場景申請增長
- 禁止使用複雜嵌套和函數類等作業務查詢
- 防重邏輯字段增強避免形成不能防重問題
- 索引字段初始化檢測以及慢查詢問題優化
覆盤業務:運維
- 對於全部營銷類場景的設計需符合標準流程,緩存使用的一致性問題
- 資金流水結算方面在防重複設計上增強驗證,測試環境模擬多樣場景
- 對於外部支撐系統的依賴按照業務體量發展,進行通知壓測報告流量
- 全部核心功能流程增強研發側代碼評審質量,並不斷按照發展量優化
- 研發側代碼質量提高按期覆盤問題以及優化,經過鍛鍊不斷增強質量
- 在研發提測、修復、上線流程注意開發分支,避免錯亂合併產生問題
- 全部的業務流程配置監控與圖表並打印日誌,方便及時追蹤線上異常
- 核心場景的全鏈路壓測能夠有效的保證質量,也可很好下降流量風險
覆盤功能:ide
- 功能邏輯封裝優化,緩存、線程、驗證
- 日誌完整性校驗,入參、出參、異常
- 調用外部接口的超時時長設定以及重試約定
- 異常展現的緊急問題,測試環境復現追溯
覆盤部署:
- 按照壓測標準部署服務
- 核心業務雙機房三機房
- 非核心業務隔離RPC接口配置
- 按需調整JVM、鏈接數、日誌等參數
覆盤接口:
- 功能驗證的完整性
- 異常流程的複測性
- 數據指標監控範圍
- 新上線後按期檢測
綜上,可能僅僅是對某一次項目的總結性覆盤,便於新人接受和理解項目的重點內容。若是團隊中能及時有效的彙總技術並落地資料,能夠很是有效的作好技術傳承。
6、總結
- 互聯網中通常中大型項目的開發過程,涉及的流程通常較多,也須要合理的把控。不然可能會出現一些過程當中的風險,致使項目不能如期上線。固然也並非全部項目都須要這樣處理,例如一些小功能的迭代和簡單需求的開發,能夠簡化流程,快速迭代。蓋茅坑、豬圈、三居室仍是不一樣的,不能一律而論
- 作好技術分析、覆盤、總結、概括,沉澱出的技術資料很是有價值,既能夠把項目開發經驗傳承給新人,也可讓全部人作好各自的技術成長。而且經過覆盤和總結,又能夠提煉出更多新的思路和提高技術氛圍。
- 好了,本章就總結到這,可能對具體的你或者具體的公司,會有不一樣的視角和結果。若是有一些好的點能夠互相討論學習。另外最近學會了個新東西分享給你們:
內卷的反義詞是:外包,合同的反義詞是:離異!
7、系列推薦
博客:https://bugstack.cn
Github:https://github.com/fuzhengwei/CodeGuide/wiki