Principle Of DRY ve Principle Of WET Nedir? ∞

Principle Of DRY ve Principle Of WET Nedir?

code dry and wet

Yazılımda kod yazarken bir mimari, bir düzen içerisinde kodları veya kod bloklarını yerleştirdiğimizi bilmemiz gerekir. Burada bizlere “algoritma ve programlama, yazılım mimarisi gibi konular” yardımcı oluyor. Programlamada genellikle class (sınıf) tanımlarken, değişken tanımlarken, bu kodu tekrar kullanacağımızı bildiğimiz için class ve değişken gibi tanımlamaları kullanırız. Burada asıl amacımız değişkene atadığımız değeri tekrar uzun uzun yazmaktan kaçınmak, bir nevi enerji ve zaman maliyetini minimuma getirmektir. Kimse aynı kodu yazmaktan hoşlanmaz. Yoksa bu “kimse aynı kodu yazmaktan hoşlanmaz” cümlesi WET prensibini benimseyenler için yanlış bir cümle mi oldu? Bu bağlamda DRY ve WET prensibini öğrenmenin asıl vakti geldi.

DRY Prensibi Nedir?

DRY Prensibi: DRY açılım olarak “Don’t Repeat Yourself” anlamına gelir. Türkçeye çevirirsek “kendini tekrar etme” demektir. Adından anlaşılacağı üzere DRY bir kod satırını/bloğunu tekrar kullanmaktan kaçınmamızı söyleyen prensiptir. DRY, tekrar tekrar yazılan kod bloklarının oluşturacağı karmaşayı minimuma indirmek vasıtasıyla benimsenmesi gereken prensiptir. DRY prenibine göre, her kod satırı/bloğu bir sistemde kesin bir yetkinlikle bir değişkene veya fonksiyona atamak bağlamında sadece bir defa kullanılmalıdır. Bundan sonra atadığımız o kodu “sürekli” atadığımız fonksiyon veya değişken aracılığı ile kullanacağız.

Bu prensibe göre eğer bir problem için birden farklı çözüm yolu varsa bu yollar bir noktada çelişmesi olasıdır. Şayet çelişmese dahi bir noktada değiştirilmeyen veya güncelliğini yitiren kod satırları/bloklarının, problem oluşturmayacağı kesin değildir. Özetle her kod satırı kendini sürekli güncel tutmalıdır. Aksi taktirde problem yaratması olasıdır. Mantıksal yollar bu bağlamda bu prensibe uygun olarak problem çözme aşamasında minimum karmaşa ile seçilmelidir.

DRY Prensibinin Avantajları Nelerdir?

DRY prensibinin avantajları aslına bakılırsa 4 madde ile sıralanabilir. Bunları kısaca sizlere aktaracak olursak;

Sürdürülebilirlik: Sürdürülebilirlik sağlaması DRY prensibinin kanımca en önemli avantajları arasındadır. Bu bağlamda DRY prensibinin avantajlarından olan sürdürülebilirliğin kullanılması, kod satırının/bloğunun devamlı çalışmasını, kod içerisinde oluşabilecek çakışmaları, mantıksal hataları ve aksamaları engellemeye olanak sağlar.

Okunabilirlik: Daha kolay analiz edilebilen, okunabilen sistem kodlarını yazmayı her başarılı yazılımcı ister. Özellikle büyükçe bir ekipte kod analizini gerçekleştiren ekip üyelerinin işini kolaylaştırmak bağlamında önemli bir etmendir.

Tekrar Kullanılabilirlik: Tekrar kullanılabilirlik, oluşan problemlerin çözüm sürecininde hatanın hangi sebepten oluştuğunu tespit edilmesi, problemin hangi satırdan kaynaklandığını bizlere aktarmak amacıyla, yazılan kodu tekrar kullanılabilir bir halde olması ile bizlere avantaj sağlar. Burada bizlere fonksiyon tanımlama yardımcı olabilir. Böylece aynı kodu “tekrar kullanabilir” halde yazmış oluruz, bu da DRY prensibinin asıl amacını bizlere gösteriyor.

