Yandex Metrica
Clean Code: Least Astonishment Prensibi - Yasin Sunmaz

Yasin Sunmaz

Kodladıkça değişen bir dünya...

Clean Code: Least Astonishment Prensibi

21.04.2022 yasinsunmaz 553 0

Clean Code ve SOLID konuları ile birlikte bilmemiz gereken bir diğer prensip Principle of Least Astonishment'dir. Principle of Least Astonishment En Az Şaşkınlık Prensibi olarak bilinir. Bu prensip genel anlamda vurguladığı şey: Her zaman az şaşırtıcı olanı yapmak. Sistem çoğu kullanıcının ya da geliştiricinin bekleyeceği şekilde davranmalıdır. Bu ilkenin daha geniş bir uygulaması, bir sistemin bir parçasının veya bileşeninin, kullanıcıların ondan beklediği şekilde davranması gerektiği söyler. Başka bir deyişle, kullanıcılar şaşırmamalı, ürkütülmemeli veya sistemin farklı davranışları sergilemesi beklenmemelidir.

Clean Code: Least Astonishment Prensibi

Geliştirici koda baktığında ya da test ettiğinde alakasız bir durum ile karşılaşmamalı beklenen durumlara hazır olmalıdır. İşte bu noktada prensip adından da anlaşılacağı gibi her zaman az şaşırtıcı olan işi yapmayı söyler. Gerekli bir özelliğin şaşkınlık faktörü yüksekse, özelliği yeniden tasarlamak gerekebilir. Aşağıdaki görselde bu durumu tasvir etmek için bir örnektir. İlk baktığınızda portakal görüyorsunuz fakat içinin kivi olması kullanıcıyı şaşırtır. İşte bu prensip bunun olmaması gerektiğini herkesin ortak anlayacağı şaşırmayacağı şekilde kod geliştirmemiz gerektiğini belirtir.

Biraz daha sektörden örnekler vermek gerekirse aşağıdaki gibi iki butonu görüyorsunuz. Seçim hakkınız olsa hemen hemen herkes B butonunu seçecektir. Çünkü genel alışılmış olan odur. Aksi durumda ise siz A butonunu kullandığınızda kullanıcılar bunu gördüğünde şaşkınlık içerisinde olması muhtemeldir. İşte bu durum Principle of Least Astonishment şaşkınlık prensibi olarak geçmektedir. Şaşkınlık her zaman en az seviye olmalıdır.

Butonlar

En Az Şaşkınlık İlkesi'nin diğer yüzü, yüzeysel olarak benzer, ancak gerçekten biraz farklı yapmaktan kaçınmaktır. Bu durum oldukça tehlikelidir çünkü görünüşteki aşinalık yanlış beklentiler doğurur. Bir şeyleri hemen hemen aynı yapmak yerine bazı belirgin farklı özellikler ile geliştirme yapmak çoğu zaman daha iyidir.

En Az Şaşkınlık İlkesine Uymak İçin

  • Yazdığınız kodda beklenilen sonuçları vermesine özen gösterin.
  • Yapılan iş geliştiricileri şaşırtmamalıdır.
  • Beklenen duruma hazır olunmalıdır.
  • Şaşkınlık faktörü yüksek ise kodunuzu yeniden gözden geçirmeniz gerekebilir.
  • Bazen beklenilen alışılmış durumların yerine küçük değişiklikler ile geliştirme yapmak daha iyi sonuç verebilir.

Clean Code'a Giriş adlı yazımı da okumanızı tavsiye ederim.

Diğer Prensipler:

Clean Code: KISS Prensibi

Clean Code: DRY Prensibi

Clean Code: YAGNI Prensibi

Kaynak:

https://medium.com/@myelmarc/principle-of-least-astonishment-efd5214b44a9

https://kidscodecs.com/principle-of-least-astonishment/

Umarım faydalı olmuştur. İyi çalışmalar dilerim.

  • Yorum yapabilmek için giriş yapmalısınız. Giriş yapmak için tıklayınız.

