回顧 2018 年 | 掘金技術徵文

前言

時光飛逝,我已經從大學畢業,成爲前端工程師。雖然以前也寫過一篇回顧文章,但透過這一次掘金給予個人回顧機會,我從新找回了本身的初心,以及本身的方向。前端

前端平常

在平常開發中,個人工做是業務方向,以知足內部用戶的需求爲主,偶爾纔會有寫一些面向外部用戶的網站。於是保持項目的穩定性和維護性是個人首要工做,是的,不須要很炫酷的技術,但須要很穩定的技術。webpack

發現 Antd 彩蛋問題

在開發本身的博客系統的時候,一直在想要不要把 Bootstrap 改成 Ant-design。git

直到 2018年 9月的時候,我發現一個公共組件加入了一個聖誕彩蛋,也就是在 12月 25日的時候爆炸的那個問題。程序員

說實話,當時我並無那麼注意到這個問題,只是簡單的看了一下源碼,而後發現它直接推送到 master 分支上面,總感受哪裏怪怪的。github

因此我就在 V2EX 上面寫一個帖子,而後就沒管它了,結果就是 Boom。web

帖子連接:www.v2ex.com/t/490917前端工程師

學會調試源碼

雖然我很但願使用 ReactJS 做爲個人主要技術,可是舊項目一直在用 regularJS ,以及一個組件庫 nek-ui 。於是我須要學會看這些文檔,以及文檔不必定有的暴露方法。。。框架

當我看見每一個組件都有一大堆傳參,我就不斷地想,到底這個組件是怎樣用的?是否是真的可以生效? 於是我就開始慢慢地學習瞭如何使用 SourceGraph 看源碼。async

上面截圖爲 Sourcegraph 的一段 nek-ui 開源代碼。工具

看是不足夠的,因此我就利用 Google Chrome DevTools 調試源碼。

在調試的過程,我就發現舊時代的 JavaScript 私有方法是多麼的公開透明的。。。能夠利用組件暴露的方法,繼承並改寫它來達到本身想要的效果。

參與技術大會

還記得這一年我參加了兩次 Node.js Party,以及谷歌開發者大會。

是的,我對於參加這些技術大會並不感到乏味。就算是要坐兩個小時公交過去西溪溼地,我也是願意參加 Node.js 派對的。

此次開發者大會裏面,我就認識了一些來自谷歌,掘金的優秀工程師,也是讓我有所收穫。

若是你有自動化測試應用的需求,那麼你能夠嘗試使用 Puppeteer。

若是你有測試網站性能的需求,那麼你就可使用 Lighthouse,它會生成性能報告,並提供能夠改進的措施。

博客介紹文章:calpa.me/2018/09/24/…

完成博客系統腳手架

在編寫博客文章的時候,我常常身兼三職,編寫博客系統的前端程序員,專心寫文章的編輯,以及保證網站服務質量的網站維護者。

  1. 前端工程師:我但願可使用最新最快的技術,同時保證服務是穩定的,文章能夠正常顯示。
  2. 編輯:我在編寫文章的時候,我但願能夠看到預覽的效果。
  3. 網站維護者:網站有問題的時候,能夠快速回退到正常的版本,避免線上事故繼續發生。 不只如此,我也但願能夠給校對者,對於每個版本分別進行校對。

爲了更好地實現這些目標,我選擇使用 GatsbyJS + Netlify + Contentful,來達到這件事情。

博客介紹文章:calpa.me/2018/12/24/…

如今這個腳手架取得超過 150個 Star 數,能夠說是有點超出個人預期(笑

Github 倉庫地址:github.com/calpa/gatsb…

雖然是這樣,可是仍是有很多的問題。

下一步就是把 Contentful 的數據存取服務改成 Netlify CMS,充分使用 Github 剛剛提供的免費私有倉庫服務。

也是想下降用戶使用這個框架的成本吧。

工具類總結

Vue

在使用 computed 的時候,我發現原來它是可使用 getter 和 setter 而不是單純的 getter 方法。

瞭解到 Vue 最基本的實現原理:Object.defineProperty,以及訂閱發佈模式。

Node.js

因爲公司業務緣由,咱們使用 egg.js 來攔截,轉發,改寫請求,同時須要輸出報錯日誌。

Babel

因爲 async/await 的方便性,我就直接把它用到項目裏面,但是會有 regeneratorRuntime is not defined 的問題。我找到這一段代碼是和 Babel 轉譯相關,因此就開始瞭解 Babel 是如何轉譯的旅程,例如 async/await,class,extend。

calpa.me/2018/07/29/…

Webpack

因爲要從零開始構建前端項目,因此須要對 webpack 進行一些配置。

我瞭解到 Webpack 原來由 loader 和 plugin 組成,Webpack 多環境配置的方法,以及如何輸出能讓程序員看命令行時感到比較友好的一些插件。

2019 年計劃

很感謝這一年幫助我從萌新階段成長的一衆程序員,也謝謝大家來到個人博客閱讀文章,給予我繼續寫做的源動力。我會繼續編寫 GatsbyJS 的文章,以及探索移動端動效的方案。

在新的一年,我但願能夠不單是解決業務問題,更加是但願以技術的手段,去解決一些重複性的工做。一方面是但願瞭解並落地:如何使用 GraphQL 節省 HTTP 接口,只獲取只須要數據的查詢方法。一方面是但願能夠製做一些可配置的後臺模板,直接拖拉就能夠獲取數據,無需前端手寫獲取字段。。。

後記

還記得參加谷歌開發者大會的時候,我是專門請假過去上海的,就算沒有兩天工資,但這些都是值得的。

想到這裏,我不由想我究竟是要走技術路線仍是走業務路線。

不過,這個問題隨着我寫這篇文章就開始有了定案。

來年還望各位多多指教。

相關文章
相關標籤/搜索