IngramChen 積分 0

第一行要強制斷行這點還不錯耶

Kros 積分 0

這個例子來說...會換成 OOP 是因為大部分人 Functional 的寫法寫不出來吧XD

IngramChen 積分 0

然後現在 Java 越來越不像 Java 惹

IngramChen 積分 0

不知道會不會有 string (小寫) 這種 inline type,因為字串在程式裡用太多了,如果不能鑲在 inline type 裡用途就少很多

IngramChen 積分 0

然後這些看起來奇怪的限制,kotlin 應該會幫我們處理掉,直接享受 inline type 帶來的好處,哈!

IngramChen 積分 0

變天了!

value type 改名 InlineType , InlineType 不能 null,要多一層 IndirectType才行 (後面加個 ?)

IndirectType 白話講就是 Boxed Type 吧

primitive 和 boxed type:

int -> Integer 

到了 inline 和 indirect 就會寫成這樣

inline class Foo

Foo -> Foo?

所以 inline type 可直接當 primitive 來看,像這種寫法 List<Foo> 是不行的,你得用 indirect type (即Boxed),也就是 List<Foo?>

私以為這個設計高竿,只用一個 symbo ? 直接解決原本 value type 模菱兩可的表示 (看不出到底有沒有 boxing),而這個 ? 可以為了之後的 nullable type 舖路

IngramChen 積分 0 編輯於

Boring Tech 的特徵:

  1. 有 LTS 版本,時間長達三年以上
  2. 即使沒有明確的 LTS,舊版本也繼續維護到天荒地老

資訊新人都以為學最新最潮的技術是最棒的投資,卻不知道 Boring Tech 學完一用就是十年...

舉例問一個寫 nodejs 的,給他選 SQL 和 GraphQL,他會選哪個?

IngramChen 積分 0 編輯於

我錯過了

when(val foo = computed())
  else -> foo
seathief 積分 0

Quote:"The new thing won’t be better, you just aren’t aware of all of the ways it will be terrible yet."

IngramChen 積分 0

大部份的程式加上 parallel() 後不會變快,甚至還會變慢...

natsu 積分 0

Internal iteration並沒有如傳統iteration有next()用來指示走訪下一個元素的方法。Internal iteration由你的應用程式決定要被迭代的集合,但該如何走訪集合中的的每一個元素則是由JDK決定;而External iteration則是被迭代的集合及迭代的方式兩者皆由應用程式來決定。

而主要的差別是,External iteration只能以序列方式(serial)迭代集合,而Internal iteration除了可以序列方式,也支援以平行方式(parallel)來迭代集合。

也就是說Sream的forEach可以利用平行計算將迭代的程式拆分為多個子程式來平行處理,最後在將子程式的執行結果組合起來。其意味著Stream的forEach比原本的iteration更彈性且高效

聽起來是個從 iteration 改用 stream 的好處

blackdiz 積分 0

非常謝謝分享,目前還沒有機會在正式的服務上接觸到k8s,所以沒有什麼實戰上的體驗,可以看到實際的經驗分享,真的受益良多,謝謝

kaif 積分 0

個人感覺 k8s 就是試用版xd, 一般公司跟風用 k8s 採到雷以後就只好轉去買 google 的服務了xd

IngramChen 積分 3
  1. 從 ec2 instance 搬到 k8s 之後發現,現在 cluster 一死掉,就是全部服務一起死。不像以前 ec2 個個虛擬主機是獨立的,隨便掛一個都沒差

  2. k8s 適合跑的應用都是 stateless,更廣泛一點說,就是 cloud native app。因為這樣,所以Pod、Job…等等元件要 scale 和重啟都好輕鬆啊!但其實有另一大塊是 stateful app 很難搞定,許多人乾脆 stateful 的通通不放 k8s 裡了。然後更妙的是 k8s cluster 本身就是個 stateful app,而且不符合 cloud native 的定義。這算是呼應第一點,當 cluster 壞掉時,你沒辦法很容易啟動新的 cluster 原地復活。

  3. k8s 太複雜了,而且未來只會更複雜,因為目前不斷有新的標準產生。依照過去十幾年的經驗,過度複雜的系統最後會被簡化過的新架構取代,感覺 k8s 也是個過渡性產品。

  4. 與 k8s 成對的是 microservice,甚至有人還說: 如果沒要要用 microservice,何必用 k8s ? 問題是 microservice 這種分散式泡沫一定很快就會消失,因為前例太多了,像是 EJB、WebService、SOA... 等等

k8s 現在有很多小廠商提供產品和服務,大廠則是不斷推出相關的新產品,然後又有証照可考,未來很多企業都會導入的。從這角度來看似乎很正面,但這個超級像過去的 J2EE,有標準、有証照、有一堆免費和商用 container 可選 (以前 J2EE server 也叫 container,這不是巧合)。你看看 J2EE 現在還剩什麼廠商吧…

當然啦,技術本來就會隨時代迭代,這個十年可能就是 k8s 稱霸,而十年也夠久了,投身這門技術可以讓自己有競爭力,企業也會因為標準化,尋求人材時會簡單許多。要說短期內會出現的缺失,就是因為 k8s 變成顯學、標準化,造成大家不適用 k8s 的系統也會硬套,然後又難學難管理,白白增加成本。

blackdiz 積分 0

現在k8s好像是顯學,但偶爾也會看到一些如 Maybe You Don't Need Kubernetes1 這類的文章,所以有機會想多方聽聽各種經驗,可以請教一下為什麼嗎?

IngramChen 積分 0

上個月研究完 k8s 後, 就把公司的一堆小服務通通丟上去了.

不過我現在是半後悔狀態...