- 工作背景:2014年至2018年,在大企業維護一個2005年上線的集團OA項目,數據庫和代碼偏大,文檔缺失。維護期間又不斷開發OA新的子項目。
- 【工作方式篇】
- 被動式工作(沒事不找事,有問題解決問題。這不是消極對待工作,而是因為維護崗位的核心原則是穩定壓倒一切。)。
- 日常維護工作流程 “接到問題 -> 通過IDE調試再現問題 -> (收集資料)分析問題 -> 解決問題 -> 反饋問題”
- 接手一個新業務系統要對其全面了解,具體了解方面是:
- 了解業務邏輯(用戶需求分析手冊、通過代碼反推、請教他人),如果業務復雜可以通過多角度、多維度、多側面、多層次去理解你的業務。
- 了解代碼(系統三層概覽及列出各層資源清單(業務類及其方法、工具類、js、dll等);了解項目組編碼規范及項目組運作流程;系統中大量使用的技術點;常用代碼段等)
- 了解數據庫(表(表關系、表字段)、存儲過程、函數、視圖、數據庫設計規范)--可以借助相關SQL語句通過上帝視角全面了解
- 系統部署信息
- 每天記錄工作日志(自己建個
excel
即可)。
- Excel模板sheet有:
1、工作排序(特忙時啟用); 2、“2018-1 ~ 2018-6;2017-7 ~ 2017-12;2017-1 ~ 2017-6;......”; 3、資料(存放供其他sheet引用的文字) ; 4、C#代碼段; 5、js代碼段; 6、SQL代碼段
各sheet介紹:
1
--特忙時啟用此sheet。主要是對要辦的工作根據輕重緩急排序。標題有“日期、編號、來源、反饋人、任務全文、任務摘要、耗時(h/天)、今天完成否(完成/等待/待評估/凍結)、解決方案、備注”
2
--每天的工作日志。半年建一個sheet,日志標題有“日期、工作內容、備注、日志(批注:給自己看的日記)”。加班調休備注標題“加班日期(批注:具體到分鍾)、合計(h)、請假日期、已用”
3
--各sheet不適宜放大段備注,在本處可放大段文字供它們引用。
4、5、6
--整理日常工作遇到代碼段,方便日后重用。標題“代碼段名稱、代碼段內容、時間戳”
- 【代碼篇】
- 策略:重視基礎知識、重視代碼重構、建立代碼評審機制
- 代碼要寫的少做的多,寫的代碼從外在到內在要有品位。保證他人花最小的時間就能理解。
- 寫代碼技巧:先從項目的相應層中找需要的方法 → 沒有,則從網上找優秀的Helper類(或插件)→ 萬不得已才自己去實現一個方法。總之,是盡量自己少寫代碼(避免重復造輪子),只寫業務方面的代碼。網友整理的相關Helper類很多,如:數據庫、上傳下載、導入導出excel、json轉換、文件操作、壓縮解壓縮、xml操作等。
- 把常用的代碼段整理到工作日志中。
- B/S架構系統,建議用富客戶端技術,美觀前衛,更重要的省不了精力(尤其對全棧開發者)。有些時候又必須兼容舊版本瀏覽器,造成了技術選型困難,對於這樣情況富客戶端技術的使用策略:考慮到admin人少,普通用戶人多,建議前衛技術在admin頁面大規模使用,普通用戶則保持不變。用layui不錯,門檻低,拿來即用,兼容IE8+。
- 一定要重視業務。這里可以通過多個維度多個側面去多畫UML圖,加快加深了解。畫UML圖(流程圖、時序圖、用例圖、狀態圖等)以及其他你想畫的圖。工具:在線wps的流程圖功能。
- 【數據庫篇】
- 策略:一邊工作一邊整理自己的數據庫字典。這個整理工作是落實在每次與數據庫有關的維護工作中,前腳剛解決問題后腳就及時把有價值的碎片知識整理到EZDML里。
- 使用工具:EZDML(表結構設計器)
- 新人怎么了解某個表與其他表關系?看文檔,看代碼,問人,或看與它有關的存儲過程或SQL。
- 【技能篇】
- 對技能最低要求是能滿足開發工作,能解決客戶的問題。js學習歷程就是這樣一個過程,先通過簡單學習,能寫出簡單表單驗證(基本上能解決工作中八成問題),然后學jQuery和bootstrap、jquery easyUI。最偷懶的技術提升方式是采用拿來就用的方式,類似於會用excel但是會用vlookup這樣的功能是通過去百度掌握的,通過在遇到問題和解決問題過程中不斷提升水平。
- 鞏固基礎:時不時的學習基礎知識,溫故而知新。
- 補齊短板:對開發過程中遇到的技術短板,要利用業余時間補齊。
- 技術儲備:了解學習未來可能用到的技術(或是學習能更好地解決工作中問題的技術)。