Proje tasarımı
- Kotlin kursu
- İleri seviye
- Ders 79/83
- 6 dk
İleri seviye finali mini uygulamasının iskeletini tasarlarsın.
Proje: Ktor API + Exposed DB + coroutines
Bu beş derslik projede küçük bir kullanıcı servisi kuracaksın. UserRepo ile veri saklama, Api ile yol yönlendirme, UsersTable ile tablo soyutlama ve suspend ile eşzamanlı erişim birleştirilecek.
Bu yapı, Ktor'ın API katmanını, Exposed'ın DB soyutlamasını ve coroutines'in suspend çağrılarını küçük çapta taklit eder. İlk derste User veri sınıfı ve UserRepo iskeletini oluşturacaksın; save ve find metotlarıyla bir kullanıcı ekleyip bulacaksın.
UserRepo iskeleti
Birinci ders User veri sınıfını ve UserRepo sınıfını tanımlar. Repo, kullanıcıları bir listede saklar; save ekler, find id ile bulur.
Örnek: data class User(val id: Int, val name: String). UserRepo içinde private val users = mutableListOf<User>(). save(u) listeye ekler; find(id) ile id eşleşen kullanıcıyı döndürür. Sonraki derslerde bu repoyu Apı ve UsersTable ile genişleteceksin.
Uygulama User ve UserRepo tanımla
User(id: Int, name: String) adında data class tanımla. UserRepo sınıfı yaz; private val users = mutableListOf<User>(), fun save(u: User) ve fun find(id: Int): User? metotları olsun. main içinde repoya User(1, "Ayşe") ekle ve println(repo.find(1)) yazdır.
Başlangıç kodu
// User veri sınıfı: id ve name
// UserRepo: users listesi, save ve find
// main'de bir kullanıcı ekle, find ile bul ve yazdırÖrnek çözüm
data class User(val id: Int, val name: String)
class UserRepo {
private val users = mutableListOf<User>()
fun save(u: User) { users.add(u) }
fun find(id: Int): User? = users.find { it.id == id }
}
fun main() {
val repo = UserRepo()
repo.save(User(1, "Ayşe"))
println(repo.find(1))
}Beklenen çıktı
User(id=1, name=Ayşe)
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Projenin ilk dersinde hangi yapılar tanımlanır?
- Apı ve routing
- User veri sınıfı ve UserRepo Doğru cevap
- UsersTable
- suspend fonksiyonlar
Açıklama: İlk ders User ve UserRepo iskeletini kurar.
2 User veri sınıfını tamamla
____ User(val id: Int, val name: String)
data User(val id: Int, val name: String)
Açıklama: data class User otomatik equals ve toString üretir.
3 UserRepo parçalarını eşle
| Kavram | Anlamı |
|---|---|
data class User |
Veri sınıfı |
mutableListOf<User>() |
Depolama |
fun save(u) |
Ekleme |
fun find(id) |
Bulma |