現在也沒什麼產品了吧?都直接做成 cloud service
Hibernate 真是個精美的物件導向設計,尤其是當你了解 OR mapping 是多麼的不匹配後....
可惜資料庫並不是為了物件導向設計而存在的,設計的繁複精巧變成本末倒置
目前看起來也只有在巢狀 loop 中會有影響... 請看 Why do we have to interrupt the thread again? 小節1
所以其實 Thread.currentThread().interrupt();
也不是一定要加的?
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
比較好的作法應該是把 InterruptedException 往外丟,讓程式儘快終止:
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw e;
}
若不能丟出 InterruptedException,至少也要呼叫 Thread.currentThread().interrupt();
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
JUnit 5 想當共主,搞了個所謂的 JUnit Platform!
單就測試框架來說,JUnit 5 中應該是指 JUnit Jupiter 這塊。
JUnit Vintage 底層跑的,應該還是 JUnit 4,只不過多了層 JUnit Platform Engine,然後 JUnit Platform Launcher 透過 Engine 來跑 JUnit 4。
簡單來說,JUnit 4 還是 JUnit 4,只不過 JUnit 5 透過 JUnit Vintage 知道怎麼跑它。
如果有人想,可以實作一個 TestNG 的 [TestEngine1],然後 JUnit Platform Launcher 也可以透過 Engine 來跑 TestNG 了,寫程式時照樣使用 TestNG 的 API。
只是說,如果我用 JUnit 4、TestNG 還是爽爽的,那就繼續用就好了啊?幹嘛中間還多個 JUnit Platform?如果不想使用 JUnit Jupiter 的話,確實就是如此,就架構看來,JUnit Platform 主要是對 IDE、plugin、build tools 有利,不用每個測試框架做一套自己的工具。
當然,真的看完 JUnit Jupiter 而產生了愛的話, JUnit Platform 還是可以當 Migration 過程的平台(從 JUnit 4 到 JUnit Jupiter,或者是從 TestNG 到 JUnit Jupiter?)
目前的理解是這樣…