Test Edilebilirlik: Oluşması olası problemleri, bugları bizlere bildirmesi amacıyla test edilebilirilk de DRY prensibinin önemli avantajlarındandır.

dry and wet princi

WET Prensibi Nedir?

DRY prensibinin zıttı dersek aslında hiçte yanlış bir tanım yapmış olmayız. WET prensibinin açılımı “Write Everythink Twice” dir. Türkçeye çevirecek olursak “Herşeyi İkinci Defa Yaz” anlamına gelir. Aynı kod satırını/bloğunu iki defa yazmak doğrultusunda kullanılan bu prensip, DRY prensibinin aksine bizlere çoğunlukla zaman ve enerji bakımından maliyeti arttırır. Ancak burada elbette WET prensibinin DRY prensibine göre nadiren olsa da kimi zaman daha az maliyete sahip olduğunu da unutmamalıyız.

WET prensibi, “yazmaktan mutlu oluyoruz” veya “herkesin zamanını boşa harcıyoruz” şeklinde ki ibarelerle anılır ve bu prensibin kullanılması genelde tavsiye edilmez. Eğer WET prensibini benimsememişse kimse daha fazla kod satırı/bloğu ile uğraşmak veya tekrar yazmak istemez. Çünkü algoritma ve programlamada olduğu gibi sistem büyüdükçe, kod sayısı arttıkça sistem karmaşıklaşır ve bu bağlamda işin içinden çıkılmaz bir hal alır, sonucunda ise bir problem ile karşılaşıldığında, DRY prensibinin aksine, “test edilebilirlik“ ve “okunabilirlik” daha zor hale gelir.

Hangi Prensibi Benimsemeliyiz, DRY Mı? Wet Mi?

Anlatılanlara bakılacak olunursa herkesin DRY prensibinin daha mantıklı bir seçenek olduğunu düşüneceğini anlayabiliriz. Ancak burada sizlere tekrar söylemeliyim ki WET prensibi genel olarak biraz yanlış anlaşılıyor. Bu bağlamda kimi zaman bazı kod satırlarını/bloklarını copy-paste yapmak bir fonksiyona atamaktan veya bir değişkene atamaktan daha kolay olabilir. Bunun sonucu olarak da aynı kod bloğunu veya satırını harfi harfine aynı işlev için kullanmış oluyoruz. Yani burada bahsetmek istediğim bir iki defa aynı kodu kullanmak yani copy-paste yapmanın bir nevi DRY prensibinin benimseyen kişiler için, kaçamak yapmak kimi zaman sizlere avantaj sağlar.

Burada hangi prensibi benimseyeceğiniz tamamen sizlerin seçimine kalmıştır. Ancak iki prensibinde, en azından DRY prensibinin daha avantajlı durduğunu göz önünde bulundurarak iki prenispten de faydalanmanın doğru olduğnu düşünüyorum. Kısacası WET prensibini bazen kullanmanın bizlere yarar sağlayacağını göz önünde bulundurmalıyız. Bu başlığı özetleyecek olursak, DRY prensibi, genellikle bizleri maliyetten (zaman ve enerji) kurtardığı gibi nadiren de olsa WET prensibine göre daha çok maliyete sebep olabilir. Bu bağlamda sizlere tavsiyem iki prensibinde avantajlarını göz önünde bulundurarak iki prensibi de yerine göre kullanmak sizleri minimum maliyetle maksimum proje veya ürün kalitesine ulaştıracaktır.

