今天是鐵人賽的最後一天了,我們花點時間來看看這三十天我們都介紹了些什麼。
首先,我們介紹了一下 Kotlin Exposed 是怎樣的一個框架(Day 1)
然後,我們建立了專案(Day 2),並安裝好了框架(Day 3),準備後續的開發。
我們先利用 H2 資料庫,和資料庫進行了串接(Day 4)。然後介紹了第一種和資料庫互動的方式:DSL(Domain Specific Language),並介紹了DSL 的使用方式(Day 5、Day 6)。
接著,我們介紹了另一種和資料庫互動的方式:DAO(Data Access Object),並介紹了透過 DAO 和資料庫互動的方式(Day 7、Day 8),並且介紹了怎麼利用 DAO 的關聯功能,來建立資料和資料之間的關係(Day 9、Day 10、Day 11)
為了要解決 DAO 容易發生的 N+1 問題,我們提到怎麼使用 eager loading(Day 12)
為了提升效率,我們利用了 Kotlin 內建 coroutine 的特性,提到了suspendedTransactionAsync
(Day 13)
為了讓連線從測試用的 H2 轉到正式使用的 MySQL,我們提到了怎麼更換連線的資料庫(Day 14)
接著,為了讓我們的專案能更加穩定,我們加上了自動測試(Day 15、Day 16、Day 17)。
並且,為了讓測試更好看懂,我們以函數編程的概念來重構測試(Day 18、Day 19、Day 20)。
我們提到了單元測試和整合測試(Day 21),提到了測試用到的五種 test double(Day 22、Day 23 ),提到了和時間相關的測試怎麼處理(Day 24),還有什麼是依賴反轉(Day 25)
我們提到了 DAO 和 DSL 在使用上的差異,以及什麼場景下適合使用什麼方式(Day 26)
最後我們提到了幾個和資料庫相關的需求,雖然沒有在 Exposed 框架裡面實作,但是我們可以透過其他套件或框架來達成,比方說 connection pool(HikariCP),migration(Flyway),API Server( Ktor)。
希望這三十天的旅程讓各位有所收穫!我們明年見!