跳槽後在新公司的一點感悟
最近跳槽到一家創業多年的小公司,帶一個前端小團隊。
在這一個多月中,主要是熟悉業務,維護老程式碼,編寫新業務等,期間也發現了當前團隊出現的種種問題,打算在接下來的日子裡好好改造。
接下來給自己定的小目標是,改變混亂的局面,提升工作效率,團隊更加穩定和規範化。
一、適應新的環境
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)各類業務
其他組應該也會有相關文件,未來需要有個引導頁面,跳轉到相關業務中。如果沒有的話,需要找個協商人,讓他安排人手去補齊。