對你來說,這是篇閱讀指南,關於《React設計模式與最佳實踐》這本書。
對我來說,這是我的讀書筆記。
我為什麼寫這篇文章?
圖靈社群有一個「電子書閱讀獎勵計劃」:
買書30日之內,看完,並在公共平臺發表心得、評價、思索、疑惑等等。
獎勵等值電子書代金劵。
所以我是來拿獎勵的。
接下來,我會:
- 客觀地描述這本書講了什麼?以什麼方式講的?
- 主觀地談談我從《React設計模式與最佳實踐》中的收穫
通過我的表達,如果你覺得這本書能給你帶來提升,你也可以買一本看看。
你為什麼要看這本書?
入門React框架並不難,簡單地閱讀入門文件,然後跟著官方的tutorial專案走一遍,就基本可以上手使用了。
但是,
上手 !== 會。
你還不能靈活的使用
我是開始實習的時候接觸的react,用兩天時間簡單學了React(做了官方的tutorial專案),當然還不能幹活,又學了三天meteor,redux全家桶,styled-components,ant-design,第二個星期進了專案。
這時候能幹活了嗎?能,分給我一個模組。因為是一個管理系統,所以有些地方不明白可以參考其他模組的程式碼,照貓畫虎,跌跌撞撞,還真把一個模組的頁面給寫完了。
但是也僅限於能寫出來。
問問你自己:
- 程式碼為什麼這麼寫?
- 元件為什麼這麼用?
- 沒有參照你自己能寫出來嘛?
- React框架帶來了什麼提升?
你說不清楚的。
你還不能用的優雅
如果你覺得自己已經能夠靈活地使用,那麼:
- 你知道背後的原理嗎?
- 你敢保證自己的程式碼質量嗎?
- 你知道怎麼優化你的應用嗎?
- 你覺得你的專案的開發效率和可靠性夠高嗎?
如果這些問題你都沒有頭緒,或者不能給自己一個肯定的答案,那麼這就是你看這本書的理由。
這本書講了什麼?
書名講的很清楚,設計模式與最佳實踐。
這本書可以分成三部分:
- 提升程式碼質量(程式碼風格,可複用性高的元件,合理的使用方式)
- React生態中的一些指向性建議(如何生成文件,React如何寫樣式,React應用的服務端渲染。)
- 一個完善的開發模式(程式碼風格->高可複用的元件->各種功能(表單,樣式)的解決方案->提升效能->效能監控->測試)
可以說,涉及到了React開發與應用的各個方面。
怎麼講的?
本書講述的風格是:
先通過一個不完美的例子,分析它,找出問題。
然後講述背後的原理是如何解決這個問題的。
然後用一種優雅的方式,解決這個問題。
但是並沒有極其深入某項技術。比如講測試,只講瞭如何寫測試用例,給了幾個例子,讓你認識到React測試怎麼寫,需要注意哪些點,然後講了一些比較好的庫(jest)的基本用法。
但是我覺得講的全面但不深入對於這本書來說是有必要的,因為本書的目的是:
讓你知道React的設計模式應該有哪些東西,這些東西能夠解決什麼問題,以及如何解決的。
讀完本書之後,需要你根據本書的指導,再進一步的深入各個環節的細節。
我的收穫
我知道了什麼是高質量的React元件:
- 邏輯抽象合理(一個元件應該只負責一個抽象意義上的功能)
- 介面設計清晰(準確的Proptypes)
- 清晰的文件(通過react-docgen和storybook自動生成)
- 合理的資料流(資料來源清晰,狀態儲存在合理的位置)
- 優化過的效能(用純元件、不可突變、shouldComponentUpdate、合理的使用state,避免不必要的渲染)
- 完善的自動化測試用例
- 高階元件(通過對邏輯的封裝提升通用性)
我知道了如何通過合理的設計模式提高專案的開發效率(質量和速度的提升):
-
優雅的程式碼風格
-
清晰的文件
-
高可複用的元件
-
效能監控與效能優化
-
完善的測試
-
服務端渲染的作用以及解決思路
當然,我所說的知道僅僅是知道,目前還沒有深入的瞭解和足夠的實踐。
但這就是我讀完本書後,需要繼續學習的地方。