Temiz Kod’a Giden Yol: SwiftLint

Kurtuluş Ahmet TEMEL
3 min readFeb 4, 2020

--

Selamlar Herkese,

Temiz kod yazmak aslında bugünden çok yarını kolaylaştırmak adına bir harekettir. Zira yarın koda tekrardan dönmek zorunda olunca “Önceki Yazılımcı” arkadaşa saydırmamak için en baştan temiz kod yazmak gerekli. Çünkü bu işlem en başta yapılmazsa sonrasında LeBlanc yasası olarak telafuz edilen “Later equals never” yani ““sonra”, “asla” demektir” durumuna düşülüyor. Çünkü bir çoğumuz (ki buna bende bazen dahil oluyorum) “Şunu bir çıkarayım sonra döner düzeltirim” diyerek erteliyoruz. Ve sonrasında tabiki 😕👎

Buna ek olarak temiz kod yazmanın amacı sadece kendine veya birilerine söylenmemekten çok takım, proje verimliliğini ve uygulama performansını artırmak amacıyla yerine getirilmelidir.

Bir diğer örnekte ise bir geliştirici ekibine sahip projede yazılan kodu tutarlı ve sürdürülebilir tutmak bazen çok zor olabilir. Çünkü herkesin yoğurt yiyişi farklı olduğundan, herkes kendine has stili ile geliştirmesini yapar. İşte tam olarak burada kurallar ile belirlenmiş kod stilleri proje için hayat kurtarabilir.

Daha fazla uzatmadan yazının asıl amacında yer alan, bir çoğunuzun malumu SwiftLint aracını tanıtalım. Realm tarafında geliştirilen SwiftLint, Swift stilini ve kurallarını uygulamak için kullanılan açık kaynaklı bir araçtır.

Kurulumu ve kullanımı oldukça kolay olan bu araç bir .yml dosyası ile kontrol ediliyor. Yml dosyasında belirttiğiniz kurallarla kendi kod yazım stilinizi belirleyebilir ve kendinizi veya ekibinizi daha iyi kod yazmaya zorlayabilirsiniz. Belirlediğiniz kuralları ihlal ederseniz size uyarıları ve / veya hataları gösterecektir. Bu sayede sizde kodu daha okunabilir, kurallara uygun, performansı yüksek ve verimli bir kod hale getirmek için kendinizi zorlayacaksınız.

Kurulum

Homebrew Kurulumu

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

SwiftLint Kurulumu

brew install swiftlint

Xcode Konfigürasyonu

Bu kısımda Build Phases → New Run Script Phase yolunu takip ederek aşağıdaki kısmı ekliyoruz.

if which swiftlint >/dev/null; then
swiftlint
else
echo "warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint"
fi

Sonrasında yukarıda da belirttiğim gibi .swiftLint.yml dosyamızı proje ana dizinine ekliyoruz. Sonrasındaki ilk build işleminde kurallarınızın uygulandığını göreceksiniz.

touch .swiftlint.ymlopen .swiftlint.yml

Aşağıda size referans alabileceğiniz bir .yml dosyası bırakıyorum. Kendinize göre düzenleyerek kullanabilirsiniz.

Bu kural setlerini ve uygulanmasını biraz daha detaylandırarak proje lint yapınızı oluşturmanızı kolaylaştıralım.

1. Lint Yapısından Hariç Tutulacak Dosyaları Belirleme

Bu kısımda lint uygulanmasını istemediğiniz klasör ve dosyaları belirtmeniz gerekmektedir. Şahsi fikrim bu kısımda kullanım durumunuza bağlı olarak Carthage ve Pods dosyaları muhakkak olmalıdır.

2. Bazı Kural İhlallerini Otomatik Olarak Düzeltme

SwiftLint içerisinde bazı tür kural ihlalleri otomatik olarak düzeltebilecek bir özellik vardır. Bu özelliği çalıştırmak için terminalden proje dizini içerisinde aşağıdaki komutu çalıştırmanız gerekir.

swiftlint autocorrect

3. Uyulmayan Kuralları Bulma

Yine proje dizini içerisinde terminal üzerinde aşağıdaki komutu çalıştırarak uyulmayan kuralları görebilirsiniz.

swiftlint lint

Aslında bu komuta muhtemelen gereksinim duymazsınız. XCode üzerinden build sonrası uyarı ve hataları görebiliyorsunuz.

Son olarak aşağıya genel lint kurallarının yer aldığı bir tablo ve tüm kurallara ulaşabileceğiniz bir bağlantı bırakıyorum. Ve hepinize temiz kodlar diliyorum :)

Kolay gelsin.

--

--