haocheng 積分 0

是蠻好的,不過有想加什麼 postfix template 嗎? XD

koji 積分 0

postfix completion 可以擴充真是太好了XD...

natsu 積分 0

如果只是想更新某幾個欄位就好,用 HQL 是推薦的作法

haocheng 積分 0

找了一下跟這個主題相關的資訊,看到這篇 No Free Java LTS Version?1 ,如果上面的資訊沒錯,看來以後會分成不想付錢的就用 OpenJDK,願意付費買 Support 的就用 Oracle JDK?

natsu 積分 0 編輯於

這樣企業用戶會比較願意用新版的 Java 嗎?

話說回來,之前微軟好像也是用這招 ...

  • Windows 10 --> 免費更新
  • Windows XP --> 付費支援
caterpillar 積分 3 編輯於

Simon Ritter 留言中有重要資訊…XD

The points you make on the LTS releases are all correct. However, you're missing one very big point: the updates will only be available for customers with a commercial support contract from Oracle. Public updates for JDK 11, like those of all other release from JDK 9 onwards will stop after six months when the next version is released. This will have a big impact on deployments of Java where access to security and bug fixes is an issue.

只有簽合約的才拿得到 LTS 的維護更新!

natsu 積分 2

事先定義的抽象化,終究也是照顧著過去的需求,而不是現在的全部,也因此,任何既有的程式庫或框架一定會有不足之處,最後必然是不斷地加入新功能,終究使得框架臃腫,或者是出現另一個框架,來照顧不滿的另一群人。

抽象化也有它的不足之處 ...

為了防止框架臃腫,所以模組化是必要的吧

如果搬出可維護性的大旗,提出「複製、貼上程式碼的方式,將來需要修改時,會需要改很多地方」的類似理由,複製、貼上的另一組好夥伴就會上場救援,像是「你是不會搜尋、取代嗎?」

有可能搜尋到了 100 筆資料,但其中可能只有 50 筆左右是需要改的,這時候就不是那麼容易了...

又或者以為只要改一個地方就好了,根本沒有想到要去搜尋其他地方是否還有類似的程式需要改 ...

再來就是:你有時間把你改過的程式全部重測過嗎?

natsu 積分 0

原來除了 module-info.java 之外,還有 package-info.java ...

caterpillar 積分 0 編輯於

不少人看似認為 Flux 是 Servlet Stack 的取代物,然而根本上是兩套不同的模型。

However, working with the reactive stream involves a bit of learning curve and ensuring that no developer ends up calling block(). Another deal breaker might be the lack of reactive database drivers. JDBC is inherently blocking and very few other databases like MongoDB, Cassandra support reactive drivers officially at this point.

koji 積分 0

看起來沒改設定應該是 netty ,所以是 netty + reactive vs tomcat-core + request per thread

koji 積分 0

省下的 thread 就丟給 db access thread pool(誤

kaif 積分 2

一個前面non-blocking很好很強大,有事給後面DBA扛的概念qq

natsu 積分 1

提出了WebAssembly概念,顧名思義,就是Web的Assembly(組合語言)形式,要讓網頁應用也能擁有二進位Bytecode的執行格式

轉成 byte code 什麼的不就是 Java 的強項嗎!

現在也有開源專案和工具,能快速將大型商用軟體常用的Java語言,或是微軟的.NET語言的程式碼,都能轉換成WebAssembly格式

之前看到時還沒有支援 Java,現在終於有了,雖然還是 beta 版 ...

j0n 積分 1

其實像製程管理或是機台管理都蠻適合用 state machine 實作,目前什麼狀態,經過了哪個 action 變成了另一個狀態

j0n 積分 0

我還在某防毒軟體公司的時候,從下到上包括老闆都是知道 serverless 是未來的趨勢,但是該怎麼賣 security 進去又是另外一回事了

haocheng 積分 0

上一次寫很多 state machine 程式好像是在 Gamelet 寫遊戲的時候,好懷念 XD

natsu 積分 0

有時是心智模型還是掛在 Servlet Container,經驗上難以脫離

對啊... 開發 Web Application 有時還是會以 Servlet 的方式在做思考 ...

Jersey / Spring 這類抽象層都想或有對應的方案,不過有時麻煩,有時藏在某些地方找不到

多了一層雖然方便,但有時也會因為搞不清楚底層是如何運作的,導致程式執行的結果不如預期 ...

這時候又會懷念 JSP / Servlet 的單純 ...

IngramChen 積分 0 編輯於

state machine 只是個 pattern,實作方式有很多種。像這篇文章寫的方式 (純 OOP) 會很難 trace 嗎?

kaif 的按鈕用的是 event-based 的 state machine,這是特化過的,專門用在即時 event 的服務 (遊戲 or 聊天室)。而 event based 的架構本身就不好 trace,跟 state machine 其實沒什麼關係。

kaif 按鈕其實用不到 event-based 的設計的,只是我寫慣了才直接用。

spring 其實也有出 state machine1 ,可以看看他們的設計

Kros 積分 0

可是我覺得用 state machine 寫,邏輯很分散耶,不好 trace code,還是我寫得不好?

IngramChen 積分 6

會用 state machine 解問題的人真的很少,大概只有遊戲圈的人才會用。而且需要一段時間練習。

一個簡單的判斷法,如果你的 class 出現了三個以上的 boolean flag,然後有一些會衝突相依,那麼差不多可以試試用 state machine 來 refactor 了。

題外話,你知道 kaif web 的 up vote/down vote1 的三角型按鈕是用 state machine 做的嗎?

一對小小的三角型包含了六種 state :

  • WaitVoterState
  • WaitSignUpState
  • EmptyVoteState
  • UpVotedState
  • DownVotedState
  • VotingState

為什麼只是個 up/down vote 要搞到 state machine?沒辦法,一開始也沒用 state machine 解的,不過後來跑出來三、四個 boolean flag 後我就寫到抓狂了,一氣之下就 refactor 成這樣了

IngramChen 積分 0

這一篇還幫大家復習了 compiler/interpreter ,不錯讀。

Dart/Flutter 會變成 AOT 一部份的原因是 iOS 造成的,因為 iOS 不能跑 js 以外的 JIT 語言。(最早的 Flutter 只有 interpreter)

caterpillar 積分 1 編輯於

不是指純寫 Servlet,而是指 Servlet API,掛一層 Jersey/Spring,還是看到不少人搞不出 HttpSession、ServletContext 等的一些對應功能,然後縮回去直接搞 HttpSession、ServletContext … 基本上 Jersey/Spring 這類抽象層都想或有對應的方案,不過有時麻煩,有時藏在某些地方找不到,有時是心智模型還是掛在 Servlet Container,經驗上難以脫離(新生代若完全沒有或不用接觸 Servlet 容器,大概會比較沒這困擾) …

IngramChen 積分 0

很少人直接寫 servlet 吧? 大部份上面都會掛一層 (Jersey/spring...etc)

那麼 servlet 這個 abstraction 就變成累贅了,去掉後少一層自然變得比較輕,也不需要部署肥肥的 servlet container 了。

(不過 benchmark 的結果都是純 servlet 變態的快… 神奇)