Kod olağandışı koşullarda dahi doğru çalışmalı

Bir kod parçasının doğru çalışmasını sağlamamız gerektiği aşikâr. Çoğu zaman kod yazarken yalnızca olağan koşulları düşünüyoruz. Doğal olarak yazdığımız kod da doğru çalışıyor — tabii olağan koşullarda. Fakat bu sistemde bir problem var: Hayat her zaman olağan koşullarda ilerlemiyor. Bir otomobil ürettiğimizi düşünelim. Dünyanın geri kalanını unutun; diyelim ki bu otomobil sadece Türkiye’de kullanılacak. Meteorolojiye […]

Beklenebilecek davranışları yerine getirin

Eğer bir sınıf (class), bileşen (component) ya da paket (package) gibi gizli olmayan (public) sistemler kodluyorsanız, sistemden beklenen davranışları kodlamanız sisteminizi daha anlaşılır yapacaktır. Bu, sınıflar için bir fonksiyon olabilir. Ya da bir bileşen oluşturuyorsanız, içinde olması beklenebilecek bir sınıf da olabilir. Biliyorum, böyle anlatınca oldukça soyut geliyor; fakat şöyle düşünün: Hangi dilde kod yazarsak […]

İsimler yan etkilerden bahsetmeli

Tek Sorumluluk İlkesi’ni gözetmek için yapılabilecek en iyi şeylerden biri, bir elemana birden fazla sorumluluk yüklememektir. Bir değişkenin, fonksiyonun ya da sınıfın (class) tek görevi olmalıdır. Fakat yine de, bazen bunun aksini uygulamamızın daha mantıklı olacağı durumlarla karşılaşabiliriz. Böyle bir durumda yapılacak en iyi şey, elemanın birincil göreviyle birlikte ikincil görevini de anlatan bir isim […]

Uzun etki alanı için uzun isimler kullanın

Etki alanı (scope), iki süslü ayraç (curly brackets) arasında bulunan alanı isimlendirmek için kullanılır. Etki alanlarını baz alarak isimlendirme yapmak bize belli açılardan yarar sağlar: Örneğin, eğer etki alanı küçük bir fonksiyondan bahsediyorsak, kısa değişken isimleri kullanmak fonksiyonun anlaşılabilirliğini pek etkilemez. Öte yandan etki alanı ne kadar büyükse, değişken isimleri de aynı derecede detaylı olmalıdır. […]

Muğlak olmayan isimler kullanın

Yazılımda isimlendirmeye büyük önem vermemizin sebebi, isimlendirmenin doğru kullanıldığında bizi büyük zahmetten kurtarmasından kaynaklanıyor. Örneğin bir fonksiyonu doğru isimlendirdiğimiz zaman, o fonksiyonun ne yaptığını görmek için içindeki koda bakmamıza gerek kalmaz. Bu da bize hem zaman kazandırır, hem de mental kapasitemizi gereksizce harcamamızın önüne geçer. Muğlak olmayan isimlerden önce, muğlaklık nedir onu konuşsak sanırım daha […]

Mümkün olduğunca standart terimleri kullanın

İsimleri anlamayı kolaylaştırmanın bir yolu var: Hâli hazırda kullanımda olan veya bir standarda sahip isimleri kullanmak. Bu tarz isimlerin de kendi ismi var. 🙂 Biz bunlara terim diyoruz. Terimler, bir şekilde ya fazlaca kullanıldıklarından, ya da diğer isimler yerine kullanılmaları mantıklı olduğundan dile otururlar. Standart terimleri kullanmak, kodumuzun başkaları tarafından daha rahat okunmasını sağlar. Kendi […]

Soyutlamanın seviyesine göre isimlendirme yapın

Soyutlamalar (abstraction), nesne yönelimli dillerin üç temel taşından biri. Diğer ikisi kalıtım (inheritance) ve kapsülleme (encapsulation) ama onlardan bu yazıda bahsetmeyeceğiz. Soyutlama yaparken çoğu zaman nasıl bir somutlama (concretion) yapacağımızı da biliriz. Örneğin telefon için bir soyut sınıf (abstract class) ya da arayüz (interface) yazacaksak: Bu arayüzü oluştururken aklımızda nasıl somutlamalar kullanacağımız da vardır: Bu […]

Açıklayıcı isimler kullanın

İsimlendirme, programlamanın belki de en önemli adımıdır. Elbette değişkenlere, fonksiyonlara ya da sınıflara ne isim koyacağınız, kodunuzun nasıl çalışacağını etkilemez. Sonuçta kodunuz bir derleyici (compiler) ya da bir yorumlayıcı (interpreter) tarafından bilgisayarın anlayabileceği bir dile çevrilir. Fakat kodunuzda kullandığınız doğru isimlendirme teknikleri, kodunuzu insanlar tarafından anlaşılabilir hâle getirir. Göreceksiniz ki, bir kod parçasını anlaşılabilir kılmak, […]

Kodu yorum içerisine alarak devreden çıkarmayın

Bir kod parçasının çalışmasını artık istemiyorsanız, en iyi yöntem onu silmektir. Bazı yazılımcılar, artık çalışmasını istemedikleri bu kod parçasını aşağıdaki şekilde yorum içerisine alıyorlar. Çoğu zaman bunun sebebi, o kod parçasını kaybetmekten korkmak oluyor. Halbuki bir versiyon kontrol sistemi (örneğin git) kullanıyorsanız, o kod parçasına her zaman ulaşabilirsiniz. Versiyon kontrol sistemleriyle bir kodu geri getirebilme […]

Yorumun kalitesi, kodun kalitesi kadar önemlidir

Yazılımcılar olarak ürettiklerimizle gurur duymak bizim için bu işin getirdiği ek faydalardan biri. Ne de olsa hiç yoktan yeni bir şey yaratıyoruz ve bu yarattığımız şeyin çalıştığına tanık oluyoruz. Bundan daha keyifli ne olabilir ki? Ürettiklerimize ek olarak, nasıl ürettiğimizin de önemi var. Hele ki yazdığımız kodun oldukça şık ve zarif olduğunu düşünüyorsak, yarattığımız somut […]