「但妳好像沒提過要我學這個啊?」勇者困惑的說。 「不學演算法和資料結構也可以寫程式。」蕭凱琪不在意地擺擺手,但勇者還是一臉不相信,所以只好說出來差別:「⋯⋯但如...
今天來將架構由目前的 MVP 調整成 MVVM,並且搭配 LiveData 使用。MVVM 是由 Model、View、ViewModel 組成,Model 和...
Activity Selection Problem Activity Selection Problem 通常用於時間表排程或資源分配。 該問題要求在一組互相...
前情提要 昨天我們提出了一個疑問,測試code要怎麼證明寫的是好的?又或者,我們要怎麼知道測試的code寫得已經滿足需求了? 案例 假設現在要測試一個funct...
今天來告別顯示很醜的文字內容吧~~ 昨天已經將 API 回傳的 Json 字串解析成 Cafe data class 了,可以將資料美美的顯示在畫面上~ 原本只...
時間過了兩週,我們也看了不少 Ktor 可以提供的各種功能。 今天我們來看看 Ktor 框架所提供的另一大塊功能:針對 HTTP Client 開發上所提供的協...
既然說可以玩,勇者就大膽的嘗試了重複數字、沒有數字、只有一個數字的組合,結果都很正常。這時他突然想起,蕭凱琪曾經說過,常用的功能通常都已經有人建立好了。於是他就...
前情提要 昨天我們介紹了測試金字塔,加上吃了月餅!,今天我們要從最底部的Unit test寫起,透過撰寫Unit test,來確保我們的程式有符合運作條件。 套...
Greedy Algorithm Greedy Algorithm 是一種常見的演算法設計方法,通常用於求解最佳化問題。 它的基本思想是在每一步都做出當前看起來...
昨天我們看過了 val customer = call.receive<Customer>() 這段函數,在 Ktor 裡面是怎麼將 HTML 請...
昨天才剛把專案調整為 MVP 架構,本來今天想直接改為 MVVM,但突然有點不捨,所以改為解析 Json 字串好了,過幾天在來重構~~ 定義資料結構 Json...
「有些公司內部推薦的話,可以省去部分關卡,不過更簡單的方式就是靠人脈。比如同學或是前同事,他們知道你的實力,只要待遇談攏就能進去。不過你不用擔心入職考試,」蕭凱...
Matrix Chain Multiplication Matrix Chain Multiplication 通常是在計算機科學和數學中討論的,其目標是找到一...
「其實我不這麼覺得呢。」蕭凱琪回來時剛好聽到勇者的話,不由得接話。 「可是妳不是說考試的時候,考官不會讓你用Intellij IDEA嗎?」 其實勇者之前就一直...
這篇是設定給已經有 MVC 架構概念的讀者,因為後面想使用 MVVM 作為 APP 的設計架構,為了能無痛轉移,所以從概念比較相似的 MVP 開始著手~ 在專...
看過了 Ktor 怎麼安裝 json 相關的套件,今天,我們要來看看實際使用的情況,以及套件會怎麼處理我們撰寫的程式內容。 首先我們定義 com.example...
前情提要 昨天我們將MongoDB給建立起來了,今天我們來統整一下測試是甚麼? 很重要嗎? 測試金字塔 在Mike Cohn 的測試金字塔中,它是由三層組成,我...
Coin Change Problem 如何以最少的硬幣數量來湊出特定金額的錢。 這個問題可以用簡單的方式描述如下: 假設我們有一些不同面額的硬幣,每種面額的硬...
昨天我們看過了 ContentNegotiation 的實作。今天,我們來看看 fun Application.configureSerialization()...
勇者今天早上有些精神不濟,一不留神,在程式碼上留下了一連串亂碼,他匆匆忙忙地想要清除掉錯誤,卻發現IDE並沒有紅色的錯誤提示。這才發現剛好都打在註解那行了。 「...
為了今天要用 async 執行非同步取得咖啡廳資料,所以昨天先做了簡單的實驗,現在直接來改寫程式碼吧~~ 改寫 - 使用 async 取得 API 資料 b...
Longest Increasing Subsequence Longest Increasing Subsequence 是在一個數字序列中找到一個具有最大長...
前面幾天,我們看過了 Ktor 的啟動,路由,以及靜態內容和 HTML 畫面的生成。 今天我們來看看另一個後端框架非常基礎的功能:生成 json 格式的 API...
蕭凱琪對勇者知道九九乘法表毫不意外,畢竟那也算是基礎知識,應該會在系統灌進去的生活知識包裏面。但居然對閱讀方向有執著?這就有點意思了。 「妳說『for』也是迴圈...
Dynamic Programming Dynamic Programming 是一種在計算機科學和數學中常用的問題解決方法。 它的主要策略是將一個複雜的問題拆...
前情提要 今天我們把三層式架構給做了出來,Service層放業務邏輯,Repo層放與外部接觸如資料庫、外部系統的地方,Controller層專心做User打過來...
前情提要 今天我們要將memory的list,換成實際的DB,讓我們的資料可以正確的被保存起來。 為什麼選擇MongoDB呢? MongoDB具有以下優點:...
前情提要 今天我們要將MongoDB給串上我們的專案! 有了DB以後,我們關閉程式就不會遇到資料不見的問題了,並且外來也可以水平擴充之類的,增加我們資料的安全性...
加入 LifecycleScope 管理 Coroutine 經友人 L 建議,可以透過 LifecycleScope 管理 coroutine 的生命週期。因...
今天來實戰,將前三天學習到關於 coroutine 的基本概念和用法在我們的專案內實作! 使用 launch 搭配 LiveData 因為我們學到的是用 lau...