Ktlint Kullanarak Proje Standartlarını Korumak

Abdullaherzincanli
Huawei Developers - Türkiye
4 min readJun 15, 2023
Source

Giriş

Selamlar👋, projelerinizde acil yetişmesi gereken kod parçalarında bazen dikkatimizden kaçan ufak detaylar olabilir. Bu ufak detayları daha sonra düzeltme fırsatı bulamayabiliriz ya da buna sonra bakarım derken bir bakmışız projenin sonu o düzensizlik içerisinde gelmiş. İşte bu tarz durumlarda yazdığımız kodlarda ide’nin bize verdiği, hata olmayan ancak düzeltilse daha güzel olur dediği uyarıları ve bırakılması gereken boşluklar gibi kodu daha düzenli ve güzel gösteren detayları bizlere hatırlatan bir konuyla karşınızdayım🙃.

Gelin bakalım ktlint neymiş❓ Ve nasıl kullanılırmış❓

Ktlint Nedir❓

Ktlint, Kotlin programlama dili için bir kod denetimi aracıdır. Android Studio gibi entegre geliştirme ortamlarında kullanılabilen ktlint, kod tabanınızda stil ve kalite kılavuzlarına uyumu kontrol etmek için kullanılır.

Ktlint, Kotlin kodunuzu belirli bir stil kılavuzuna (genellikle Kotlin Style Guide veya özelleştirilmiş bir stil dosyası) uygun olup olmadığını denetler. Bu stil kılavuzları, Kotlin dilinin en iyi uygulamalarına ve standartlarına dayanır. Örneğin, kod düzeni, girintileme, boşluklar, parantez kullanımı ve diğer kodlama stilleri gibi unsurları kontrol eder.

Ktlint, otomatik olarak stil kılavuzuna aykırı olan kodu belirler ve geliştiricilere uygun düzeltmeleri önerir. Bu, ekip içinde kod tutarlılığını sağlamak ve kod tabanının daha okunabilir ve bakımı kolay hale getirmek için çok değerli bir araçtır.

Android Studio’da ktlint’i kullanmak için, projenize ktlint eklentisini eklemeniz ve yapılandırma dosyasını yapılandırmanız gerekebilir. Ktlint, komut satırı aracı olarak da kullanılabilir ve ayrıca bazı sürekli entegrasyon (CI) araçlarıyla entegre edilebilir.

Özetlemek gerekirse, ktlint, Kotlin kodunuzun stil kılavuzlarına uyumunu kontrol eden ve uygun düzeltmeleri öneren bir kod denetimi aracıdır. Bu şekilde, kodunuzun okunabilirliğini ve bakımını iyileştirebilirsiniz.

Source

Ktlint Nasıl Kullanılır❓

1. adım olarak build gradle dosyamızdaki ayarlamaları halledelim. Tüm yapılacak işlemleri tek gist yardımıyla sizlerle paylaşacağım.

build.gradle

2. adım bir adet .editorconfig dosyası oluşturalım.

editorconfig dosyası, proje dosyalarının düzenlenmesi için kullanılan bir yapılandırma dosyasıdır. Ktlint gibi kod stilini denetleyen araçlar, .editorconfig dosyasındaki ayarları okuyarak, belirli kod düzeni ve stil kurallarını uygulamak için kullanılır.

Kotlin projelerinde .editorconfig dosyası, proje genelinde kod düzenini ve stili tutarlı bir şekilde yönetmeyi sağlar. Bu dosya, bir dizi stil ayarını içerir ve bu ayarlar proje dosyalarına otomatik olarak uygulanır.

Örneğin, .editorconfig dosyası aşağıdaki gibi ayarlanabilir:

.editor config file

Yukarıdaki kod örneğinde, indent_style ayarı space olarak belirlenmiştir, bu da girintilemelerin boşluk karakterleriyle yapılacağını gösterir. indent_size 4 olarak ayarlanmıştır, yani her seviye için 4 boşluk kullanılacağını ifade eder. Diğer ayarlar da belirli bir karakter kodlaması, sondaki boşlukları kırpmayı ve dosya sonunda bir satır yeni satır eklenmesini sağlar.

