Geçersiz yorumlar en baştan zarar

Kodu açıklamak için yazılan herhangi bir yorumun zamanla geçersiz olması oldukça olasıdır. Zaten bu yüzden kod içerisine az ve öz yorum yazmak sanat yapmaya benzer. Zamanla geçersiz olabilecek yorumları önceden kestirip hiç yazmamaksa, öğrenilebilecek bir refleks gibidir. Yazılan her yorum, açıklamaya çalıştığı kodun bakımı için harcanan zaman kadar bakım ister. Bu da aslında kod yorumlarını […]

Kod kendini anlatmalı, yorumlar değil

Yazılım kariyerim boyunca birçok farklı geliştirici ile çalıştım, belki de hepsinin kendine özgü bir kod yorum tarzı vardı. Kimisi hiç yorum yazmazdı, kimisi ise tek satır kod için beş satır yorum yazardı. Ben de bu gam içerisinde değişe değişe kendi tarzımı oluşturdum. Bugün geldiğim nokta benim için hâlâ bir son durak sayılmaz; fakat belli bir […]

Kırık Pencereler Teorisi

Şehir merkezlerinde bazı binalar güzel ve temizken, bazıları da çürük enkazlara benzer. Neden? Suç ve kentsel yozlaşma alanlarında uzman bazı araştırmacılar büyüleyici bir tetik mekanizması keşfettiler. Öyle ki bu mekanizma temiz, zarar görmemiş ve dolu bir binayı çok kısa bir süre içerisinde sahipsiz bir harabeye çevirebiliyor. Kırık bir pencere. Azımsanmayacak bir süre içerisinde tamir edilmeyen […]

Argümanlar birer çıktı malzemesi değildir

Fonksiyonun aldığı bir argümanı değiştirerek çıktı olarak vermek, temiz kodlama mantığına aykırıdır. Kodunuzu okuyan birisi, doğal olarak, girdilerin girdi, çıktıların ise çıktı olmasını bekler. Kodlama konusunda bir şey bilmediğinizi düşünün: Bir girdinin aynı zamanda çıktı olmasını bekler miydiniz? Elbette herhangi bir yazılımcının kodlama bildiğini varsayıyoruz. 🙂 Dolayısıyla da herhangi bir yazılımcı aradaki farkı bulabilir; fakat […]

Ölü fonksiyonlara ihtiyacımız yok

Bir fonksiyon kullanılmıyorsa ölü demektir. Kullanılmayan bir fonksiyonu barındırmaksa kodu şişirmekten ve kalabalık yapmaktan başka bir işe yaramaz. Kodu şişiren her fonksiyon, bizim için çeşitli zamanlarda ekstra yük anlamına gelir: Eğer bir bug yakalamaya çalışıyorsak, kontrol etmemiz gereken bir fazla fonksiyon anlamına gelir. Eğer bir sınıfı (class) daha iyi hâle getirmek için yeniden yazıyorsak (refactor), […]

İşaret argümanları sadece kafa karıştırır

İngilizce’de flag argument denen işaret argümanları, özetle, fonksiyonun birden fazla işe yaradığını gösterir. Bir fonksiyonun birden fazla iş yapması, Single Responsibility Principle adıyla bilinen, Tek Sorumluluk İlkesi‘ne aykırıdır. Bu ilkeye aykırı olmasının kötü yanı, kısaca, bu fonksiyonu değiştirmeye kalktığımızda birden fazla çıktıyı kontrol etmek zorunda kalacak olmamızdır. Aşağıdaki örnekte görülen fonksiyon, bir işaret argümanı içeriyor: […]

Az argüman, temiz fonksiyon

Fonksiyon geliştirirken yapılan hatalardan biri, fonksiyonu çokça argümanla donatmaktır. Fonksiyona çokça argüman eklemek, her ne kadar fonksiyonu çok işlevli gösterse de kodun kirlenmesine sebep olur; fazlaca argümana sahip bir fonksiyonu değiştirmeye çalıştığınız her seferde kodun işleyişini bozmanız çok olasıdır. Gelin, şimdi aşağıdaki örnek üzerinden bol argümanlı bir fonksiyonu nasıl daha temiz hâle sokarız, görelim: Yukarıdaki […]