Lock in $30 Savings on PRO—Offer Ends Soon! ⏳

Kotlin ile Backend Server-side Programlama

Kotlin ile Backend Server-side Programlama

Etkinlik yayını: https://www.youtube.com/watch?v=ovteP53wzpA

Delivery Hero Tech Hub'ın ilk etkinliğini 19 Ekim Salı akşamı gerçekleştirildi. Gökhan Ayrancıoğlu tarafından Kotlin ile Backend/Server Side Programlama konusunda gerçekleşti.

Kotlin'in backend servis geliştirmelerinde kullanımı her geçen gün artıyor. Bilhassa Java geliştiriciler genelde yeni bir teknoloji seçiminde Kotlin'e yöneliyor. İkisinin birlikte kullanımı ise bu süreci hızlandırıyor.

Bu etkinlikde Kotlin'in backend dünyasında kullanımını, güzel ve güçlü yönlerini, framework dünyasında neler olduğunu ve gelecekteki yerini konuştuk. Bunların yanı sıra Kotlin'in neden backend geliştirmede tercih edildiğini ve Yemeksepeti ekosisteminde backend servisleri için nasıl kullanıldığını ele aldık.

Gökhan Ayrancıoğlu

October 19, 2021
Tweet

More Decks by Gökhan Ayrancıoğlu

Other Decks in Technology

