其實 pattern matching 除了可以寫 parser 外還真不曉得要放在哪...
用 pattern matching 就是 type 都消失了
public void foo(Object noTypeAnyMore) {
switch (noTypeAnyMore)
case String ->
case int ->
case Tuple(x, y) ->
case _ ->
}
Object noTypeAnyMore
這裡不是很討厭嗎?都沒有 type 保護可以隨便亂傳,也沒辦法放心 refactor。Java 又沒有 union type…
應該是你說的第二點,非 trivial finalize() 的 instance 會被丟到 finalize queue。 關於trivial finalize()1
Every time you create either a FileInputStream or a FileOutputStream you are creating an object, even if you close it correctly and promptly, it will be put into a special category that only gets cleaned up when the garbage collector does a full GC.
就算自己 close 了也不是真的 close 了?還是得依賴 Full GC 呼叫 finalize 才會真的 close?有所謂的 a special category?
public void close() throws IOException {
synchronized (closeLock) {
if (closed) {
return;
}
closed = true;
}
if (channel != null) {
channel.close();
}
fd.closeAll(new Closeable() {
public void close() throws IOException {
close0();
}
});
}
protected void finalize() throws IOException {
if ((fd != null) && (fd != FileDescriptor.in)) {
/* if fd is shared, the references in FileDescriptor
* will ensure that finalizer is only called when
* safe to do so. All references using the fd have
* become unreachable. We can call close()
*/
close();
}
}
如果他的意思是因為 override 了 finalize,所以會被排入 GC 時得呼叫 finalize,那也很奇怪, finalize 一直都在那啊?還是說他的意思是,finalize 裡寫的程式碼檢查會造成不必要的開銷?
去看看別的地方的 comments,也有人覺得這說法不太對。
有人回應 Is jigsaw good or is it wack1
我沒有追這些 module 系統,所以有什麼爭議不是很清楚。不過這些過去他馬的 module 系統我一個也不想用,而市場也證明他們通通失敗了。jigsaw 會不會成功還不曉得,但最少沒有走錯誤的老路。
- Class-Loader ? application server 已經勢微誰還在寫這種東西?
- OSGi ? 我沒有聽過有人說喜歡這玩意,Spring 當初投入許多資源然後輸光了
- Java EE ? application server 已死了啦。Spring 本來也開始慘淡,不過出了 spring-boot 和 spring-cloud 向 micro service/cloud 看齊才又活過來。JEE 這幾年做了什麼屁出來?
- ext/lib ? 黑人問號.jpg
在 google dart 的勢力比 typescript 大,因為 typescript 也只有 angular 在用而已。而且 dart 是完全在 google 手上,typescript 則是在 MS 手上…
it's very much not! @dart_lang is alive and well with a large team working on it and a large amount of use inside of Google.
從過去一年多來的 OpenSCAD 作品,抽取了一些模組與函式建了個程式庫,如果對程式建模有興趣,使用這程式庫應該可以省不少功夫。
比方說你想盤個什麼,archimedean_spiral 函式可以直接給你必要的點座標與角度,你不用去導螺線的相關公式 …
這個問題做 messager 的大概都會遇到。
如果 id 沒用來排序的話,那就用 type 4 UUID 來解,client/server 都能自由產生 unique id,這樣問題就少很多。
不過很多資料都有時序,而某些資料庫也真的只能用 primary key 來排序 (ex. Cassandra) ,那這時候就很痛苦了。這篇提到的前兩種做法我個人都用過,可以解但真的挺痛苦的。
他最後的方法是全 id 轉換,這… 雖然他們說可行,但我想到要 debug client side 的資料時,全部都要轉成 server id 才能和 server 核對做 debug... 這是另一種層面的痛苦呀