在上一篇 ?大劉談項目管理(一) | 如何?細分項目需求:第一彈 中,大劉主要跟大伙分享了關于如何對項目需求進行細化分類,以便有的放矢的分派資源和進行開發。這一彈就跟大家聊聊如何構建屬于自己的代碼庫吧。
1.建立代碼標識庫
還記得高中的時候,每個人基本上都有一個錯題本么?每次作業或者考試中經常出現的錯題,易錯題,都被分門別類的記錄到錯題本里。尤其是英語,很多易混淆的短語,句式,通過標記語法記錄,下次考試的時候再遇到時,就能很快分辨出來哪個是正確答案。沒錯,對于IT攻城師的我們,開發項目模塊和考試別無二致,也是一道道難題進行攻關的過程。你有沒有遇到過經常寫著寫著,突然記不清要用哪個類的哪個方法或函數能解決你的問題?或者同樣是字符串截取函數,substring和substr到底有什么區別,在不同語言PHP,JS,SQL當中的用法又是不是一樣呢?雖然這些都是很小的例子,但是在我們真正在代碼編寫過程中,一定會經常遇到這種情況。對于大劉我來說,是在為知筆記上新建了一個文件夾,名字就叫 常用代碼標識庫 ,子分類就是各類語言,分類下的常用,易錯,相似的方法函數,我都通過Tag標簽來關聯。例如下圖:內部通過Tag標簽進行關聯
如此,通過為知筆記的剪藏插件,和自己平時總結的方法函數匯總,基本上屬于你自己的代碼標識庫就建立起來了,要做的就是不斷往里填充內容,建立號標簽關聯性即可。
2.建立適用的項目腳手架
項目腳手架(Project scaffolding),實際上就是你或者團隊在開發項目時候用到的項目架構。隨著項目數量的增多,和功能模塊的擴展,項目架構會隨著框架的演進和業務流程的融合愈發成熟,對應的通用處理庫,比如網絡通用處理庫,字符串通用庫,ORM通用庫等都會慢慢建立起來。我們平時所說的項目經驗,實際上就是從這么一點一滴的完善項目架構上培養起來的。大劉所在的項目團隊,針對不同的項目類型,已經搭建了2-3個項目腳手架了,平時只要需求一來,UI設計完成,后端組的小伙伴們就能依賴現有的項目腳手架,分分鐘搭建一個空業務或者輕業務邏輯的項目出來,后續要做的只是做個性化開發擴展了。項目組內部通過這種方式,不斷的完善、優化現有項目架構,實際上是為下次需求承接做準備,這樣就形成了良性循環,也為快速敏捷開發打下堅實的基礎。
對于有些朋友不知道如何建立屬于自己項目團隊的第一版腳手架,大劉在這里給出的建議就是:
站在巨人的肩膀上,會看的更遠。
什么意思呢?就是參考現在市面上好的開源框架,比如PHP可以參考ThinkPHP,Laravel,Symfony這些比較成熟的開源框架,每個框架都各有特色,比如ThinkPHP是國人寫的,文檔比較詳細,功能擴展也比較多,適合新人和小型團隊進行開發,大劉所在的團隊就是用的TP3.2的框架作為基礎,一步步擴展起來的。Laravel,Symfony是國外大佬寫的,學習曲線稍陡峭,不過國內公司團隊使用者也不乏少數,這個就看如何做技術選型了。Java端可以考慮的就更多了,國內比較火的有JFinal,Spring,SSH自己整合的。其他的就不贅述了,因為大劉自己也在不斷學習中,期望與大家共同進步。^_^
3.不斷總結
是的,你沒看錯。為什么要強調不斷總結呢?其實編程和學習是一個道理,有可能今天你在這個項目中寫了幾行邏輯清晰,架構合理的代碼,很好解決了項目中的業務邏輯,但是如果過了半年,一年,甚至沒幾個月時間,再遇到類似業務場景的時候,說不定你就會抓耳撓腮的思考,這個場景貌似上次遇到了,我記得用的什么方法解決來著?好吧,這個例子肯定每個人都會遇到,出現這個問題的原因就是:你沒有及時認真總結。
那么應該怎樣優雅的實現你的總結呢?這里不能再像錯題本那樣整理個紙質記錄了,還是依靠為知筆記或者印象筆記把,每次把遇到的問題和解決的方式,如果時間允許,把解決思路最好也記錄上,上傳到云端,隨時隨地都能通過PC或者手機查閱。愛迪生研究燈絲材料時,曾經進行了共一千六百種不同的試驗,結果都失敗了。但這時他和他的助手們已取得了很大進展,至少他們知道了?這一千多種材料不能做燈絲!大劉給大家列舉一個記錄解決方法的記錄模板,如果有更好的,歡迎告知:
問題日期:
問題描述:
解決方案:
解決思路:
小結備注:
OK,第二彈分享完畢,第三彈開始準備ing!