困境
追溯到2018年5月份,是個炎熱的夏天,畢業后1年7個月我提出了離職,原因是受不了原來公司過度的封裝框架感覺一年多毫無進步與實施天天轟炸般的電話,偶然間出去面試了一次發現自己知識真的是比較局限,決定換個環境提升自己,5月份出去面試屢屢碰壁,還好在老同事的介紹下進了個相關行業的公司,盡管還是一樣的框架一樣的味道,但是還是下定決心不管工作再忙都要不斷的提升自己,哪怕每天進步一點點,我相信老天不會辜負有心人,可能今天你的付出不會立刻得到回報,但總會在未來的某一天,收獲悄然而至。
掙脫
下定決心學習后的第一個問題就是,我該學什么,從哪個方面入手,往大了說框架,算法,前端,往小了說圖像,工具,消息推送等等,經歷了一段時間的迷茫我還是決定從一個平常開發過程中自己覺得麻煩的問題入手——DB層工具,第一家公司使用的DB層是微軟企業庫,漫天的SQL的語句真的是痛不欲生,一個項目下來,DB類都有個小2萬行出頭,所以決定在微軟企業庫的基礎上封裝一個通用操作工具,就這樣有了目標之后,先按照自己的想法做了一版,查找了很多資料,不斷的重構優化,學習了解網上看到感覺有興趣或者自己從來沒有聽說過的技術,就這樣算是對自我學習有了一個入門。相信大家也有過這樣的經歷,想去學一項技術或者一個框架,文檔教程都很齊全,但就是學不下去,我覺得可能給自己定一個目標做出一個東西會學習來更加迅速和快樂,有需求才會有產出,通過DB操作工具的造輪子,我逐漸了解了自定義的Attribute,反射,Emit,IOC,事務的傳遞等等平常一帶而過看到卻沒有靜下心來去真正自己理解一下的知識點,項目大家有興趣可以去看一下https://gitee.com/grassprogramming/FastORM。
自由
有了學習的興趣之后后續恰好了解到了Vue,覺得挺便捷的,於是決定從平時使用的模態窗口入手造了一個輪子,反反復復修改測試,又完成了一個自己小作品。2018.10月份朋友介紹了個小程序的小項目做着玩,就去研究了下springboot的使用和微信開發,算是增加了自己的知識面,中間又通過Java把自己寫的DB操作工具翻譯了一遍,收獲良多。后面覺得公司既然能封裝框架那自己試試看說不定也能做到呢,后續就接觸到了ASP.NET MVC,AutoFac,Redis,EntityFrameWork,ElementUI等等涉及到的技術框架,於是開始了FastExecutor編寫。
收獲
FastExecutor是一款適用於小型項目(后台管理類)的快速開發框架,做到了頁面數據分離,但是沒有使用前后端分離,因為感覺Vue的單頁應用形式對於小型項目增加了部署與開發的復雜程度。框架主要包含以下幾個模塊
組織架構:部門管理,人員管理
權限管理:模塊管理,角色管理
數據管理:快速開發平台(在線建表,生成代碼),附件庫的分離
常用功能:字典項,系統參數,系統日志監控
可視化定制功能:首頁元件管理,定時任務可視化配置集成
框架主要技術涉及到ASP.NET MVC,自定義DB操作類,自定義IOC容器,ElementUI,Redis的全局Token認證與基於Redis訂閱發布的自定義消息組件等等,在實際的開發過程中,模仿現有開源框架的一些的功能加入到自己的框架中來,我覺得是最好的學習方式。
代碼地址:https://gitee.com/grassprogramming/FastExecutor
演示地址:http://demo.fastdo.club/FastExecutor admin/1
說明文檔:http://doc.fastdo.club/FastExecutorBook/#/
未來
FastExecutor框架算是對自己一年多學習成果的一個總結,完成了自己一直想做的一些事,但是這並不是終點,后續會開始.NetCore的學習,對框架進行一個技術重構和功能補充,未來希望將工作流集成到框架中,做到可視化配置和流轉,最后送上自己很喜歡的一句話:種一顆樹最好的時間是十年前,其次是現在,祝好!