Diğer Yazılar

Clean Code: High Cohesion Low Coupling

17.05.2022 yasinsunmaz 999 0

Clean Code içinde bahsedeceğimiz bir diğer konu ise "High Cohesion Low Coupling" yani "Yüksek Birliktelik ve Düşük Bağımlılık"'tır. &O...

Clean Code: İsimlendirmeler

27.04.2022 yasinsunmaz 670 0

Merhabalar Clean Code ile ilgili yazılarıma devam ederken biraz da örneklerin olduğu bir yazı yazmak istedim. İyi ve kötü örnekler üzerinden fark...

Clean Code: YAGNI Prensibi

20.04.2022 yasinsunmaz 1232 0

Clean Code ve SOLID konuları ile birlikte bilmemiz gereken bir diğer prensip YAGNI(You Ain’t Gonna Need It)'dir. Bu prensip genel anlamda vurguladığı şey: İhtiy...

Clean Code: DRY Prensibi

19.04.2022 yasinsunmaz 1086 0

Clean Code ve SOLID konuları ile birlikte bilmemiz gereken bir diğer prensip DRY(Don’t Repeat Yourself)'dir. Bu prensib genel anlamda vurguladığı şey: Kendini tekrar...

RedisConnectionException Hatası ve Çözümü: AbortOnConnectFail=false

31.07.2023 yasinsunmaz 1550 0

Redis, popüler bir açık kaynaklı veri yapısı sunucusudur ve günümüzde birçok uygulama tarafından kullanılmaktadır. Ancak, bu tür veri tabanla...

ASP.NET Core Web API'de Parametre Bağlama Yöntemleri: FromQuery, FromBody ve FromRoute

12.07.2023 yasinsunmaz 2093 0

ASP.NET Core web API projeleri, istemcilerden gelen verileri API metotlarıyla etkileşimde bulunmak için kullanılır. Bu verileri doğru bir şekilde almak ve işlemek içi...

Deployment Stratejileri (Blue Green, Rolling Update/Rollback) Nedir?

23.06.2023 yasinsunmaz 1488 0

Yazılım geliştirme sürecinde, uygulamaları güncellemek ve yeni sürümleri piyasaya sürmek önemli bir adımdır. Ancak, kullanıcıların kesintisiz hizmet a...

SonarQube Kurulumu: Adım Adım Kılavuz

18.06.2023 yasinsunmaz 2315 0

SonarQube, açık kaynaklı bir statik kod analizi platformudur ve geliştiricilere kod kalitesini, güvenliğini ve performansını iyileştirmeleri için yardımcı olur. ...

Active Directory LDAP İle Kullanıcı Kimlik Doğrulama .NET

05.12.2022 yasinsunmaz 3173 0

Active Directory LDAP ile kullanıcıyı belirli bir filtre üzerinde arama veya kullanıcının kimliğini doğrulama işlemleri yapabilmekteyiz. Bu LDAP protokolünde DirectorySer...

SOLID Yazılım Prensipleri

26.11.2022 yasinsunmaz 989 0

SOLID prensipleri yazılım geliştirmede başlarda anlayıp uygulaması zor olsa da buna uyarak kod geliştirmenin faydasını zamanla görebilirsiniz. Yazdığınız kodlarda sonradan yap...

Regex, Regular Expressions Genel Kullanımı

03.08.2022 yasinsunmaz 2688 0

Bir çok yazılım dilinde bazı kontroller için Regex ifadeler ihtiyaç duyabiliyoruz. Bunların en başında e-posta, telefon ve web site geliyor. Bunların doğruluğu...

Visual Studio'da Aynı Anda Birden Çok Proje Çalıştırma

21.05.2022 yasinsunmaz 4305 0

Katmanlı mimari projelerimizde ya da bir web sitenin kullanıcı arayüzü ve admin dediğimiz yönetici ekranları aynı uygulama içerisinde geliştirebiliyoruz. Admi...