scala meetup 心得
第三屆 Scala Taipei 聚會
還是不懂 dependency injection 的用意,感覺就只是把一些實作抽出來丟給
其他物件而已。參加之前就在 twitter 上問了這句,@lovecankill 給了一個有趣的
文章: Execution in the Kingdom of Nouns
雖然似乎沒什麼直接關係,但前面還滿好笑的 XD
所以 dependency injection 的東西都聽不太懂,也不是很在意。但是開始看到
reader monad 後,就感興趣起來了。看起來還真有點像那麼回事。所以覺得
說不定可以說是 ReaderT A IO B 吧?
不過還是一樣彆扭。所以我的結論還是不要把 haskell 那套搬到 scala 上用,
會動是會動,但有可能不是那麼正確的移植,且用起來又不是很方便,那又是
為了什麼?爽?
最大的收穫或許是發現有人好像滿熟 haskell 的,transformer 和 lift 都聽到了 XD
雖然有一個我不是很確定的是要不要 lift 又 lift... 我之前是沒有。剛剛試了一下,
好像加不加都可以。或許一些內建的有一些額外的 function 會幫忙轉換吧..?
可能要看 mtl 的 source 才知道了。
可惜沒機會稍微聊一下。
--
有些話當場沒講不好意思,因我不太擅長即時交談,尤其是在一堆人面前 XD
被問覺得怎麼樣時,正在想事情,一時反應不太過來,話題就跑掉了..。
後來想說時,又覺得找不太到機會。仔細想想,這大概是為什麼我常常會說
「你剛剛說...」和有時候會鞭屍的原因吧 O_o
*
edited 2012-04-24 03:48 感謝大貓對 dependency injection 的解釋,
有種豁然開朗的感覺。所以我後來的理解如下:
非常清楚,感謝 <(_ _)>
我一直不能理解的部分就是,這不是本來就是再自然也不過的事情了嗎?
就算是 static typing 不也一樣?strategy/state pattern 不也是在做類似的事?
只不過這兩個 pattern 是要做不同的事,而 adaptor 那邊是要做一樣的事,
只是用不同手段達成。對我來說,這樣其實就是差不多的意思了,沒什麼必要特別區分
讓我比較能理解的,你所提到的關鍵是:
> Dependency Injection就是找一個時機做這種事
> 通常在一個獨立的設定檔 (或獨立的一段configuration code)中
> 把某個環境需要的所有dependency都注入進去
所以或許可以說,這些是在討論要在哪裡把這些寫明。那我會覺得反正就是寫在
application code 就是了,其實 ADT 也是在做這件事啊..? 當然,如果是寫在
config, 那又是另一回事了。
所以今天有人提到 type safety, 也是讓我理解的一個關鍵,我覺得他說得很對.....。
如果是寫在 config 裡,那當然沒有 type safety 可言啊 XDXD 那也自然會有
runtime exception 了.... 我還在覺得莫名其妙,為啥會沒有 type safety.......
原來根本就是寫在 config 裡啊 -_-b
於是我最後的結論是...... 我還是離這些遠一點好了 XDD...
p.s. 我記得也有人在 ruby 裡提 dependency injection, 我也一直搞不懂那在說啥
(i.e. what's the point?? what's so special??)
0 retries:
Post a Comment
Note: Only a member of this blog may post a comment.