iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

2
Modern Web

跟著 YDKJS 作者 Kyle Simpson 打造全新 JavaScript Mindset系列 第 31

[day--] YDKJS (infinite) : 沒有結束的一天?

Kyle 的 OLOO

給大家參考拉,我覺得實際開發上不太可能用到。
算是一種運用 JavaScript 的思路。

大概想表示,不用使用 new , class, prototype , __proto__ 一樣可以用到常用的功能,
只要使用 Object.create() 就可以完成 object linking。

Object.create() 實作有用到 new ,但是細節用 API 隱藏就不會有混淆。

不一樣的 design pattern 要用不同的思考方式

基於 OOP 繼承的 pattern

以前的思路 80s 90s

比較現代一點的思路,避免過度巢狀繼承

曾經很紅的 mixin ,但很快被 JavaScript 前端框架使用者 淘汰掉。

基於 delegation 的 pattern ,可能的思考方向

(因為沒有太多實務可以佐證,所以我個人覺得是方向

這邊的連線是用一開始的方法,Object.create() 創造 link

比較複雜的範例:

溝通關係:

這邊調用的方法都是透過 delegation 的 link 去找其他的 object,
不會有繼承(複製 instance),但是調用的 this 卻還是留在 誰呼叫 this 上,
充分運用 JavaScript 特性。

其實我不太理解,這好像大家都做得到


可能要表達透過 link 抽換 mock ,交互測試比較方便吧(?)

總結

這邊是我個人的總結,也是 30 天的總結。

  • 一開始先寫 Kyle 兩天
    我覺得先認識作者,才更能理解內容。

  • 寫 "Types & Grammar" 寫 10 天
    這邊我發現不太對,如果要寫很細,
    基本上大概整個鐵人賽 30天 只能寫這一本。

我有參考其他人的寫法,把一本寫成 2 - 3 天真的猛,
(雖然我覺得省略太多東西,但確實不需要太多知識也可以成文)

但可惜,我文筆不好不能表達整本書 + Kyle 本人的思想
更不可能只丟連結叫大家花錢上課再回來看。
後面就轉 Kyle 提到的觀念 為主了

這邊主要練習如何看 Spec.
很多網路上的文章,其實寫的錯誤很多,
但無奈對方都是大神,還有出書的,
我新人只是聽完 Kyle 的課程,發現有錯,
拿著 ECMAScript Spec. 去糾正別人基本上也不會有好處,
說不定會更受刁難 XDD

只是寫程式的工程師,或多或少看到資料都要抱持懷疑,
連 MDN 很多東西都有錯,其實查 Spec. 才是真理。

  • day 13之後 開始寫 "Scope & Closures"
    這邊的思想主要是對話
    花了好幾天寫對話,然後做投影片表達動畫的形式。

本來想錄影的,但是練習寫文章表達也是這次鐵人賽的目的之一,
只好繞遠路,

聽到對話 => 寫成文字 => 轉成口語 => 轉成動畫

Closures 可以說是現代程式語言最重要的地方,
我新人的經驗認為,沒有之一,就是最重要的。

事實上所有的遞迴,
優化最簡單的方法也是充分運用 Closures 。

可以幫我補充,下一個月才要正式開始精讀 XD

最常聽到的 functional programming 的技巧也是充分運用 Closures。

讀完 資料結構演算法 才來精讀的目標 XD

  • "this & Object Prototypes"
    如果夠熟 Scope & Closures ,
    這邊其實只是一個小子類,所以我沒有花太多篇幅,
    主要是收尾用。

寫到這邊也只是在配合天數了。
接下來有幾個打算

  1. 資料結構演算法 讀 16 小時的課程

這次 30 天選的題目材料是 10 小時,花一個月。

  1. functional programming
    可能花更多時間,說不定要學 Haskell, functional programming 實在太好玩了
  2. 測試
    沒有測試很難確認自己有 code quality
  3. 找工作 = =""
    對,這 30 天我大概每天花 4-6 小時寫鐵人賽,
    主要還是要確認每一個字都是對的,花很多時間查 Spec.
    幸虧開賽前就離職,不然真的沒有時間寫。

感謝大家的不嫌棄。
之後文章再見拉~

https://medium.com/ashes-note


上一篇
[day29] YDKJS (Prototypes) : Prototype (Delegation pattern) 實踐 Inheritance
系列文
跟著 YDKJS 作者 Kyle Simpson 打造全新 JavaScript Mindset31

1 則留言

0
huli
iT邦新手 5 級 ‧ 2019-10-16 17:18:40

恭喜完賽,很棒的系列
我覺得我應該也要找個時間去看他的課程進修一下

Ashe Li iT邦新手 5 級‧ 2019-10-16 18:50:08 檢舉

謝謝大大討論文章的細節
果然有些東西不夠瞭解還是容易誤導人XD

frontendmasters 這個課程平台真的請很多大師
如果之後有寫到 vue
Evan You 還有親自開課,
沒有寫 vue 也可以看他怎麼構思框架的思維。

Advanced Vue.js Features from the Ground Up

如果有時間,蠻推薦上去尋寶的 哈哈

我要留言

立即登入留言