aszx87410 / mentorship-program

It's the repo for latest updates about mentorship program
17 stars 2 forks source link

[Week34] ShawnL #251

Open shawnlin0201 opened 4 years ago

shawnlin0201 commented 4 years ago

今天討論了什麼?結論是什麼?

延續上次重構與 clean code 相關議題,而在這兩個議題中不論閱讀或是實作上都會遇到許多疑問,而那些疑問是可以有一定深度的下去追更細部的內容,但究竟要先把當前的內容理解完還是繼續深追下去呢?

結論:

最後決定採用 LIFO(先進後出)來作為學習這些知識的方式。

意思即為:要能理解 OOJS => 理解 class、this、prototype 等等先備知識 => 其中 prototype 又有如 prototype chain 的概念 => ... 繼續深追其內容,直到對其相關的關鍵字有一定程度了解;而這種遍歷(traversal)方式,雖然一定程度的拉長了某個節點的學習時間,但能夠使其觀念更加地完備。

而 Huli 也表示認同這種 bottom-up 由下往上 build 知識的方式。

最新的進度是什麼?

繼續看看 clean code 的後續章節,其中內容提到蠻多物件、類別的概念,雖然公司有部分專案使用類似的 pattern 進行開發,但沒自己從頭撰寫過的經驗,因此很難體會 clean code 中有關物件、類別的章節與內容。

我嘗試用 OOJS 相關的關鍵字,得到幾個關鍵字 newthisprototypeclass 等等內容,但感覺還是很難體會它的概念。 參考網址:https://developer.mozilla.org/zh-TW/docs/Web/JavaScript/Introduction_to_Object-Oriented_JavaScript

而續上次重構議題,看完了影片後由於有稍微看過重構那本書,因此還蠻能體會裡面重構的概念與理由;後來也想想,我是不是可以將嘗試這個程式重構成物件導向設計的寫法,看看寫完後是否有什麼啟發。 Sample

寫完後我自己推測使用物件導向設計的概念是:

目前大概是想到這些,不過還沒實作過繼承等等內容所以沒能有更深層的體會,但手刻後還是覺得這種設計還蠻有趣的,讓我想到上次提到我自己胡亂模仿 Vue.js 的 Lighten.js,之後有空會陸陸續續把它完善一點(學習開個 repo 的 roadmap 與 project 規劃;參考 Vue Github repo)。

下次報告前要完成哪些事項?

先將基本的 this 的四種機制知識鞏固,接著將 prototype 相關內容重新 survey 一次,並整理成文章。