.editorconfig dosyası, proje ekibi arasında kod stilinin tutarlılığını sağlar ve projenin genel olarak daha okunabilir ve yönetilebilir olmasını sağlar.

Evet tüm ayarlamalarımızı sanırım hallettik şimdi terminale geçelim🙃.

Kod stilini denetlemek: ktlintCheck komutunu kullanarak proje dosyalarınızı tarayabilir ve belirli kod stiline uymayan hataları tespit edebilirsiniz. Örneğin:

Terminal usage

Bu komut, belirtilen dosya veya dizindeki Kotlin dosyalarını tarar ve kod stilini kontrol eder. Kod stiline uymayan hatalar raporlanır.

Stil ihlallerini düzeltmek: ktlintFormat komutu, stil ihlallerini otomatik olarak düzeltebilir ve proje dosyalarını güncelleyebilir. Örneğin:

Terminal usage

Bu komut, belirtilen dosya veya dizindeki Kotlin dosyalarını tarar ve stil ihlallerini otomatik olarak düzeltir. Dosyaları günceller.

Proje entegrasyonu: ktlint, projelerinize build işlemine veya CI/CD süreçlerine entegre edilebilir. Bu şekilde her build işlemi sırasında veya CI/CD sürecinde kod stilinin kontrol edilmesi ve stil ihlallerinin raporlanması sağlanır.

Bir de bunların yanında her build işleminde ktlint’in biz unutsak bile otomatik çalıştırılmasını sağlayabiliriz.

Git Hook’ları kullanma: Git hook’ları, Git işlemlerinin (commit, push vb.) belirli aşamalarında otomatik olarak çalıştırılan özel betiklerdir. Örneğin, pre-commit hook’u kullanarak, her bir commit işlemi öncesi ktlint’i otomatik olarak çalıştırabilirsiniz. İşte basit bir örnek:

  • .git/hooks/pre-commit dosyasını oluşturun(eğer yoksa) ve aşağıdaki betiği ekleyin:
pre-commit file
terminal usage

Artık her bir commit işlemi öncesi, ktlint otomatik olarak çalışacak ve stil ihlalleri tespit edilirse commit işlemi engellenecektir.

Derleme sürecine entegre etme: Projeyi derleme sürecine ktlint’i dahil edebilirsiniz. Bu şekilde, projeyi derlemek veya build etmek için kullanılan komutlar otomatik olarak ktlint’i çalıştırabilir. Örneğin, Gradle projesi için build.gradle dosyasına aşağıdaki gibi bir ayar ekleyebilirsiniz:

build.gradle file

Yukarıdaki ayar, Kotlin derleme işleminden sonra ktlint’i otomatik olarak çalıştıracaktır. src/main/kotlin dizinindeki Kotlin dosyaları taranacak ve stil ihlalleri raporlanacaktır. Derleme sürecinde stil ihlalleri tespit edilirse, derleme işlemi başarısız olacak.

Bu yöntemlerle ktlint’i commit öncesi veya derleme sürecinde otomatik olarak çalıştırabilir ve kodunuzun belirli bir stil kurallarına uymasını sağlayabilirsiniz. Hangi yöntemin projeniz için daha uygun olduğuna ve nasıl entegre edileceğine karar vermek size bağlıdır.

Source

Sonuç

Projeler birden fazla kişinin çalıştığı ortamlardır. Her birey kendi doğrularını uygularsa ortaya çıkan ürün fazlasıysa karışık olur. Bu sebeple bazı kurallar ve doğrular belirlenmiştir. Bu kurallar her zaman geliştiriciler için öncelik olmayabilir. Bu ise yazılan kodlarda düzensizliğe yol açabilir.Ktlint ise aynı proje üzerinde çalışan birden fazla geliştiricinin aynı düzende kod yazmasına yardımcı olur. Projeler gelişmeye devam ederken yeni gelen geliştiricilerin adaptasyonunda projenin düzeni önemli bir yere sahiptir.

Bir sonraki yazıya kadar sağlıcakla kalın kodla kalın 👨‍💻🙋‍♂️.

Referanslar

--

--