完整的程式碼: github1
kaif.io 主要開發平台是 Java + SpringBoot + Dart 組成的。經過三個月的開發,累積的程式量也是有點多了,不曉得爬起程式碼來會如何?
雖然這個網站用了傳統的 Spring+Java+PostgreSQL 的組合,不過在網站的登入、驗證這領域,用了異於常態的方式實作 -- 即不使用 cookie,完全靠放在 http header 的 access token 來處理。會嘗試這樣做的目標是希望網站完全的 stateless 不依賴 session/cookie。目前看來實作上雖然麻煩了一點,但還是可以做的到的。有興趣的人可以爬爬相關部份的程式碼 (一大部份是用 Dart 寫的)
網頁動態的部份,完全交給 Dart 來實作了。Dart 是個好語言,寫起來很順很快,不過平台上比較薄弱一點。kaif.io 使用 Dart 時,完全放棄使用 Dart 平台相關的 framework/library,直接用 dart 語言硬刻。寫完這麼一輪後,其實只要架構組織的夠好,即使只用純語言,開發上也是很快,結構也完整。而且,因為完全的掌握程式碼,不會有和 framework 拉据的問題。
PostgreSQL 方面,kaif.io 只用 spring 的 jdbc template,而不是用 ORM framework。ORM 我們寫了好幾年了,知道有痛苦之處,所以現在反而都傾向捨棄它們,直接手刻 SQL 比較能達到我們想要的成果。kaif.io 這次寫了很多 WITH
statement,這番實作還挺有趣的,而這也是用 ORM 做不到的事。
開發工具就是 Vagrant + Intellij IDEA。由 Ansible provision 一台 Vagrant 做為開發的資料庫,這現在已經是我們開發時必備的工具了。Intellij IDEA 自然是 Java 開發的好幫手,不用多說。Dart 的開發現在也都是掛 plugin 在 IDEA 裡開發,很順。只是要 setup 整個環境步驟多了一點。github 裡有一些 setup的說明,如果有問題的話可以發問。
暫時先這樣~