Öncelikle okuduğunuz için teşekkür ederim, bu makalede sizlere; DRY Prensibi Nedir? DRY Prensibinin Avantajları Nedir? WET Prensibi Nedir? Hangi Prensibi Benimsemeliyiz, DRY Mı? Wet Mi? Başlıkları altında DRY ve WET prensibi hakkında fikir sahibi olduğumuzu umuyorum.

  1. Live Support
    11:28 11 Nisan 2022 11:28

    Faydalı bilgi icin teşekkurler. Emeğinize sağlık. Ücretsiz canlı destek hizmetleri için de bir yazı hazırlıyabilir misiniz? http://www.supsis.com

Bir yorum bırakınız...

*

Yapay Zeka Destekli Asistanlar

Yapay Zeka Asistanlar Hayatımızı Nasıl Değiştiriyor?

Teknoloji dünyasında yapay zeka (AI) destekli asistanlar, son yıllarda hızla popülerlik kazandı. Siri, Google Asistan, Alexa ve daha birçok platform, kullanıcıların hayatlarını kolaylaştırmak ve ...
github

GitHub Nedir ve Neden Önemlidir?

GitHub, yazılım geliştiricilerin kodlarını depolamak, yönetmek ve diğer geliştiricilerle işbirliği yapmak için kullandıkları popüler bir platformdur. Bu platform, sadece kod deposundan çok daha fazlasını ...
World Wide Web

World Wide Web Nedir? WWW Hakkında Her Şey

World Wide Web (WWW), genellikle kısaca Web olarak adlandırılan, internet üzerindeki birbirine bağlı sayfaların oluşturduğu devasa bir bilgi sistemidir. Basitçe söylemek gerekirse, her gün ...
teamseak

TeamSpeak Sunucusu Kurma Rehberi: Kapsamlı Bir Anlatım

TeamSpeak, özellikle oyuncular ve ekipler arasında sesli iletişimi sağlayan popüler bir platformdur. Kendi sunucunuzun olması, size daha fazla özelleştirme ve kontrol imkanı sunar. Bu ...
discord

Discord’a DNS ile Nasıl Girilir? Kapsamlı Rehber

Discord'a DNS ile Giriş Yapmak: Adım Adım Anlatım Discord, oyuncular ve topluluklar için popüler bir iletişim platformudur. Ancak, bazı durumlarda erişim engelleriyle karşılaşabilirsiniz. Bu ...
win11

Windows 11 Sistem Gereksinimleri: Bilgisayarınız Hazır mı?

Windows 11, Microsoft'un en yeni işletim sistemi olarak büyük bir heyecanla karşılandı. Ancak bu yeni işletim sistemine geçebilmek için bilgisayarınızın belirli özelliklere sahip olması ...
mendix nedir

Mendix: Hızlı ve Verimli Uygulama Geliştirmenin Anahtarı

Mendix nedir? Mendix, kuruluşların görsel bir arayüz kullanarak, karmaşık kod yazmaya gerek kalmadan web ve mobil uygulamalar geliştirebilmelerini sağlayan bir düşük kod geliştirme platformudur ...
mavi dil hastalığı

Mavi Dil Hastalığı: Hayvanları Tehdit Eden Sessiz Katil

Mavi Dil Hastalığı Nedir? Mavi dil hastalığı, özellikle sığır, koyun, keçi gibi geviş getiren hayvanlarda görülen ciddi bir viral enfeksiyondur. Hastalık, adını hayvanların dilinde ...
kuantum bilgisayar

Kuantum Bilgisayarlar: Geleceğin Bilgisayarları

Kuantum bilgisayarlar, klasik bilgisayarların işlem gücünü aşan, yeni nesil bilgi işlem cihazlarıdır. Kuantum mekaniğinin ilginç özelliklerini kullanarak, karmaşık problemleri çok daha hızlı çözebilirler. Klasik ...
keyword

Anahtar Kelime Analizi Nedir, Nasıl Yapılır?

İnternet kullanıcılarının internet üzerinde arattıkları terimleri bulmak ve bunları SEO stratejilerinde kullanmak için gerçekleştirilen çalışmaya anahtar kelime analizi denir. Web sitesi oluşturmak isteyenlerin anahtar ...