koji 積分 0

看了才知道 micro-fusion,來看看..

IngramChen 積分 0

原來 RxJava2 有 micro-fusion,不錯不錯

Reactor 根本來亂的… Spring 沒有提供更多東西,多包一層幹嘛

IngramChen 積分 0 編輯於

其實 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…

koji 積分 1

印象還有 cubie server 那時我們追 memory leak 時看到一堆物件在 finalize queue。

IngramChen 積分 1

很久很久以前好像踩過這個雷,在小物件上加了 finalize 然後就 OOM 了

koji 積分 0

full gc 可能不太精確,不一定是 full gc phase。

caterpillar 積分 0

因此跟 close 沒有直接關係,而是因為定義了 finalize 會使得該物件在 Full GC 時才真的被處理掉。

koji 積分 2 編輯於

應該是你說的第二點,非 trivial finalize() 的 instance 會被丟到 finalize queue。 關於trivial finalize()1

caterpillar 積分 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,也有人覺得這說法不太對。

FileInputStream / FileOutputStream Considered Harmful1

IngramChen 積分 1 編輯於

有人回應 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
koji 積分 0

很怒,但還沒看熟 jigsaw 所以有些點沒看很懂 0rz

IngramChen 積分 2 編輯於

在 google dart 的勢力比 typescript 大,因為 typescript 也只有 angular 在用而已。而且 dart 是完全在 google 手上,typescript 則是在 MS 手上…

koji 積分 1 編輯於
馬上看到有人問跟1

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.

koji 積分 1

Some platforms may only need manual memory management, and get an even smaller Kotlin/Native runtime in return.

所以可能會不同狀況下寫出不同程式碼?....hmm...

IngramChen 積分 1

再重刻一個新的 Garbage Collector...

caterpillar 積分 0 編輯於

從過去一年多來的 OpenSCAD 作品,抽取了一些模組與函式建了個程式庫,如果對程式建模有興趣,使用這程式庫應該可以省不少功夫。

比方說你想盤個什麼,archimedean_spiral 函式可以直接給你必要的點座標與角度,你不用去導螺線的相關公式 …

archimedean_spiral1

IngramChen 積分 1

會 node.js 就是 full stack web developer 了

IngramChen 積分 0

gradle composite build 到是沒用過,好像不錯

IngramChen 積分 0

2017.1 才用到 Android studio 2.2 ,可見 IDEA 完全不能用來開發 android。

haocheng 積分 0

JDK 7 要停止維護了,還沒升級到 JDK 8 動作要快了...

IngramChen 積分 2

這個問題做 messager 的大概都會遇到。

如果 id 沒用來排序的話,那就用 type 4 UUID 來解,client/server 都能自由產生 unique id,這樣問題就少很多。

不過很多資料都有時序,而某些資料庫也真的只能用 primary key 來排序 (ex. Cassandra) ,那這時候就很痛苦了。這篇提到的前兩種做法我個人都用過,可以解但真的挺痛苦的。

他最後的方法是全 id 轉換,這… 雖然他們說可行,但我想到要 debug client side 的資料時,全部都要轉成 server id 才能和 server 核對做 debug... 這是另一種層面的痛苦呀