接下來我們建立後續章節要使用的練習專案,我預想了一個「購物車及運費計算機」做為情境,整個流程會示範如何用 IntelliJ IDEA 寫程式並用 TeamCit...
透過 DAO 方式存取資料,除了用傳統的 join 方式處理資料表之間的關聯外,也可以直接從物件之間的關聯來思考。 下面我們來介紹 DAO 物件之間的關聯如何設...
在開發 JVM 專案時,有時會遇到這些實務問題: 專案使用的 Gradle 版本跟自己本機安裝的不同 參與專案開發的每位成員使用的 Gradle 版本都不同...
處理 Annotation 的時機 一般來說,annotation 可以在 compile time 或是 runtime 的時候做處理。 Compile t...
屯馬開通真的很興奮 早陣子(2021 年 6 月 27 日)港鐵屯馬綫全綫通車,當日有電視台訪問了一名鐵路迷,他受訪時調寄家傳戶曉的英國民謠《綠䄂子》即興唱了一...
還記得launch 的回傳值是 Job 嗎?我們可以使用 job 的 cancel() 來取消該 Coroutine。不知道你有沒有想過 Job 是什麼東西呢?...
從宿舍走到餐廳的路上可以看到颱風肆掠的痕跡,詩憶一個不留神踩到樹枝,往後滑倒,幸好旁邊的唯心馬上扶住她。 「今天學校保健組可沒有開唷。」唯心鬆開詩憶的肩膀,低下...
除了方便好用的 operator 之外,RxJava 還有一個非常重要的機制:非同步處理。 RxJava 的非同步處理機制可以讓我們很輕鬆的切換不同的執行緒,但...
Web 框架提供 API 讓開發者讀取設定檔是基本的必備功能,以 Spring 框架為例,從最早只支援 XML 格式,到現在可以使用 java-based co...
轉型與連結 在JS中, 所有的轉型與連結都是無感的 也因為太方便太無感 常常會跑出意外的結果 例如 console.log(+"1" +...
Annotation 很常寫 Java 或是 Kotlin 的朋友對 annotation 大概不陌生,它其實就是在程式碼裡面做標記,而這個標記做什麼或者背後隱...
為了在後續章節裡示範 TeamCity 可以怎麼協助我們建置專案及一系列的自動化,我們需要有一個可以建置、可以跑測試、可以產生覆蓋率報告、可以產生 API 文件...
昨天介紹的全手動安裝是對系統掌控的一種極端,而今天要介紹的,是對系統潔癖的另一種極端。假如你受夠了要跟作業系統的套件管理工具奮戰、也討厭在自己的工作機上裝一堆開...
還記得我們第一個 Coroutine 程式嗎? suspend fun showContents() = coroutineScope { launch...
昨天我們看過了使用 Kotlin DAO 進行資料庫 CRUD 的方式。 今天我們來看看,除了基本的 CRUD,我們透過 DAO 還有什麼操作資料庫的方式。 排...
「強硬的將變數改變型態會發生什麼問題?」詩憶好奇地發問。 「什麼都可能發生。」 唯心從包裡掏出一張紙,展開後放在詩憶桌上,這是一張因為放歪而印壞的A4紙。 「好...
Keyword: Kotlin DSL到Day9使用Kotlin DSL 管理依賴的Code放在KMMDay9 集中管理依賴版本 在使用第三方庫的時候,有時候...
Ktor Plugin & DSL Ktor 的架構設計是讓開發者透過實作 plugin,把 intercepting function 註冊到 req...
字串 想當初剛在學習JAVA時 一段 new String("ami") != new String("ami") 輸出...
本篇是用來補充 RxJava 的基礎知識跟 functional programming 的應用,最後將會說明上一篇沒有解釋到的實作細節。 Observable...
我們現在有了許多的基礎的 parser function 了,我們直接來看怎麼樣組合這些 function 來 parse 一些東西吧!以 library 裡面...
Keyword: KMM Gradle,Kotlinx serialization 到Day9使用Kotlin DSL 管理依賴的Code放在KMMDay9...
簡單來說,TeamCity 的運作方式是 Server + Agent 的架構。平常我們看到的 TeamCity 操作畫面是 Server 端,它負責提供 UI...
前面三天已經介紹過在三大主流作業系統上安裝 Gradle 的方式,基本上應該已經能夠滿足 90% 讀者的需求。但假如您不喜歡用套件管理工具、也偏好自己手動安裝...
台灣的特殊位置,使她在夏秋之間常遭受颱風襲擊,但偶爾也會有搞錯季節的晚颱。 詩憶望著窗外灰暗的天空,狂風暴雨絲毫沒有停歇之勢。 週末其他人都不在,於是唯心提議在...
在前一篇文章我們知道 suspend 函式必須要在 Coroutine scope 裏面才能執行,本篇文章我們來了解一下兩個 Coroutine Builder...
昨天提到如何使用 kotlinx.serialization 處理 request/response json data,今天進一步延伸說明如何在 deseri...
在 Jetpack Compose 的官方文件中,拖曳手勢操作是這樣子使用的: Box(modifier = Modifier.fillMaxSize()) {...
swift型別 swift在類別上是蠻強硬的語言 來看看型別上的使用吧 // 整數 let intA = 10 // 自動判斷型別 let int_b: Int...
Keyword: KMM shared module, Expect/Actual 今天我們來看看範例專案內容,先切換到Project顯示,展示整個專案的內容...