natsu 積分 0

專案首先一定要對自己有用,否則很難有動力繼續做下去。寫軟體的很大一個動力來自於巧妙的利用程式解決了自己的問題的成就感。如果這個成果又能被其他人使用的話,就是一個更強烈的正向循環。

軟體界的正念 !?

所以所謂「我先把該學的學完就可以開始貢獻了」絕對是一個癡人說夢的想法。最好的方法是開始從簡單的 bug 下手,例如修一些 typo 或是非常簡單的錯誤

如果你對專案的架構了解不夠 (或技術不夠),有可能解了一個 bug,卻又產生其他 bug ...

很多時候活躍的專案因為開發速度太快,很少會有完整的文件

比起冷門的專案,活躍的專案還是會有比較多的資料可參考吧。

natsu 積分 0

6)如果使用了带有null值的引用类型变量,instanceof操作将会返回false

雖然很少會發生但還是要注意一下 ...

7)...... 但是你可能不知道,你可以使用静态方法来使用一个值为null的引用类型变量。因为静态方法使用静态绑定,不会抛出空指针异常。

原來這樣也可以呼叫靜態方法,不過 eclipse 也會顯示 warning message 提醒您不要這麼做!

一般都是直接呼叫靜態方法,不會再透過物件變數。

natsu 積分 0

公布的研究结果也没有深入研究活跃通勤的一些主要顾虑,比如卫生、淋浴或携带换洗衣物等问题。

姑且不論通勤時間,騎自行車或步行上班,流了滿身大汗就進辦公室裡吹冷氣,應該很容易感冒 ...

natsu 積分 0

Apache 基金會的開源項目,很大一部份都是為了商業考量。商業化並不是壞事,反之,更應該鼓勵自由或開放軟體。

商業化有助於推廣開放軟體。

能與商業結合,才能永續經營。

開放軟體 + 商業化,這應該就是所謂的製造雙贏。

natsu 積分 0 編輯於

systemd 的 unit 類型分類說明

.socket 等於是 lazy load 版本的 .service

這與早期的 xinetd 這個 super daemon 有部份的相似喔!

的確~

natsu 積分 0 編輯於

ps. data class 的欄位都是 public 的,所以這個例子有點封裝失敗。不過上面的重點是行為。

資料不能 reuse 倒也罷了,因為一個物件頂多十幾個欄位

可是行為若不能 reuse 就比較麻煩 ...

既然如此,就把整個與核心properties 無關的推導之值全部 interface 化吧,最後,單獨一個 Coordinate 的物件模型變成如此

不過要 Java 8+ 才能在 interface 上實作 method ...

還在用之前版本的可能還是需要用到繼承 ...

natsu 積分 0

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

natsu 積分 0 編輯於

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

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

  • Windows 10 --> 免費更新
  • Windows XP --> 付費支援
natsu 積分 2

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

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

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

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

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

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

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

natsu 積分 0

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

natsu 積分 1

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

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

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

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

natsu 積分 1

不會去記說「看完得到什麼」、「看完記得什麼」、「學到了什麼」

這些無謂的低能問題,

有形的、可辨識的記憶在這個階段不會明確形成,

但是影響是最深遠的,因為那些記不得的東西會自動內化,

想忘也忘不了,這是我認為最理想的學習狀態,

不住相讀書,其功德不可思議。

這篇文章寫得不錯

我有時候在想:看了那麼多 IT 的書籍 / 文章,最後究竟記得什麼?真的會自動內化嗎?

我現在應該在閱讀的第二階段吧 ...

natsu 積分 0

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

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

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

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

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

natsu 積分 0

對JSF來說,JSP被認為是不建議使用(deprecated)的呈現技術。

可是如果要改用 JSF,原本 JSP 的程式可能都要砍掉重練 ...

natsu 積分 0 編輯於

即使事隔多年還是會遇到中文亂碼的問題 ...

其實主要還是 http header content-type 中的 charset 要設正確,client 端與 server 端統一都用 UTF-8 的話就不會有亂碼問題 ...

Spring Framework 的 CharacterEncodingFilter 也不見得一定要用1

natsu 積分 0

倒是最近把《Servlet & JSP 教學手冊》改版並更名為《Servlet & JSP 技術手冊》

剛剛 google 了一下... 看來這本書還沒上市...

把書裏一路用 Servlet/JSP 發展起來的應用程式範例,重構到可以用上 Spring MVC 的最小集合,然後注入元件、逐漸去除 Servlet API、抽出表單物件、改用 Thymeleaf、使用 JdbcTemplate、簡化 Java Mail 等…

Servlet/JSP + 重構 + Spring,這本書未免也太超值!

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

這需要 programmer 有時間去了解這個過程... 以及上面老闆的支持...

natsu 積分 0 編輯於

API 成熟穩定。即使現在已經 spring 4/5 了,還是可以用 2.x 版的方法去改寫,2.x 版到 5.0 中間隔了十年啊!

API 定得好真的蠻重要的,才不用一直改寫...

原來 Spring 已經發展十年了啊... 真的很厲害

natsu 積分 0 編輯於

在工作也暫時用不上的情況下,被我暫時放生的框架之一是Spring,在Spring 2.0 之後就不常接觸。過了多年,現在5.0都出了,雖然大致知道主打的特點是什麼,但並未去玩弄過細節。

我也是在 Spring 2.0 之後就不常接觸了,直到最近的案子有機會用到 Spring 4.x。

Spring 4.x 可以用 @Controller@Service@Respository 等 annotation 真的蠻方便的,不用 extend 或 implement 就可以讓類別擔任各自的角色。

不過就是有些細節不太了解,像是 @Controller 的 method 若使用 ModelAndView 取值會是 null,但用 @ModelAttribute 卻取得到值。

另外,不知 Caterpillar 是否有出 Spring 5.x 技術手冊的打算? XD

natsu 積分 0

如果用 model object 來傳遞 presentation 層、domain 層、data 層之間的資料才會變得簡單一點吧?不過這樣一來又會破壞 OO 的封裝特性 ...

natsu 積分 0

Test method 預設的執行順序沒有一定,不是照字母順序、也不是照在程式碼中出現的順序,所以可能的話應該要讓每個 test method 都能獨立測試,才不會因為執行順序的關係造成測試結果不如預期。

不過如果想讓 test method 依字母順序執行,JUnit 4.11+ 也是有 @FixMethodOrder(MethodSorters.NAME_ASCENDING) 可用。

natsu 積分 0

String interpolation 指的是這個1嗎?

雖然不太喜歡用 %s%d 之類的 (比較喜歡 EL、SLF4J 的作法),但是應該和 String literals 沒有衝突吧?

natsu 積分 0

對啊,討論了很久終於...

如果有這個功能,以後字串的排版就可以更靈活了~

突然想到 Annotation 是否也需要 String Literals? (e.g. @NamedQuery)

natsu 積分 0

我現在也還在用 Xorg,還沒用過 Wayland ...

natsu 積分 0

如果只是要設定文字樣式應該是用 CSS 或 <u> <b> <i>

其他的 tag 都有特別用途,雖然在瀏覽器上顯示的都一樣 ...

  • <del> vs <s>
  • <ins> vs <u>
  • <strong> vs <b>
  • <em> vs <i>