總之歷史會再重演一次,當 Java 走到 J2EE 那個複雜到哭的時候,就會有人出 Spring 幫大家砍掉重練,而 Java stack 繁鎖到不行就有人出 Rails 改變風氣。
Activity, Presenter 和 UseCase 太多層很煩啊。
本來 Activity 本身就應該是 presenter 的角色了 (可以測試),但 Android 搞得太麻煩,只好再抽一層。
寫到後來一個功能從 layout -> activity -> presenter -> use case -> model -> DAO 整整要六層以上才寫得完,暈。
這不是 over engineering 什麼才是? 但 Android 已深陷泥沼…
經過這麼多年的催殘,帳號使用三個欄位才是長久之計。
1) 最底層用 uuid;2) 登入的話,我會選 email 了;3) 暱稱的話則無規則,反正最後一定改的亂七八糟。
這就是 angular 廢的地方
angular2 整整經過三年的開發才 GA,中間有無數的 break change,而且這些人還做過 angular1 ,經驗值還不夠嗎?
結果 angular2 之後還是要 deprecated/ break change,每半年一次,那他們這三年在瞎忙什麼?他們不是明擺著:
"我們搞了三年還是搞不定穩定的 API,之後還會有 break 喔!怎麼樣,我們夠廢吧!"
LTS will be provided for one year for Angular 4.0 and 6.0
看到這句真是無言,現在一年也能叫 Long
Term Support 喔?!
你知道 Ubuntu LTS 是支援五年嗎?
angular 已經算 Java 派系衍生,基本上都是力求穩定的 enterprise 在用了,還這樣搞。真是有病...
不知道耶… 大概是承接 Obj-C 的傳統吧,雖然我覺得新語言沒必要加這些…
在程式裡追求自然語句通順好像搞錯什麼了吧?
例一,日本人寫程式
func わたし(は: 名前)
這個 は
莫名的好笑 XD
例二,Grammer zealot 寫 Swift:
let account = createAccount(
withName: "foo",
email: "foo@example.com",
password: "xxxx",
andRememberMe: false)
要英文語句通順嗎?加個 with
Name 和 and
RememberMe 更好呢!
謝資源
Uber發現把Cassandra直接運行在服務器上,與把它運行在用Mesos管理的容器中相比,兩者幾乎沒有什麼性能差別,只有5-10%的損耗。
性能看起來不錯,平均讀延遲13ms,寫延遲25ms,99%的測試數據都很令人滿意
有點矛盾,write latency 在 cassandra 裡大概都是個位數 ms 或更低,高到 25ms 有點離譜。大概真的是 container 的代價吧,不過他們的目標是 scale up,而不是快。也真的做到了。
對於Uber來說做這個決定並不是那麼困難。他們現金流非常充裕,所以能夠請得到頂尖的人才,可以獲得所需要的最好資源,以此來創建、維護以及更新這樣複雜的系統
有錢才能這樣玩…
func move(from start: Point, to end: Point)
老實說我個人十分厭惡這種變數名和參數名各自命名的做法,太囉嗦了,而且參數名幾乎都是無用的介系詞。你讓一個寫 Java 寫 10 年的人都還覺得繁鎖真的很失敗啊。
另外一個例子:
employees.remove(at: x)
這個超煩,我只會想寫 removeAt(x)
而不是 remove(at: x)
。退一步我寧可多打幾個字寫成 remove(index = x)
也比較好
忽然想到這是 java 最後一次加上 string interpolation 的機會了
因為不管你挑什麼符號做為 interpolation 的 prefix, 現有的 java 程式一定都有人用過了, 25年啊
raw string literal 這功能上線的當下, 如果沒有先做完 interpolation, 之後想再加就會 break change...
做不完的話好歹也先留個 keyword 給之後用 (比方說用 $
字號一定要 escape), 就跟 _
底線先保留給未來的 lambda 用一樣