You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: 1-js/03-code-quality/01-debugging-chrome/article.md
+8-8Lines changed: 8 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,7 +6,7 @@ Daha karmaşık kodlara geçmeden, hata ayıklama hakkında konuşmamız gerekme
6
6
7
7
Geliştirici özellikleri en iyi olan tarayıcı Chrome olduğundan bu tarayıcı ile çalışacağız.
8
8
9
-
## "Kaynak" paneli
9
+
## "Kaynak" paneli
10
10
11
11
Şu anda sizin kullandığınız Chrome biraz farklı olabilir. Fakat bu panel kesinlikle orada biryerde olmalı
12
12
@@ -25,9 +25,9 @@ Bu panelde `hello.js` i seçtiğinizde aşağıdaki gibi bir ekran görmeniz ger
25
25

26
26
27
27
Bu bölüm üçe ayrılmıştır:
28
-
1.**Dosya Gezgini**: Html, javascript, css ve diğer dosyalar görseller de dahil olmak üzere açılan sayfaya iat olan kaynakları gösterir. Chrome eklentileri de burada yer alabilir.
28
+
1.**Dosya Gezgini**: Html, javascript, css ve diğer dosyalar görseller de dahil olmak üzere açılan sayfaya ait olan kaynakları gösterir. Chrome eklentileri de burada yer alabilir.
29
29
2.**Kod Editörü** burası ise kaynak kodu gösterir.
30
-
3.**Bilgi ve kontrol bölgesi** burada ise hata ayıklama yapılır.
30
+
3.**Bilgi ve kontrol bölgesi** burada ise hata ayıklama yapılır.
31
31
32
32
Şimdi geliştirici araçlarının sol köşesinde bulunan <spanclass="devtools"style="background-position:-172px-122px"></span> açma kapama bölümünü kullanarak kendinize biraz yer açabilirsiniz.
33
33
@@ -97,10 +97,10 @@ Lütfen bilgilerin görüneceği dropdownları sağ panelden açınız. Bu böl
97
97
98
98
1.**`Watch` -- herhangi bir ifadenin o anki değerini gösterir.**
99
99
`+` işaretine basarak ifade girebilirsiniz. Bu ifadenin değerini kod ayıklayıcı her halükarda gösterir. Kod çalışırken bu değerleri her adımda kontrol eder ve sonucunu yazar.
100
-
100
+
101
101
2.**`Call Stack` -- İç içe çağrı zincirlerini gösterir.**
102
102
103
-
Şu anda hata ayıklayıcı `merhaba()` fonksiyonunun içindedir ve `index.html` tarafından çağırılmıştır. Eğer yığın(stack) bölgesine dikkat ederseniz fonksiyona girdiğinde nereden çağırıldığını gösterir. ( her hangi bir fonksiyondan çağırılmadığından dolayı "anonymous" olarak göreceksiniz)
103
+
Şu anda hata ayıklayıcı `merhaba()` fonksiyonunun içindedir ve `index.html` tarafından çağırılmıştır. Eğer yığın(stack) bölgesine dikkat ederseniz fonksiyona girdiğinde nereden çağırıldığını gösterir. ( herhangi bir fonksiyondan çağırılmadığından dolayı "anonymous" olarak göreceksiniz)
104
104
105
105
Eğer yığın maddesine tıklayacak olursanız hangi fonksiyondan çağırıldığını görebilirsiniz.
106
106
3.**`Scope` -- kesme anında var olan değişkenlerin değerlerini gösterir**
@@ -134,7 +134,7 @@ Sağ panelin üstünde sadece bu işe has butonlar bulunmaktadır.
134
134
: Bir öncekinin aynısı, bir adım gider fakat bu defa eğer bir fonksiyon varsa onun "içine girer"(step into).
135
135
136
136
<spanclass="devtools"style="background-position:-104px-76px"></span> -- içinde bulunulan fonksiyonun sonuna kadar devam et, `key:Shift+F11`.
137
-
: Çalışma içinde bulunan fonksiyonun sonuna gelir ve orada durur.Yanlışlıkla iç içe çağrının içine girilirse çıkmak için kullanışlı bir özelliktir.<spanclass="devtools"style="background-position:-72px-76px"></span>,
137
+
: Çalışma içinde bulunan fonksiyonun sonuna gelir ve orada durur.Yanlışlıkla iç içe çağrının içine girilirse çıkmak için kullanışlı bir özelliktir.<spanclass="devtools"style="background-position:-72px-76px"></span>,
138
138
139
139
<spanclass="devtools"style="background-position:-7px-28px"></span> -- Tüm kesme noktalarını etkinleştirme/devre dışı bırakma.
140
140
@@ -166,10 +166,10 @@ Bahsettiğimiz gibi çalışan kodu durdurmanın üç farklı yönü vardır. Bu
166
166
2.`debugger` kelimesi ile durdurma
167
167
3. Eğer hata olduğunda aç/kapa butonu aktifse çalışmada hata olduğunda <spanclass="devtools"style="background-position:-264px-4px"></span> durdurma
168
168
169
-
Bunların sonucunda çalışmada ne gibi hatalar olduğunu görebilirsiniz.
169
+
Bunların sonucunda çalışmada ne gibi hatalar olduğunu görebilirsiniz.
170
170
171
171
Bunlara ek olarak <https://developers.google.com/web/tools/chrome-devtools> adresinden daha geniş ve yeni bilgilere ulaşabilirsiniz.
172
172
173
173
Bu bölümdeki bilgiler sizin hata ayıklama işlemine başlamanızda yardımcı olacaktır. Fakat tarayıcı ile alakalı çok fazla işlem yapıyorsanız bu durumda geliştirici derinlemesine incelemeniz gerekmektedir.
174
174
175
-
Tabi bunun yanında deneme yanılma yöntemiy ile de geliştirici araçlarının özelliklerini keşfedebilirsiniz. Unutmayın sağ tıklayarak farklı bölgelerde farklı fonksiyonları görebilirsiniz.
175
+
Tabi bunun yanında deneme yanılma yöntemi ile de geliştirici araçlarının özelliklerini keşfedebilirsiniz. Unutmayın sağ tıklayarak farklı bölgelerde farklı fonksiyonları görebilirsiniz.
Copy file name to clipboardExpand all lines: 1-js/03-code-quality/02-coding-style/article.md
+14-14Lines changed: 14 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,7 +9,7 @@ Buna yardımcı olan bir şey de iyi kodlama stilidir.
9
9
10
10
## Yazım
11
11
12
-
Kodlar için yazımış bir kopya kağıdı(detayları aşağıda):
12
+
Kodlar için yazılmış bir kopya kağıdı(detayları aşağıda):
13
13
14
14

