本帖最後由 pl8888 於 2016-3-21 13:53 編輯
三 的確!如你所言,呢個亦係 Imperative 最難 Main 嘅地方。
我最慘痛嘅經歷,我見一個 public SomeThing createSth( User u , XXX xxx) 。好啦,入面水蛇春咁長咁 Build 個 Something 出黎,見你有 Return, 嘩點知,佢唔小心 Call 咗 User.yyyy() 去就佢個 Builder , 成個 User 就咁被人郁咗,仲要係某啲 User 先出現呢個問題,要縮窄個範圍去到呢個 Function 先搵到呢啲 Bug
你可以話只不過係人為因素至有呢個問題,但我亦都可以話用Scala 就完全無呢個題
依個係寫 createSth (或者用 createSth) 既 coder 既問題, 多個 language 既問題.
如果寫 createSth 既 coder 冇享 contract 指明會改 User state, 但實際係改左, 個錯係享寫 createSth 既 coder 到. 否則, 如果有指明會改 User state, 而用 createSth 個 coder assume 冇, 就唔關寫那個事.
依個係 contract 既作用. 如果你用 open source library 就有得睇 code 姐, close source 點會有 code 你睇, 純粹靠 documentation 辦事.
你話 Scala 完全無呢個題, 願聞其詳, 我都想學下野.  |