Kodunuz olabildiÄince okunaklı ve temiz olmalıdır.
Aslında bu programlama sanatıdır â karmaÅık bir görevi alın ve bunu olabildiÄince doÄru ve okunaklı bir Åekle getirin.
Buna yardımcı olan bir Åey de iyi kodlama stilidir.
Yazım
Kodlar için yazılmıŠbir kopya kaÄıdı (detayları aÅaÄıda):
Åimdi bu kurallar ve nedenleri hakkında konuÅabiliriz.
Buradaki hiçbir Åey kanun deÄildir. Hepsi sizin zevkinize kalmıÅtır ve deÄiÅebilir. Buradaki kodlama kuralları dogmalara dayanmaz.
Süslü Parantez
ÃoÄu JavaScript projesinde süslü parantezler yeni satırda deÄil de kod ile aynı satırda yazılırlar. Buna âmısırlıâ stili denir. Ayrıca süslü parantezin baÅında aÅaÄıdaki gibi boÅluk bırakılır.
if (kosul) {
// Åunu yap
// ...bunu yap
// ...sonra bunu yap
}
Tek satırlı if cümlelerinde süslü parantez kullanmalı mı ? Kullanılacaksa nasıl yazılmalı?
Burada not düÅülerek if örnekleri verilmiÅ. Siz de bu kodların okunabilirliÄini yargılayabilirsiniz.
- Süslü parantez açma ve kapama aynı satırda yapılmıÅ: Burada süslü paranteze gerek yok.
- Ayrı bir satıra süslü parantez olmadan yazılmıÅ. Bu Åekilde yazmayın. Bu ileride bazı anlayamadıÄınız hatalara neden olabilir. ÃrneÄin
ifgövdesine bir satır daha yazarsanız bu satırlardan sonraki yazdıÄınız çalıÅmaz. - Süslü parantez olmadan tek satırda iÅi bitirebilirseniz kabul edilebilir. Ama kısa olması Åartıyla.
- Bunların içerisindeki en iyisi.
Ãzetle:
- Ãok kısa kodlar için, Åu Åekilde kullanım kabul edilebilir:
if(koÅul) return null. - EÄer ayrı satırlara yazmanız gerekiyorsa kesin süslü parantez kullanın.
Satır uzunluÄu
En uzun satır boyunun bir sınırı olmalı. Kimse yatayda kodu takip etmek istemez. EÄer o kadar uzun ise yeni bir satıra geçmeniz önerilir.
Satır uzunluÄu limitine takım seviyesinde karar verilir. Genelde 80-120 karakter arasındadır.
Satır baÅı boÅlukları
İki türlü satır baÅı standardı vardır.
-
Yatay boÅluklar:2(4) boÅluk.
Yatay boÅluklar genelde 2 veya 4 veya âTabâ sembolünden oluÅur. Bunlardan hangisinin seçilmesi gerektiÄi bir çeÅit savaÅtır. Bugünlerde boÅluk tuÅu ile boÅluk bırakmak daha fazla kullanılan yöntemdir.
BoÅluk tuÅu ile satıra baÅlamanın âTabâ a göre üstünlüÄü daha esnek ayarlanabilir olmasından dolayıdır.
ÃrneÄin argümanlar Åu Åekilde hizalanabilir:
goster(parametreler, hizalandı, // soldan 5 boÅluk ilki, sonra, digeri ) { // ... } -
Dikey boÅluk: mantıksal blokları ayırmak için satır arası bırakmak
En basit bir fonksiyonda bile mantıksal blokları ayırma ihtiyacınız olabilir. AÅaÄıdaki örnekte, deÄiÅkenlerin tanımlanması ve sonucun dikey olarak ayrılmasına dikkat edin:
function üst(x, n) { let sonuc = 1; // <-- for (let i = 0; i < n; i++) { sonuc *= x; } // <-- return sonuc; }EÄer okunurluluÄa etki edecekse yeni bir satır arası vermekten çekinmeyin. Kanıya göre 9 satırdan fazla kod varsa arada kesin bir satır arası olmalıdır.
Noktalı virgül
Her cümlenin sonuna noktalı virgül konulmalıdır. Tercihli olsa bile tercih her zaman noktalı virgül tarafında olmalıdır.
Bazı dillerde noktalı virgül tamamen tercihe baÄlıdır. O dilde nadiren kullanılır. Fakat JavaScript için bazı durumlarda yeni satır noktalı virgül olarak algılanmayabilir. Bu da programlama hatasına neden olur.
EÄer sonuçlarını ve nasıl kullanılacaÄına inancınız tamsa bu durumda noktalı virgül kullanmayabilirsiniz. Fakat baÅlangıçta kesinlikle kullanmalısınız.
İç içelik seviyesi
Ãok fazla iç içe kod yazmamalısınız.
Bazı durumlarda döngü içinde âcontinueâ kullanmak iyi bir fikir olabilir.
AÅaÄıdaki kullanım yerine:
for (let i = 0; i < 10; i++) {
if (kosul) {
... // <- bir tane daha koÅul ( iç içe )
}
}
Bu Åekilde yazılabilir:
for (let i = 0; i < 10; i++) {
if (!cond) continue;
... // <- ayrıca bir tane daha iç içe kod yok.
}
Aynı Åekilde bunun benzeri if/else ve return için yapılabilir.
ÃrneÄin aÅaÄıdaki iki yapı birbiri ile aynı.
Birincisi:
function ust(x, n) {
if (n < 0) {
alert("Negatif sayılar desteklenmemektedir");
} else {
let sonuc = 1;
for (let i = 0; i < n; i++) {
sonuc *= x;
}
return sonuc;
}
}
ve ikincisi:
function ust(x, n) {
if (n < 0) {
alert("Negatif sayılar desteklenmemektedir");
return;
}
let sonuc = 1;
for (let i = 0; i < n; i++) {
sonuc *= x;
}
return sonuc;
}
⦠fakat ikincisi daha okunaklıdır, çünkü n<0 koÅulu ilk önce kontrol edildi ve buna göre aksiyon alındı sonrasında ana kod akıÅına devam edildi, ayrıca bir else yazmaya gerek kalmadı.
Kodun altında fonksiyonlar
EÄer birkaç tane âhelperâ(yardımcı) fonksiyon yazıyorsanız bunları yerleÅtirmenin üç farklı yolu var.
-
Kullanan kodun üstünde fonksiyonları tanımlamak:
// function declarations function elementOlustur() { ... } function isleyiciTanimla(elem) { ... } function etrafindanDolan() { ... } // fonksiyonları kullanan kodlar let elem = elementOlustur(); isleyiciTanimla(elem); etrafindaDolan(); -
Ãnce kodu yazıp sonra fonksiyonu yazmak:
// fonksiyonları kullanan kodlar let elem = elementOlustur(); isleyiciTanimla(elem); etrafindaDolan(); // --- yardımcı fonksiyonlar --- function elementOlustur() { ... } function isleyiciTanimla(elem) { ... } function etrafindanDolan() { ... } -
KarıÅık: Fonksiyonu kullanıldıÄı yerde tanımlama.
ÃoÄu zaman ikinci yöntem tercih edilmektedir. Ãünkü kodu okumaya baÅladıÄınızda, öncelik bu kodun âne yaptıÄıâ olur. EÄer önce kod yazılırsa bu bazı bilgiler verir. Sonrasında belki de fonksiyonları okumamıza hiç gerek kalmayabilir. Ãzellikle isimlendirme iyi ise buna gerek yoktur.
Stil Kılavuzu
Stil kılavuzları genel olarak ânasıl yazılmalıâ sorusunun cevabını verir: Kaç satır bırakılmalıdır, nerede yeni satıra geçilmelidir vs. çok küçük küçük Åeyler.
Genel olarak tüm takım üyeleri bu kurallara uyduÄunda kod tek bir elden çıkmıŠgibi görünür. Kimin yazdıÄı önemini yitirir.
Tabi takımın kendine ait bir stil kılavuzu da olabilir. Fakat çoÄu daha önce denendiÄinden dolayı yenisini oluÅturmaya gerek yoktur. ÃrneÄin:
EÄer kodlamaya yeni baÅladıysanız, Åimdilik yukarıda bahsettiÄimiz kopya kaÄıdından faydalanabilirsiniz. Daha sonra stil kılavuzlarına bakarak istediÄinizi örnek alabilir ve bir tanesini seçebilirsiniz.
Otomatik Düzenleyiciler
Kod stilinizi otomatik olarak denetleyen araçlar bulunmaktadır. Bunlara âdüzenleyiciâ â linter denebilir.
Bunların en önemli özelliÄi stili kontrol etmesinin yanında yazımdaki hataları, fonksiyon isimlerindeki problemleri bulur.
Bundan dolayı bir tanesini kullanmanız önerilir. Sadece kelime hatalarını düzeltmeniz için bile olsa kullanmanız iyidir.
En çok bilinen araçlar:
- JSLint â ilk düzenleyicilerden
- JSHint â JSLintâten daha fazla özelliÄe sahip.
- ESLint â en yenilerinden.
Hepsi de iÅinizi görür. Yazar ESLint kullanmaktadır.
ÃoÄu otomatik düzenleyici editör ile entegre çalıÅır. Sadece pluginâi aktif edin, kod stilini ayarlayın yeterli.
ÃrneÄin ESLint için Åu adımları yapmalısınız:
- Node.JSâi bilgisayarınıza yükleyin.
- Komut satırından
npm install -g eslintile ESLintâi yükleyin. ( npm NodeJs paket yöneticisidir) - JavaScript projenizin bulunduÄu klasöre
.eslintrcadında bir dosya oluÅturun
Ãrnek bir .eslintrc dosyası:
{
"extends": "eslint:recommended",
"env": {
"browser": true,
"node": true,
"es6": true
},
"rules": {
"no-console": 0,
},
"indent": 2
}
Buradaki "extends" normalde eslint:recommended i kullanacaÄımız fakat bunun bazı özelliklerini deÄiÅtireceÄimizi belirtmektedir.
Bunun ardından editörünüzde ESLint eklentisini aktif edin. ÃoÄu editörde bu eklenti bulunmaktadır.
Bunun yanında bu stilleri internetten indirip kullanmakta mümkündür. Bunun için http://eslint.org/docs/user-guide/getting-started adresine bakabilirsiniz.
Bunun yanında otomatik düzenleyici kullanmanın yan etkileri de vardır. Kod düzenleyiciler eÄer tanımlanmamıŠbir deÄiÅken kullanılmıÅsa, bunu anlar ve vurgular. Fakat çoÄu defa bunun nedeni yanlıŠyazımdır. Tabi bunu fark ederseniz düzeltmesi de hemen yapılabilir.
Bundan dolayı eÄer stil ile ilgilenmiyorsanız bile kullanmanız Åiddetle tavsiye edilir.
Ayrıca bazı IDEler bu otomatik düzenleyicileri kendileri doÄrudan entegre ederler. Bunlarda iyidir fakat düzenlemesi biraz daha karmaÅık olabilir. Bundan dolayı ESLint gibi araçlar kullanmanız önerilir.
Ãzet
Bu bölümdeki tüm yazım kurallar ve stil kılavuzlarının amacı okunabilirliÄi artırmaktır. Bundan dolayı tamamı tartıÅılabilir.
âNasıl daha iyi yazarız?â sorusu hakkında düÅündüÄümüzde, kriter âNasıl daha iyi okunur kod yazabilir, nasıl yazarken hatalardan kaçabiliriz?â sorularını aklımızda tutmamız gereklidir. Buna göre stil seçip hangisinin daha iyi olduÄuna karar verebiliriz.
Stil kılavuzlarını okuyun ve son geliÅmeler hakkında daha iyi bilgi sahibi olun, buna göre en iyiyi seçebilirsiniz.
Yorumlar
<code>kullanınız, birkaç satır eklemek için ise<pre>kullanın. EÄer 10 satırdan fazla kod ekleyecekseniz plnkr kullanabilirsiniz)