不知不覺,又到了這個躁動不安的季節,躁動的是應屆畢業生畢業以及高考。關於對青春的情愫,通常在這種時刻都會有各種各樣的故事,當然了,我並不是一個會講故事的人,所以通常情況下,就采用這種總結性的方式寫文字做階段性的告別。因為到了身上要擔負很多責任的年齡,已經沒有過多的精力去傷感過去,只是希望未來能成為更加好的自己,至於有多好,其實自己心里是有一個尺子在那里的。
大概幾年前的樣子,寫過這篇文章重構自我,用心經營,這次就從2019和2020的前后對比來總結一下2019和2020吧。
2019
技術層面的話
因為接觸了挺多有能力、有思想的大佬,學到了很多,所以我也真的挺感激他們的。
其中,在公司與前端小伙伴的交流中,前輩健哥一直給我們灌輸
- 1、抽離一層model層作為數據的維護者,包括本地數據和接口數據
- 2、怎么設計組件、怎么設計一個基礎服務類。一般見識的開發都會覺得前端很easy,並沒有“服務”這種東西的存在,然而有個問題就是業務組件是十分難以復用的,其中樣式就很難復用。怎么解決這個問題呢?那便是把基礎類抽離成服務,e.g. 音頻服務、視頻服務、文件(分片)上傳服務等等
- 3、給予人思考的機會,思考的過程非常美妙
到了后來我的思考
- 1、 也跟市面如百度aims這樣的低代碼的輪子有相似的思想,就是
服務service + 配置config = 功能
- 2、抽離組件是為了什么?
- 各司其職
- 復用
- 3、 權衡是否抽離組件。
- 復用的成本是否大於重寫一個新的組件成本
還有就是初步認識后端(項目組的python后端跑去了別的組,所以交給我維護了)。
- 好的地方當然就是自己能接觸到web的整個流程,自己在這個過程中也努力去彌補一些后端的知識。
- 不好的點就是自己本身就是個后端門外漢,加之代碼的業務耦合度實在是太大了,代碼很多邏輯都是復制粘貼出來的,看的很難受,所以也警告自己避免這樣的代碼。
寫到這里的時候,突然想起以前去公司面試的時候的一道筆試題:怎樣寫出一手爛代碼?
我當時的回答是這樣的。
- 不寫注釋
- 不寫文檔
- 定義大量的全局變量
- 不抽離組件
- 不抽離函數
- 不抽象類
2020
技術層面的話
后來,2020年認識了新的小伙伴帆哥,帆哥也是一個特別熱愛技術的大佬,從帆哥那邊學到的地方就是
- 優雅的coding,慢慢地也養成了代碼潔癖
- 修改維護別人代碼是備注日志
- css-in-js 的使用,也是他推薦,后來發現真香
- 不要放過任何一個思考的點
找尋方向
身處這座快節奏的一線城市,面臨這個快節奏的時代,很容易讓人浮躁和眼高手低,也漸漸得迷失了方向。所以每天都應該叩問自己,你的方向在哪里?你想成為怎么樣的人?
之前,有幾個原因吧,導致自己的方向其實很模糊的,
- 1、大前端的方向有數據可視化、在線IDE、前端工程化、跨端技術…, 可能是自己是好奇心太重的那種,什么都想學,導致方向模糊
- 2、都說程序員35歲一個檻,甚至於到了疫情期間30歲,所以等到你碰到這些檻 的時候,你要怎么處理呢?自己心底深處是有點惶恐的,雖然還差好久呢
- 3、你所處的工作環境氛圍會對你自己的成長造成很大的影響
直到后來,有一個需求是用一個前端框架去整合合並兩個分別使用兩個框架的小程序。
中間經歷了很多項目架構上的“折磨”, 但是這是因為這些,使我在前端架構上有了些許的認識:
- 1 、css絕對化路徑帶來的好處,后期修改維護時就不必擔心修改路徑等問題了
- 2、 路由映射帶來維護的便捷
/pages/index => ${AppConfig.index} + AppConfig = { index: '/pages/index'}
所以即便是很麻煩的項目需求,也會給你帶來一定的成長,這個成長可能是很重要的成長——意識形態上的成長。
在團隊里經歷了大大小小的項目,我也很清楚現在web前端在整個團隊應該扮演什么角色,為APP應用提供中后台以及工具鏈。我決定給自己定下的方向是前端架構,要努力的點:
-
編譯原理
- 體現在寫babel-import-plugin、clear-console-plugin, 這些遠遠不夠,嘗試實現一個js引擎。
-
前端工程化
- 通過github actions部署譬如zen-tools、clear-console-plugin等上npm。
-
常用框架底層原理
- 使用node實現zen-koa、zen-koa-compose。
-
怎么去擴展輪子來滿足自己的需求
- 改造使用開源項目wepy-to-uniapp來完成自己的業務——合並wepy和mpvue遺留下來的小程序。
-
寫測試用例使得代碼更加穩固
- TDD測試驅動開發。
最近做完項目之后,頗有感慨。
不足之處分為以下幾點:
- 前瞻力不夠或者說是沒有這個意識,體現在一個需求在做之前,沒有去梳理出它可能會出現的問題,而是單純為了做完需求。eg:發送驗證碼。
- 真的有些浮躁,因為接口太碎的問題,導致自己開發也很消極,甚至有點想脫離問題。沒有想出更好的方法
需要堅持的點:
- 每次都會去寫一層model層,不管后端接口多惡心,對view層都沒啥影響,這一層從mock數據就有了。
- 做完項目之后,把服務抽離出來,以備下次復用。
- 意識到自己的很多問題,更好地認清自己的位置,需要努力的地方。
做個總結
對比2019年,2020年多了很多更為深入的思考。
成長
- 從團隊的角度
- 更加明確自己在團隊中的角色,為APP應用提供中后台以及工具鏈。
- 很多時候的造輪子不再只是好玩,而是從輔助某些業務場景出發。
- 開始采用TDD驅動開發,使得程序更加穩固。
- 個人的角度
- 在自己遇到了迷茫期的時候,找到了未來發力的方向——前端工程化,並為之發力。
不足
- 有時候也會很急躁。
- 計算機基礎部分還是不夠。
展望2021
- 惡補計算機基礎
- 繼續發力前端工程化
- 重視性能優化
- ...