Prettier mi ESLint mi? Kod Biçimleme ve Kalitesi Seçimi
JavaScript geliştirme sürecinde iki araç sık sık karşı karşıya gelir: Prettier ve ESLint. Hangisini seçeceğiniz sorusu, aslında yanlış bir soru olabilir. Çünkü bu iki araç farklı sorunları çözer ve birlikte kullanıldıklarında proje kalitesini önemli ölçüde arttırırlar. Ancak her birinin özellikleri, avantajları ve sınırlamaları vardır. Karar vermeden önce her birinin ne yaptığını ve ne yapmadığını anlamak gerekir.
Prettier: Otomatik Kod Biçimlendirme Aracı
Prettier, tek bir amacı vardır: kodunuzu tutarlı bir formata dönüştürmek. Seçenekleri kasıtlı olarak sınırlıdır. Girintiler, satır uzunluğu, tırnak işaretleri, noktalı virgüller ve benzeri konularda Prettier'e ayar yapmak pek mümkün değildir. Bu, bir dezavantaj gibi görünse de aslında büyük bir avantajdır.
Prettier'in temel özellikleri:
- Tüm kodu yeniden yazarak tutarlı bir stil uygular
- Geliştirici tercihlerinin çoğunu göz ardı eder ve standart bir format dayatır
- Stil tartışmalarını ortadan kaldırır; "Prettier söyle" diye sonlandırılır
- Dosya kaydedildiğinde veya commit öncesinde otomatik olarak çalışabilir
- JavaScript, TypeScript, JSX, CSS, JSON, Markdown ve diğer formatları destekler
Prettier'in gücü tutarlılıkta yatır. Ekip içindeki farklı stil tercihleri ortadan kalkar. Yeni bir proje başladığınızda veya ekibe yeni birisi katıldığında, kod stiline dair hiçbir tartışma yaşanmaz. Herkes aynı formatı elde eder.
ESLint: Kod Kalitesi ve Hataları Yakalama
ESLint farklı bir problem çözer. Kodunuzun biçiminin değil, kalitesinin ve mantıksal hatalarının farkında olur. Bir değişkenin tanımsız olarak kullanılması, yanlış karşılaştırma operatörleri, kullanılmayan değişkenler, async/await hataları, güvenlik açıkları gibi sorunları tespit eder.
ESLint'in temel özellikleri:
- Potansiyel hataları ve kötü uygulamaları raporlar
- Binlerce konfigüre edilebilir kural içerir
- Ekip veya proje standartlarına göre özelleştirilebilir
- Otomatik düzeltme özelliği sayesinde bazı sorunları kendisi çözebilir
- Editör entegrasyonları ile gerçek zamanlı geri bildirim sağlar
ESLint kuralları esnektir. Projenizdeki katılık seviyesini belirlersiniz. Çok katı ayarlar yeni başlayanları rahatsız edebilirken, çok gevşek ayarlar kaliteyi düşürebilir.
Yüz Yüze Karşılaştırma: Rol ve Sorumluluklar
| Özellik | Prettier | ESLint |
|---|---|---|
| Amacı | Kod biçimlendirmesi | Kod kalitesi ve hata tespiti |
| Özelleştirme | Sınırlı (amaçlı olarak) | Yüksek (binlerce kural) |
| Ekip Tartışması | Minimize eder | Kurallar üzerinde tartışma gerekebilir |
| Performans | Hızlı, basit işlem | Daha yoğun analiz, biraz daha yavaş |
| Yapabildiği | Sadece biçim değiştirir | Biçim + mantık + stil + güvenlik |
Entegre Kullanım: En İyi Yaklaşım
Modern JavaScript projelerinde Prettier ve ESLint birlikte kullanılır. İşleyiş şöyledir: ESLint, kodunuzun kalitesi hakkında uyarır ve mantıksal sorunları bulur. Prettier, biçimlendirme işini devralır. ESLint'in stil kuralları kapatılır, çünkü Prettier zaten bunu yapacaktır.
Entegrasyonun adımları:
- Projenize her iki paketi de kurun
- ESLint'in stil kurallarını devre dışı bırakın (eslint-config-prettier ile)
- Prettier'i development dependency olarak ekleyin
- Pre-commit hook (Husky gibi araçlarla) ayarlayın
- CI/CD pipelineinizde kontrol ekleyin
Bu yapılandırma sayesinde Prettier otomatik biçimlendirme yaparken, ESLint kalite kontrolünü sağlar. Ekip, stil tartışmalarından kurtulur ve kod kalitesine odaklanır.
Hangi Durumda Neyi Seçmeliyim?
Sadece Prettier: Çok basit projeler, sadece biçim tutarlılığının önemli olduğu durumlar. Ancak bu nadir görülür.
Sadece ESLint: Biçimlendirme konusunda tam kontrol isteyenler, ancak yine de kalite kontrol gerekir. Kullanılabilen bir yaklaşım ama en iyisi değildir.
Her ikisi birlikte (önerilen): Profesyonel projeler, takım çalışması, uzun vadeli kodbase'ler. Stil tartışmalarını ortadan kaldırırken kalite kontrol sağlar.
JavaScript projelerinizde kaliteyi sağlamak için karar vermeniz gereken nokta, "biri mi yoksa öbürü mü" değildir. Sorunuz "ikisini nasıl koordine etmeliyim" olmalıdır. Prettier, kod biçimlendirmesini otomatize eder. ESLint, mantıksal ve stil hatalarını çıkarır. Birlikte kullandığınızda ekip, stil tartışmalarından uzaklaşır, merkezlenmiş kalite standartlarına sahip olur ve geliştirmeye konsantre kalır. İyi yapılandırılmış bir Prettier ve ESLint kombinasyonu, proje bakımını kolaylaştırır ve yeni ekip üyelerinin hızlı adaptasyonunu sağlar.