Ana içeriğe geç

Kod Biçimlendirici

İngilizcesi
Code Formatter
Türkçe karşılığı
kod formatlayıcı
Okunuşu
kod formetır

Günlük kullanımda iki ad da yaygın.

Güncellendi 2 dk okuma

Bu sayfayı paylaşın

Bağlantıyı gönderin, tanımı bağlantısıyla birlikte alıntılayın ya da kendi sitenizde bir kart olarak gösterin.

https://softwaredictionary.org/tr/terimler/code-formatter

Kısaca

Kod biçimlendirici, kaynak kodu tek ve tutarlı bir düzene sokan araçtır; kodun ne yaptığını değiştirmeden girintiyi, boşlukları ve satır sonlarını düzeltir.

Kod biçimlendirici (code formatter) nedir?

Kod biçimlendirici, kaynak kodu alır ve düzenini tek ve tutarlı bir stile uyacak şekilde yeniden yazar: girinti, operatörlerin etrafındaki boşluklar, satırların nerede bölündüğü, tırnak işaretleri, sondaki virgüller. Programın ne yaptığı asla değişmez; yalnızca metnin görünüşü değişir. Yaygın örnekler arasında JavaScript, TypeScript, CSS ve daha fazlası için Prettier, Go için gofmt, Python için Black ve Ruff, Rust için rustfmt, C ve C++ için clang-format bulunur.

Modern biçimlendiricilerin çoğu mevcut metni satır satır yamalamaz. Kodu bir sözdizimi ağacına ayrıştırır, özgün düzeni bir kenara atar ve kodu, satır sonlarını belirli bir azami genişliğe sığacak biçimde seçerek, sabit kurallarla ağaçtan yeniden yazdırır. Birçoğu bilinçli olarak katı görüşlüdür (opinionated) ve az ayar sunar: gofmt'nin stil için hiç ayarı yoktur; neredeyse bütün Go kodunun birbirine benzemesinin nedeni budur. Geliştiriciler biçimlendiriciyi genellikle editörde kaydederken, bir pre-commit hook'unda ve CI'da, bir dosya biçimlendirilmemişse başarısız olan prettier --check ya da black --check gibi bir denetim modunda çalıştırır.

Asıl kazanç toplumsaldır: stil tartışmaları ve boşluklarla ilgili yorumlar kod incelemesinden kaybolur, diff'ler de yalnızca gerçek değişiklikleri gösterir. Otomatik uygulanan bir yayınevi stil kılavuzu gibi çalışır; her yazarın bölümleri aynı yazı tipleri ve kenar boşluklarıyla çıkar. Mevcut bir projede biçimlendiriciyi benimseyen ekipler genellikle her şeyi tek bir commit'te yeniden biçimlendirir ve bu commit'i bir .git-blame-ignore-revs dosyasına yazar; böylece blame görünümleri onu atlayıp her satırı gerçekte kimin yazdığını göstermeye devam eder.

Biçimlendirici sıklıkla linter ile karıştırılır. Linter kodu olası hatalar ve şüpheli kalıplar açısından inceler, örneğin kullanılmayan bir değişkeni ya da eksik bir await ifadesini, ve bunları raporlar; biçimlendirici ise yalnızca düzeni değiştirir ve mantık hakkında hiçbir yargıda bulunmaz. Ekipler çoğunlukla ikisini birlikte çalıştırır ve birbirleriyle çakışmasınlar diye linter'ın stil kurallarını kapatır; ESLint de bu nedenle 2023'te kendi biçimlendirme kurallarını kullanımdan kaldırdı (deprecated). Ruff ve Biome gibi bazı yeni araçlar, linter ile biçimlendiriciyi bir arada sunar.

Önemli noktalar

  • Kod biçimlendirici, kodun düzenini otomatik olarak yeniden yazar ve davranışını asla değiştirmez.
  • Çoğu, kodu ayrıştırıp sabit kurallarla sıfırdan yeniden yazdırır.
  • gofmt, Prettier ve Black gibi katı görüşlü biçimlendiriciler kod incelemesindeki stil tartışmalarını bitirir.
  • Kaydederken, pre-commit hook'larında ve CI'da bir denetim olarak çalışırlar.
  • Linter olası hataları bulur; biçimlendirici yalnızca düzeni düzeltir.

Örnek

Aynı kod, varsayılan ayarlarıyla Prettier'dan önce ve sonrajavascript
// Before: valid code, written in whatever style the author liked
const user={name:'Ada',roles:[ 'admin','dev' ],active:true}
function greet(u){return 'Hello, '+u.name}

// After running `npx prettier --write user.js`
const user = { name: "Ada", roles: ["admin", "dev"], active: true };
function greet(u) {
  return "Hello, " + u.name;
}

Sık sorulan sorular

Linter ile biçimlendirici arasındaki fark nedir?

Linter olası hataları ve riskli kalıpları arar ve bunları raporlar; biçimlendirici ise yalnızca girinti ve satır sonları gibi düzeni yeniden yazar. Birçok proje ikisini birlikte kullanır ve düzenle ilgili her kararı biçimlendiriciye bırakır.

Kod biçimlendirici kodumu bozabilir mi?

Bozmayacak şekilde tasarlanmıştır: biçimlendirici yalnızca boşluklar, tırnaklar ve parantezler gibi düzen ayrıntılarını değiştirir; Black gibi bazıları, yeniden biçimlendirilen kodun hâlâ eşdeğer bir sözdizimi ağacına ayrıştığını da denetler. Hatalar nadirdir; büyük bir kod tabanını yeniden biçimlendirdikten sonra testleri çalıştırmak da ucuz bir güvenlik ağıdır.

Hangi kod biçimlendiriciyi kullanmalıyım?

Genellikle dilinizin topluluğunun benimsediğini: Go için gofmt, Rust için rustfmt, JavaScript ve TypeScript için Prettier ya da Biome, Python için Black ya da Ruff. Ekip olarak tek bir biçimlendiricide anlaşmak, hangisini seçtiğinizden daha önemlidir.

İlgili sayfalar

Kaynaklar

Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin

Daha fazla

Ayarlar