Clean Code Ya da Temiz Kod – Kaliteli Kod
Clean Code, ya da Temiz Kod – Kaliteli Kod, uzunca bir süredir etrafta dolaşan etkileyici tamlamalardan birisi. Malum, böyle terimlere “buzzword” diyorlar İngilizce’de.
Google’da “Clean Code” araştırması yapınca karşınıza ilk iki sırada Robert C. Martin’in kitabı ve değişik bir tarzda hazırlanmış “Clean Code” eğitim videolarının bulunduğu Clean Coders sitesi geliyor. Martin’i ben 90’lı yıllarda C++ Journal gibi dergilere yazdığı nesne-merkezli programlamayla ilgili yazılarından tanıyorum. Kendisi bu dünyanın en eskilerindendir, 1964 yılında programlama başladığını kendisi ifade ediyor. Şu anda da “Clean Code” yaklaşımının öncülüğünü yapıyor.
Clean Code’un ne olduğu ile ilgili bazı kısa tanımlar var. Örneğin Bjarne Stroustrup “elegant and efficient” yani “zarif ve etkin” derken Grady Booch “simple and direct” yani “basit doğrudan” diyor. Michael Feathers ise biraz daha uzun bir şekilde “dikkatli, önem veren birisi tarafından yazılmış görünen koddur” diyor Clean Code için. Bu konuda belki de en uzun tanımı Dave Thomas yapıyor:
“Temiz kod, orijinal yazarından başka developer tarafından okunabilir ve geliştirilebilir. Birim ve kabul testlerine sahiptir. Anlamlı isimleri vardır. Bir şeyi yapmanın pek cok yolundan ziyade tek bir yolunu saglar. Açık-seçik olarak tanımlanmış minimal bağımlılıklara sahiptir ve temiz ve minimal bir API sunar. Kod okunabilir olmalıdır, çünkü sadece programlama diline bağlı kalınırsa, her türlü gerekli bilgi kodda açık bir şekilde ifade edilemez.”
Clean Code’u ben ise şöyle tanımlıyorum:
Yazılım asli yapısı itibariyle karmaşıktır ve yazılımda aslolan geliştirmek değil değiştirmektir. Yazılım geliştirmek zordur, değişebilen yazılım geliştirmek daha da zordur. Clean Code, zaten zor olan kodlamayı, insan yapımı zorluklarla daha da zorlaştırmamaktır. Bu anlamda Clean Code, teknolojiden ve sektörden bağımsız olarak basit, odaklı, tam ve güvenilir kod yazmaktır.
Clean Code ile ilgi bir seminer ve bir de eğitim hazırladım. Seminerleri bedelsiz olarak yazılımcılara, kurumlarında 1,5 saatlik bir sunumda anlatıyorum. Bu sunumun PDF dosyasına buradan ulaşabilirsiniz. Eğer bu semineri siz de almak isterseniz benimle irtibata geçebilrisiniz. Arzu ederseniz sonrasında daha geniş eğitim için de görüşebiliriz.
Clean Codelu günler dilerim 🙂
Toplam görüntülenme sayısı: 3240
Kaan HAS
17 Eylül 2014 @ 11:55
Hocam sizde zamanında alt seviye dillerle uğraşmış biri olarak. Dile bağımsız bir şey bu konu ama mesela embded sistemlere yazılım yaparken bellek sıkıntısından dolayı her şeye imkan vermiyor. Hele de assembly değilde C, C++ gibi bir dille yazmaya kalkıştığımızda bizi zorluyor bazen karmaşıklığa tabi sadece metotlar içindeki işlemlerde. Bunlar göz ardı edilebilir mi ?
Samet ÇELİKBIÇAK
17 Eylül 2014 @ 13:45
Teşekkürler Akın hocam, güzel bir yazı ve aynı kalitede içeriğe sahip bir sunum dökümanı hazırlamışsınız. Umarım ilgilenen yazılım sektöründeki arkadaşlara faydalı olur.
Emeğinize sağlık.
Akin
17 Eylül 2014 @ 17:13
Tesekkur ederim 🙂
Akin
17 Eylül 2014 @ 17:29
Ben clean code felsefesi icinde tavsiye edilen seyelrin buyuk cogunlugunun hemen her dilde uygulanabilecegini dusunuyorum. Embedded sistemlerin getirdigi kisitlar uygulamaya engel oluyorsa, yapacak bir sey yok, makul miktarda elastikiyet zorunlu olur bu durumda. Ornegin kisa kod yazmayi Python ile daha rahat basarabiliriz ama C ile metotlarimizin biraz daha uzun olmasi kacinilmazdir.
Tesekkurler.
hakan
18 Eylül 2014 @ 10:12
Demek ki R.C. MArtin 50 yıldır yazılım geliştiren gerçek bir üstad. Bu gibi üstadlar meslek yakkında ne diyorlarsa dinlemeye değer 🙂
Akin
18 Eylül 2014 @ 11:52
Aynen oyle Hakan bey. Dizinin dibinde durmak lazim boyle ustatlarin. Daha onemlisi ulkemizde de benzerlerini yetistirmek lazim.
Selçuk GÜRAL
18 Eylül 2014 @ 20:46
Akın hocam,
Yazı ve pdf harika olmuş her zaman ki gibi..Teşekkürler
Akin
18 Eylül 2014 @ 21:15
Tesekkur ederiiiiim 🙂
Clean Code Ya da Temiz Kod – Kaliteli Kod | Mustafa YILDIRIM
22 Aralık 2014 @ 14:43
[…] “Temiz kod, orijinal yazarından başka developer tarafından okunabilir ve geliştirilebilir. Birim ve kabul testlerine sahiptir. Anlamlı isimleri vardır. Bir şeyi yapmanın pek cok yolundan ziyade tek bir yolunu saglar. Açık-seçik olarak tanımlanmış minimal bağımlılıklara sahiptir ve temiz ve minimal bir API sunar. Kod okunabilir olmalıdır, çünkü sadece programlama diline bağlı kalınırsa, her türlü gerekli bilgi kodda açık bir şekilde ifade edilemez.”Yazının Devamı İçin […]