caterpillar 積分 0

雕 Duke 好簡單的!反倒是練習拆件花了不少時間。

caterpillar 積分 0

一直覺得之前寫的龍只是概念驗證,沒想到可以直接用上。

caterpillar 積分 1 編輯於

最近試著結合 OpenSCAD 與 3D 雕塑軟體,這是練習品,順便練模型塗裝。

雕塑時的設想對象其實是 我女兒的人設1

caterpillar 積分 4 編輯於

Java 9 廢棄了 finalize 方法,FileInputStream 等也清空了 finalize 方法的實作,改用 PhantomReference 的機制,JVM 有個執行緒會監控 Reference,在實例不再被參考時,呼叫 close 方法。

至於相容性的部份,若有 FileInputStream 的子類,且自定義了 close 方法,實例化時會有個 AltFinalizer 產生,AltFinalizer 建立時會包裹 FileInputStream,AltFinalizer 的作用就是等著被回收時,呼叫自定義的 finalize 方法(被加了 @SuppressWarnings("deprecation")),其中呼叫了 FileInputStream 的 close 方法。

繞來繞去的 ...

caterpillar 積分 0 編輯於

OpenSCAD 產生龍,再進 SculptGL 進行 3D 雕塑,算是把之前寫過的龍原型做了個應用。

caterpillar 積分 1

土炮 Toy - 模組的實現方式也做了點記錄了,在整個回顧與記錄的過程,也順便看了不少語言實現的資料,土炮的不足是絕對的,然而過程卻是必要的!下次又要實作語言會是什麼時候呢?…XD

caterpillar 積分 1 編輯於

ToyLang 原型想試作的都完成了,包括變數、基本流程、一级函式、lambda expression、類别、繼承、mixin、meta programming 基礎 API 等,以及一些簡單的語法、變數除錯訊息,有興趣可以看看,可以當入門語言實作參考。

改天再來寫點文件,聊 ToyLang 語法以及實現概念。

caterpillar 積分 3 編輯於

差別主要在於有沒有可參考的 self instance(無論是 Python 明確的 self 或 Java 隱含的 this)。

像 Python 或 JavaScript 可以指定 self instance 的語言中,區分方法與函式就沒什麼意義,高興怎麼叫就怎麼叫(Java 也可以透過 Reflection 來做)。

就語言實作層面來說,其實都類似,都是變數查找之類的,看是要明確的 self 或隱含地在環境物件之類的東西中找。

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 的維護更新!

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.

caterpillar 積分 1 編輯於

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

caterpillar 積分 1 編輯於

若可以屏壁 Java EE,就算只是 Servlet API,基本上有很多人會很開心(也許他們並不清楚為什麼開心),雖然 Web Flux 目的並不在為了取代 Servlet(這野心也太小)。

或許多數人也舉不出 JSP/JSF 的問題在哪,大概只是純 Server Page 越來越不重要的投射居多。

caterpillar 積分 1

因為還沒完稿,大概要到五月才會上市。

caterpillar 積分 0 編輯於

作者可以做到 篩選 這件事,是因為 Spring 有幾項優點 …

是啊!文件裏有寫…

框架應該要有個最小集合,而這個最小集合,最好可以基於開發者既有的技術背景,在略為重構(原型)應用程式,以使用此最小集合後,就能使應用程式運行起來,之後隨著對框架認識的越多,在判定框架中的特定功能是否適用,之後,再逐步重構應用程式能使用該功能。

caterpillar 積分 2 編輯於

目前沒有,倒是最近把《Servlet & JSP 教學手冊》改版並更名為《Servlet & JSP 技術手冊》,最後用上了 Spring 5,基本上就是我這篇文章的過程實現,把書裏一路用 Servlet/JSP 發展起來的應用程式範例,重構到可以用上 Spring MVC 的最小集合,然後注入元件、逐漸去除 Servlet API、抽出表單物件、改用 Thymeleaf、使用 JdbcTemplate、簡化 Java Mail 等…

能夠漸進式移植的話,目標比較明確,這樣瞭解 Spring 比較有意義,我個人是覺得,這些功能拆開來說明的話會很空虛。

姑且當成 Spring 技術手冊借殼還魂吧!…XD