貓橘毛 aka Lanfon
2 min readSep 13, 2017

OOD 金字塔

(短篇廢文)我覺得應該是長這樣:

DRY(dont repeat yourself)跟KISS(keep it simple,stupid)應該算是基本常識了….老實說常常看到那種流水式的 code 就覺得頭超痛。

SOLID 除了 SRP(single responsibility principle) 算蠻好懂的以外,OLID 老實說看了十遍還是不太懂……..

直到最近開始寫 Design Pattern 筆記的時候才有得道的感覺/////

DP 之前都是看 simple code 比較多,每次摸完語言的語法之後就會想要看該語言的 DP 實作(haskell 除外)….然後就各種不懂QQ

現在的想法是, GoF 的 DP 主要是鎖在 Java 的語言背景下,跟 effective Java 一樣,很多解法(結果)的考量點(原因)在其他語言其實是不存在的…..
(也難怪一直學不好囧)

老實說覺得 effective Java 應該算在 SOLID 那層,但又不太一樣… DP 原文書裡面其實完全沒有提到 SOLID ,反而比較常提到的是 encapsulates (封裝)之類的原則。(但仔細的多看幾遍就會發現其實解法是基於 SOLID)

DP 再往上不知道還能有什麼了…(最底層本來想放 code reusable,但覺得不太適合…),現在也在想也許 FP 在當年不流行的原因並不是因為學術味太重,而是太過鬆散了(?)。大量的 function 是可大量重用沒錯,但使用上反而沒有 class 可繼承的簡潔….(就是大量的 impure 操作這樣XDDD)

btw, golang syntax 真的很純化,language-level 的 scheduler 也讓 goroutine 真的超魔性的(根本不用管 CPU-bound or IO-bound function, scheduler 會幫你打點好)….

高吸引力、學起來快,但跟 Python 一樣要摸熟反而是個 gap….然後真心覺得 interface 跟 haskell 的 data type/typeclass 很像QQ

真心希望新手可以把 DRY & KISS 刻在手背上,才不會每次都出現一些讓人頭超痛的 code 。(((問題發言

然後就沒有然後惹。

貓橘毛 aka Lanfon
貓橘毛 aka Lanfon

Written by 貓橘毛 aka Lanfon

知,不知,上;不知,知,病。

No responses yet