15
15
<!--
@@ -38,7 +38,7 @@ if (n < 0) {
38
38
-->
39
39
Şimdi bu kurallar ve nedenleri hakkında konuşabiliriz.
40
40
41
-
Buradaki hiçbir şey kanun değildir. Hepsi sizin zevgine kalmıştır ve değişebilir. Buradaki kodlama kuralları dogmalara dayanmaz.
41
+
Buradaki hiçbir şey kanun değildir. Hepsi sizin zevkinize kalmıştır ve değişebilir. Buradaki kodlama kuralları dogmalara dayanmaz.
42
42
43
43
### Süslü Parantez
44
44
@@ -47,7 +47,7 @@ Buradaki hiçbir şey kanun değildir. Hepsi sizin zevgine kalmıştır ve deği
47
47
48
48
```js
49
49
if (kosul) {
50
-
// şunu yap
50
+
// şunu yap
51
51
// ...bunu yap
52
52
// ...sonra bunu yap
53
53
}
@@ -91,7 +91,7 @@ Satır uzunluğu limitine takım seviyesinde karar verilir. Genelde 80-120 karak
91
91
İki türlü satır başı standardı vardır.
92
92
93
93
-**Yatay boşluklar:2(4) boşluk.**
94
-
94
+
95
95
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.
96
96
97
97
Boşluk tuşu ile satıra başlamanın "Tab" a göre üstünlü daha esnek ayarlanabilir olmasından dolayıdır.
@@ -100,7 +100,7 @@ Satır uzunluğu limitine takım seviyesinde karar verilir. Genelde 80-120 karak
100
100
101
101
```js no-beautify
102
102
goster(parametreler,
103
-
hizalandı, // soldan 5 boşluk
103
+
hizalandı, // soldan 5 boşluk
104
104
ilki,
105
105
sonra,
106
106
digeri
@@ -125,7 +125,7 @@ Satır uzunluğu limitine takım seviyesinde karar verilir. Genelde 80-120 karak
125
125
}
126
126
```
127
127
128
-
Eğer okunurluluğa etki edecekse yeni bir satır arası vermekten çekinmeyin. Kanıya göre 9satıdan fazla kod varsa arada kesin bir satır arası olmalıdır.
128
+
Eğer okunurluluğa etki edecekse yeni bir satır arası vermekten çekinmeyin. Kanıya göre 9satırdan fazla kod varsa arada kesin bir satır arası olmalıdır.
129
129
130
130
### Noktalı virgül
131
131
@@ -179,7 +179,7 @@ function ust(x, n) {
179
179
}
180
180
181
181
return sonuc;
182
-
}
182
+
}
183
183
}
184
184
```
185
185
@@ -202,11 +202,11 @@ function ust(x, n) {
202
202
}
203
203
```
204
204
205
-
... fakat ikincisi daha okunaklıdır, çünkü `n<0` koşulu ilk önce kontrol edildi ve buna göre aksiyon alındı sonrsında ana kod akışına devam edildi, ayrıca bir `else` yazmaya gerek kalmadı.
205
+
... 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ı.
206
206
207
207
## Kodun altında fonksiyonlar
208
208
209
-
Eğer bir kaç tane "helper"(yardımcı) fonksiyon yazıyorsanız bunları yerleştirmenin üç farklı yolu var.
209
+
Eğer birkaç tane "helper"(yardımcı) fonksiyon yazıyorsanız bunları yerleştirmenin üç farklı yolu var.
210
210
211
211
1. Kullanan kodun üstünde fonksiyonları tanımlamak:
212
212
@@ -258,7 +258,7 @@ Eğer bir kaç tane "helper"(yardımcı) fonksiyon yazıyorsanız bunları yerle
258
258
259
259
## Stil Klavuzu
260
260
261
-
Stil klavuzları 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.
261
+
Stil klavuzları 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.
262
262
263
263
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.
264
264
@@ -279,15 +279,15 @@ Kod stilinizi otomatik olarak denetleyen araçlar bulunmaktadır. Bunlara "düze
279
279
280
280
Bunların en önemli özelliği stili kontrol etmesinin yanında yazımdaki hataları, fonksiyon isimlerindeki problemleri bulur.
281
281
282
-
Bundan dolayı bir tanesini kullanmanız öneririli. Sadece kelime hatalarını düzeltmeniz için bile olsa kullanmanız iyidir.
282
+
Bundan dolayı bir tanesini kullanmanız öneririlir. Sadece kelime hatalarını düzeltmeniz için bile olsa kullanmanız iyidir.
283
283
284
284
En çok bilinen araçlar:
285
285
286
286
- [JSLint](http://www.jslint.com/) -- ilk düzenleyicilerden
287
287
- [JSHint](http://www.jshint.com/) -- JSLintden daha fazla özelliğe sahip.
288
288
- [ESLint](http://eslint.org/) -- en yenilerinden.
289
289
290
-
Hepside işinizi görür. Yazar [ESLint](http://eslint.org/) kullanmatadır.
290
+
Hepside işinizi görür. Yazar [ESLint](http://eslint.org/) kullanmaktadır.
291
291
292
292
Çoğu otomatik düzenleyici editör ile entegre çalışır. Sadece plugin'i aktif edin, kod stilini ayarlayın yeterli.
293
293
@@ -317,7 +317,7 @@ Buradaki `"extends"` normalde `eslint:recommended` i kullanacağımız fakat bun
317
317
318
318
Bunun ardından editörünüzde ESLint eklentisini aktif edin. Çoğu editörde bu eklenti bulunmaktadır.
319
319
320
-
Bunun yanında bu stilleri internetten indirip kullanmakta mümkündür. Bunun için
320
+
Bunun yanında bu stilleri internetten indirip kullanmakta mümkündür. Bunun için
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 farkederseniz düzeltmesi de hemen yapılabilir.
@@ -329,7 +329,7 @@ Ayrıca bazı IDEler bu otomatik düzenleyicileri kendileri doğrudan entegre ed
329
329
330
330
## Özet
331
331
332
-
Bu bölümdeki tüm yazım kurallar ve stil klavuzlarının amacı okunabilrliği artırmaktır. Bundan dolayı tamamı tartışılabilir.
332
+
Bu bölümdeki tüm yazım kurallar ve stil klavuzlarının amacı okunabilirliği artırmaktır. Bundan dolayı tamamı tartışılabilir.
333
333
334
334
"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.
Copy file name to clipboardExpand all lines: 1-js/03-code-quality/03-comments/article.md
+6-6Lines changed: 6 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,7 +3,7 @@
3
3
<info:structure> bölümünden de bildiğiniz üzre, yorumlar tek satır `//` olabileceği gibi birden çok satır da olabilir `/* .. */`.
4
4
Genelde yorum satırları kodun nasıl ve niçin çalıştığını anlatmak için kullanılır.
5
5
6
-
İlk görüşte yorum yapmanın gereklilik olduğu aşikardır. Fakat programlama yeni başlayanlayanlar bunu ilk önce genelde yanlış anlamaktadırlar.
6
+
İlk görüşte yorum yapmanın gereklilik olduğu aşikardır. Fakat programlama yeni başlayanlar bunu ilk önce genelde yanlış anlamaktadırlar.
7
7
8
8
## Kötü Yorum
9
9
@@ -51,7 +51,7 @@ function asalSayilariGoster(n) {
51
51
for (let i =2; i < n; i++) {
52
52
*!*if (!asalMi(i)) continue;*/!*
53
53
54
-
alert(i);
54
+
alert(i);
55
55
}
56
56
}
57
57
@@ -109,18 +109,18 @@ function addJuice(kap) {
109
109
```
110
110
Tekrardan söylemek gerekirse nelerin olup bittiğini yorum değil, fonksiyonun kendisi söylemeli.Ayrıca kod yapısı fonksiyonlar şeklinde ayrık olduğunda daha düzgün olur. Her fonksiyonun ne argüman aldığı ne geri döndürdüğü bellidir.
111
111
112
-
Gerçekte neyin olup bittiğini söyleyen yorumu tamamen çıkarmak olanaksızdır. Bazen karmaşık algorimalara olabilir. Bazen akıllıca yapılmış kısayollar olabilir. Fakat genel olarak kod basit ve kendi kendini açıklayıcı olmalı.
112
+
Gerçekte neyin olup bittiğini söyleyen yorumu tamamen çıkarmak olanaksızdır. Bazen karmaşık algorimalar olabilir. Bazen akıllıca yapılmış kısayollar olabilir. Fakat genel olarak kod basit ve kendi kendini açıklayıcı olmalı.
113
113
114
114
115
115
## İyi yorum
116
116
117
117
Peki, fonksiyonun ne yaptığını anlatan yorumlar kötü ise, hangi yorumlar iyi?
118
118
119
119
Mimariyi tanımla
120
-
: Üst seviyede bileşenlere genel bakış, nasıl birbirleriyle iletişim kurdukları, farklı durumlarda akışın nasıl değişeceği gibi konular anlatılmalıdır. Kusaca kuş bakışı kodun ne yaptığını anlatmalısınız. Bununla ilgili şema diline [UML](https://tr.wikipedia.org/wiki/UML) bakabilirsiniz. Kesinlikle üstünde çalışılmaya değer.
120
+
: Üst seviyede bileşenlere genel bakış, nasıl birbirleriyle iletişim kurdukları, farklı durumlarda akışın nasıl değişeceği gibi konular anlatılmalıdır. Kısaca kuş bakışı kodun ne yaptığını anlatmalısınız. Bununla ilgili şema diline [UML](https://tr.wikipedia.org/wiki/UML) bakabilirsiniz. Kesinlikle üstünde çalışılmaya değer.
121
121
122
122
Fonksiyon kullanımını dökümante etme
123
-
: Fonksiyonu dökümante edebilmek için standart özel bir yazım vardır[JSDoc](http://tr.wikipedia.org/wiki/JSDoc). Fonksiyon: kullım, parametreler, dönen değer.
123
+
: Fonksiyonu dökümante edebilmek için standart özel bir yazım vardır[JSDoc](http://tr.wikipedia.org/wiki/JSDoc). Fonksiyon: kullanım, parametreler, dönen değer.
124
124
125
125
Örneğin:
126
126
```js
@@ -135,7 +135,7 @@ Fonksiyon kullanımını dökümante etme
135
135
...
136
136
}
137
137
```
138
-
Bu yorumlar gize bu fonksiyonun amacının ne olduğunu koda bakmadan anlatır.
138
+
Bu yorumlar bize bu fonksiyonun amacının ne olduğunu koda bakmadan anlatır.
139
139
140
140
Bu arada [WebStorm](https://www.jetbrains.com/webstorm/) gibi editörler size JSDoc yazma konusunda yardımcı olur. Otomatik olarak kodu kontrol edebilir.
Copy file name to clipboardExpand all lines: 1-js/03-code-quality/04-ninja-code/article.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -61,7 +61,7 @@ Harika görselin belirli bir formu yoktur.
61
61
```
62
62
63
63
Bir kelime seçerken soyut olmasına önem verin. Örneğin
64
-
While choosing a name try to use the most abstract word. Like `obj`, `data`, `value`, `item`, `elem`vs.
64
+
Bir isim seçerken en soyut kelimeyi kullanmaya çalışın. `obj`, `data`, `value`, `item`, `elem`gibi.
65
65
66
66
-**Kusursuz değişken ismi `data`** nerede isterseniz kullanın. Gerçekten de tüm değişkenler *data* tutmuyorlar zaten, değil mi?
67
67
@@ -192,7 +192,7 @@ Sonrasında dışta bulunan `kullanici` değişkenine bakacak ve `kullaniciBilgi
192
192
193
193
Bazı fonksiyonlar hiçbir şey değiştirmiyormuş gibi görünür. Örneğin `hazirMi()`, `izinKontrol()`, `tagbul()` gibi. Hesaplamaları yapıp veriyi geri döndürdüğü ve bunun dışında bir değişiklik yapılmadığı tahmin edilsin. Diğer bir deyişle "yan etkisi" olmadığı.
194
194
195
-
**En güzel kurnazlık bunlara kendi görevleri dışında "işe yarar" bir eylem yaptırın**
195
+
**En güzel kurnazlık bunlara kendi görevleri dışında "işe yarar" bir eylem yaptırın**
196
196
197
197
İş arkadaşınızın yüzündeki şaşkınlığı düşünebiliyor musunuz? `hazirMi`,`kontrolEt`, `bul...` gibi fonksiyonlar bir şeyleri değiştiriyor. Gerçekten de sınırları zorlayan bir yöntem.
0 commit comments