Transcript

  1. Proprietary & Confidential. 2021 All Rights Reserved 2 Gökhan Ayrancıoğlu

    Software Engineer, Yemeksepeti programming, since 2012 gokhana.medium.com [email protected] gokhanadev Twitter: /DHTechHub Instagram: /DHTechHub Youtube: http://ymk.st/techhubyt Kommunity: https://kommunity.com/delivery-hero-tech-hub
  2. Proprietary & Confidential. 2021 All Rights Reserved 3 01. Kotlin’in

    Hikayesi 02. Benim Kotlin Hikayem 03. Kotlin ve Güçlü Yönleri 05. Yemeksepeti ve Kotlin 06. Kullanan Şirketler 04. Kotlin & Frameworkler 07. Kotlin’in Geleceği Bizi Neler Bekliyor? … ve DEMO
  3. 2011 yılından beri JetBrains bünyesinde geliştirilmiştir. Hem nesneye yönelik hem

    de fonksiyonel programlamayı destekleyen açık kaynak ve statik olarak yazılmış bir programlama dilidir. Kotlin Ne ki? Andrey Breslav’ın söylediğine göre St. Petersburg yakınlarındaki Kotlin Adası'ndan geliyor. Kotlin’in Adı Jetbrains tarafından geliştirildiği için güçlü bir IDE desteğine ve Google yani android nedeniyle oluşan büyük bir topluluğa sahip durumda. Kotlin Popülerliği Kotlin’in Hikayesi
  4. Proprietary & Confidential. 2021 All Rights Reserved 5 Kotlin Nereden

    Nereye? • 2011 yılının Temmuz ayında Jetbrains tarafından duyruldu. • 2016 yılının Şubat ayında v1.0 sürümü yayınlandı. • 2017 yılının ilk Android desteği açıklanırken, 2019 Mayıs’ında Google tarafından Android için ilk tercih edilen dil olarak ilan edildi.
  5. Proprietary & Confidential. 2021 All Rights Reserved 6 Kotlin Nereden

    Nereye? • Kotlin ilk olarak Java’ya alternatif olarak geliştirildi. • Apache 2.0 ile açık kaynak olarak yayınlanmıştır. (bknz: https://github.com/jetbrains/kotlin) • Java, C# gibi object oriented bir dildir. • Kotlin, statik bir programlama dilidir.
  6. Proprietary & Confidential. 2021 All Rights Reserved 7 Kotlin Nereden

    Nereye? • Intellij’in de güçlü tool desteğiyle birlikte oldukça popülerleşti. • JavaScript, Native ve JVM için kod derlenebiliyor.
  7. Proprietary & Confidential. 2021 All Rights Reserved 8 Benim Kotlin

    Hikayem • İlk çıktığı yıllardan beri ilgiyle takip ediyordum. • 2018 yılında ilk ufak denemeleri yapmaya başladım. • Yemeksepeti ile birlikte profesyonel hayatımda da Kotlin kullanmaya başladım. Fall in love with Kotlin
  8. Proprietary & Confidential. 2021 All Rights Reserved 9 C, C++,

    Scala? Kotlin hangi programlama dili ile yazılmıştır? Kotlin Github Sayfası: https://github.com/jetbrains/kotlin
  9. Proprietary & Confidential. 2021 All Rights Reserved 10 Kotlin Syntax

    Hello Fonksiyon tanımlama Inline fonksyion String template if kod bloğu when kod bloğu
  10. Proprietary & Confidential. 2021 All Rights Reserved 11 Kotlin Syntax

    Collectionlar Foreach döngüsü For döngüsü Map tanımlama Lambda operasyonları
  11. Proprietary & Confidential. 2021 All Rights Reserved 12 Kotlin Syntax

    Null safety Sınıf tanımlama Data sınıfları
  12. Proprietary & Confidential. 2021 All Rights Reserved 13 Güçlü Yönleri

    Bir sınıf ya da obje için herhangi bir extension yazılabilir. Extension functions
  13. Proprietary & Confidential. 2021 All Rights Reserved 14 Güçlü Yönleri

    Veriler içeren sınıfları data ile tek bir satırda getter, setter, equals, hashcode ve toString’i içeren bir sınıf oluşturulabiliyor.. Data classes
  14. Proprietary & Confidential. 2021 All Rights Reserved 15 Güçlü Yönleri

    Java ile yazılmış kütüphaneler Kotlin projelerinde kullanılabilir. Java compatible Kotlin’de bir nesnenin belirli bir türe ait olup olmadığını kontrol etmek için is/!is operatörünü kullanıllabilir. Smart casts Kotlin, Java ile birlikte aynı projede kullanılabiliyor. interoperable with Java Inline olarak sınıf tanımlayabiliyor ve kolayca mock objeleri oluşturulabiliyor. Testing Intellij ile birlikte harika dil desteği var. Java kodu Kotlin koduna otomatik olarak dönüştürülebiliyor. JetBrains Etkisi
  15. Proprietary & Confidential. 2021 All Rights Reserved 19 Spring Boot

    • En yaygın kullanılan Java framework’üdür. • Kotlin’i başlangıçta initalize edebililir şekilde sunmaktadır. • Çoğu dökümanında Java yanında Kotlin örneklerini de sunmaktadır. • spring.io
  16. Proprietary & Confidential. 2021 All Rights Reserved 20 Ktor •

    Jetbrains tarafından geliştirilmiş ve Kotlin ile yazılmış web uygulamaları geliştirmek için kullanılabilen framewoktür • Coroutines ile birlikte asenkron uygulamalar geliştirmeyi kolaylaştırmaktadır. • ktor.io
  17. Proprietary & Confidential. 2021 All Rights Reserved 21 Quarkus •

    Quarkus, JVM ve GraalVM için uyarlanmış bir Kubernetes Native Java frameworküdür. • Redhat tarafından geliştirilmiştir. • Popülerleşen bu framework Kotlin’I de güçlü bir şekilde desteklemektedir.
  18. Proprietary & Confidential. 2021 All Rights Reserved 22 Micronaut •

    Lightweight, hızlı runtime’a sahip, microservice mimarisine gore tasarlanmış bir frameworktür. • Java’nın yanında Groovy ve Kotlin desteği mevcuttur. • Reactive programlamayı desteklemektedir. • Vert.x, Javalin gibi ve diğer bir çok java framework ve library’si Kotlin’i desteklemektedir.
  19. Proprietary & Confidential. 2021 All Rights Reserved 23 Backend için

    Neden Kotlin? Backend Programlama için Frameworkler çok yoğun olarak kullanılıyor. 01. Güçlü Fremework Desteği Java’nın halihazırdaki kütüphane desteğini kullanabilmektedir. 02. Java kütüphanelerini sorunsuz kullanabilmek JS, Native derlemelerin yanında JVM içinde kod derleyebilmektedir. 03. JVM üzerinde çalışabilmesi
  20. Proprietary & Confidential. 2021 All Rights Reserved 24 Backend için

    Neden Kotlin? fun noType() = "NO RETURN TYPE" 05. Type interface - Return tipine gerek yok Domain Specific Language daha yüksek seviyede bir soyutlamayla kurallar bütünü veya yeni konseptler oluşturmanıza olanak sağlar. 06. Kotlin DSL Higher-Order fonksiyonlar ve lambda desteği ile güçlü bir fonksiyonel programlama desteği sağlar. 04. Fonksiyonel Programlama Desteği
  21. Proprietary & Confidential. 2021 All Rights Reserved 25 Backend için

    Neden Kotlin? Asenkron çalışmayı multi-threadinge benzer ama farklı bir altyapı kullanarak coroutine denen parçacıklarıyla hiçbir başka threade bağımlı kalmadan asenkron olarak işlemleri yönetebilir. 07. Coroutines Desteği Özellikle Java geliştiriciler için hızlı ivmede öğrenilebilir bir dildir. 09. Öğrenim Kolaylığı Uygulamalarınız için gRPC desteği sunar. 10. gRPC Desteği RxKotlin ve RxJava ile birlikte reactive programlama altyapısı sağlamaktadır. 08. Reactive Programlama
  22. Proprietary & Confidential. 2021 All Rights Reserved 26 Coroutines Nedir

    ki? Basitçe Uzun sürecek bir process’i ana threadi bloklamadan, akışı devam ettirebilmek için asenkron olarak kullanılan iş parçacıklarıdır.
  23. Proprietary & Confidential. 2021 All Rights Reserved 27 Coroutines Nedir

    ki? Basitçe Coroutine scope yeni coroutine’ler için alan tanımlar. Her coroutine oluşturucu (launch, async vb.) CoroutineScope'un bir uzantısıdır.
  24. Proprietary & Confidential. 2021 All Rights Reserved 30 Kotlin vs

    Java • Java, önceden tanımlanmış veri türleri olan primitive tipleri içerir. Kotlin’de primitive tipler kod seviyesinde tanımlanamazlar. • Ternary Operator, yine Java’da yer alan ama Kotlin’de yer almayan özelliklerden biridir. Java Kotlin
  25. Proprietary & Confidential. 2021 All Rights Reserved 36 Veriler Kotlin

    için Ne Diyor? https://blog.jetbrains.com/kotlin/2021/09/the-actual-number-of-kotlin-developers-or-who-our-active-users-are/
  26. Proprietary & Confidential. 2021 All Rights Reserved 37 Veriler Kotlin

    için Ne Diyor? Amaçlara göre kullanım oranları https://www.jetbrains.com/lp/devecosystem-2021/kotlin/
  27. Proprietary & Confidential. 2021 All Rights Reserved 38 Veriler Kotlin

    için Ne Diyor? Kotlin’i kullanan geliştiriciler başka hangi dillerde geliştirme yapıyor? https://www.jetbrains.com/lp/devecosystem-2021/kotlin/
  28. Proprietary & Confidential. 2021 All Rights Reserved 39 Veriler Kotlin

    için Ne Diyor? Yıllık Popülerlik Değişimi https://insights.stackoverflow.com/trends?tags=kotlin%2Cjava
  29. Proprietary & Confidential. 2021 All Rights Reserved 40 Şirket Örnekleri

    • “QLDB veri geçmişinizi güvende tutan ve blockchain ile birlikte kullanılabilen bir veritabanıdır. “ • Orjinal geliştirme ilk olarak Java iken Kotlin’e dönüştürmeye karar verip Kotlin ile yeniden yazılmış. • Neden Kotlin? Başlıca; tutarlı kod, coroutines, daha güvenli kod yazımı ve güçlü extension desteği Şirketler Kotlin için Ne Diyor? https://talkingkotlin.com/qldb/
  30. Proprietary & Confidential. 2021 All Rights Reserved 41 Şirket Örnekleri

    • Kotlin, Atlassian'da Jira Software bulut ürünlerini geliştirmek için kullanılıyor. • Neden Kotlin? Birçok java library’si bulunuyor ve servisleri bölmeye başladıklarında hem bu gücünden yararlanmak hemde asenkron programlamayı desteklemek için Kotlin tercih ediliyor. Şirketler Kotlin için Ne Diyor? https://kotlinlang.org/lp/server-side/case-studies
  31. Proprietary & Confidential. 2021 All Rights Reserved 42 Şirket Örnekleri

    Server-side için Kotlin kullanan şirketler Ve dahası… https://kotlinlang.org/lp/server-side/case-studies
  32. Proprietary & Confidential. 2021 All Rights Reserved 43 Yemeksepeti ve

    Kotlin • Yemeksepeti’de özellikle Payment modüllerinde Kotlin’in güçlü özelliklerini backend servislerinde büyük ölçüde kullanmaktadır. • Aynı zamanda Delivery Hero kendi bünyesinde Kotlin ile geliştirilmiş projeler barındırmakta ve bir çoğu production ortamında verimli bir şekilde çalışmaktadır. • JVM tabanlı yeni bir projeye başlanacağı zaman Kotlin her zaman ilk seçenekler arasında yerini alıyor.
  33. Proprietary & Confidential. 2021 All Rights Reserved 44 Kotlin’in Geleceği

    • Server-side üzerindeki gücü artarken popülerliği büyük bir ivmeyle devam edecek. • JVM desteği gelecekte de var olacak. • Yeni derleyici geliyor: Paralel programlamayı ve hıza yönelik iyileştirmeler içeren daha iyi bir derleyici yazılması planlanıyor. • Hızlı ve sorunsuz IDE: Kotlin için IDE kararlılığı ve performansı artırılacak. • …