最近跳槽到一家創業多年的小公司,帶一個前端小團隊。
在這一個多月中,主要是熟悉業務,維護老代碼,編寫新業務等,期間也發現了當前團隊出現的種種問題,打算在接下來的日子里好好改造。
接下來給自己定的小目標是,改變混亂的局面,提升工作效率,團隊更加穩定和規范化。
一、適應新的環境
1)規章制度
首先要適應公司的規章制度,主要還是要習慣上下班時間,這和以往不同,本來是到點就走的。現在的話,每天都比較忙碌,下班時間也不定。
2)新的角色
其次是要適應自己的新角色,新公司負責的事情要比老公司多很多,以往還是蠻閑的,但現在不同。
並且要帶團隊,考慮的層面也得比以前更高一點。不能只想着自己的個人發展,更多的是要關注團隊發展,為團隊的每個人負責。
3)開發模式
接着是要適應當前的開發模式,上家公司只做H5相關的事情,也就是做些效果、小程序之類的純前端工作。
而這里還會涉及到一些后端任務,用Node做了中間層,整合各類數據,執行Redis緩存,有時候還要直接操縱數據庫。
剛開始還真有點不適應,不僅要學會用終端,還得知道怎么通過看日志來排查各類問題等等。
4)業務邏輯
最后就是要熟悉業務邏輯,前提就是要把項目跑起來,知道怎么修改。
目前公司缺失各類文檔,員工離職后很多信息就只能通過代碼來了解其中的邏輯了。
為了方便調試,特地搭建了單元測試(主要測試Node方面的代碼,Mocha+Chai+Supertest),這樣既能保障代碼質量,也方便了解某個函數的功能、變量的值等。
目前還有很多我不了解的業務,未來將會經常遇到。對於這些未知業務,除了被動的遇到后再了解之外,還可以主動與各個組的相關負責人了解,未雨綢繆。
5)難點
祖傳代碼還在運行中,代碼寫的雜亂無章,並且很多服務已無人維護,但是由於缺乏文檔,難以輕易地修改。
人員缺乏,每天都疲於修復各種BUG,以及各種雜七雜八的事情,經常要花大精力去查看代碼、日志和數據庫,計划要寫的代碼或要做的事情經常無法按時完成,難以達到平衡。雖然短期內加班可以解決,但長期的話還是得補充人員。
二、制訂游戲規則
1)前后端真正分離
當前公司對前端的要求有點高, 既要會市面上主流的前端技術(HTML和CSS是必須的,還有React、Vue等),也要有后端開發的經驗,比如操作MongoDB和MySQL等。
之前公司已經有好幾個員工因為這些原因而離職了。以后如果還這么招人,定會遇到許多阻礙,畢竟沒有大廠的條件。
前端會負責一個比較龐大的后台管理系統,如果是些簡單的查詢更新等數據庫語句,其實復雜度上倒也沒什么,只不過費時間而已。
但前端還要處理金額敏感信息,這塊還是需要交接出去,過來后就和后端的大佬們討論了方案,做到真正的分離,后端組的人也是積極響應,不過這種交接過程將是比較漫長的,畢竟資源有限。
未來盡量由后端服務器組提供數據源,前端就做數據整合以及頁面效果的工作,盡量做到專精。
2)統一技術棧
當前前端有些技術棧比較老舊,有些活動頁面甚至還在用jQuery制作,這樣很限制團隊成員的發展。
因此打算統一技術棧,將后續的項目遷移到Vue或React這些目前比較主流的庫,這樣也有利於團隊成員的自身發展。
三、補全各類文檔
1)技術文檔
在我進新公司之時,有個老員工要離職了,他了解很多業務,於是就安排他盡可能多的記錄到內網的Wiki中。文檔雖然不算全,但好歹有個雛形,未來慢慢補全。
當前前端組維護了多個項目,這些項目又分別使用了不同的技術棧。
例如后台管理系統前台采用的是UmiJS+DvaJS+Ant Design+React,后台采用的是KOA2+NodeJS+MySQL+MongoDB。
自己花了點時間和精力探索了一下這兩個項目的運行過程(畫了幾張流程圖),還對其中的技術細節做了歸納和總結,降低后續新加入的小伙伴的理解難度。
2)代碼注釋
未來的話,還需要完善源代碼的各種注釋,目前很多組件和函數都是沒有注釋的,只能一行一行的看代碼來理解,很是費勁。
公司也打算用工具(例如swagger)通過寫注釋的方式,自動生成接口文檔。
3)各類業務
其他組應該也會有相關文檔,未來需要有個引導頁面,跳轉到相關業務中。如果沒有的話,需要找個協商人,讓他安排人手去補齊。