SOLID, DRY, KISS

Jest w życiu wiele zasad, reguł, którymi się kierujemy. Zazwyczaj nie podążamy jednak ślepo za nimi. Wyciągamy z nich to co jest nam w konkretnej sytuacji najbardziej potrzebne. W programowaniu również. Najbardziej znane są trzy:

  • SOLID:
    • S – Single Responsibility (pol. pojedyncza odpowiedzialność)
    • O – Open – Closed (pol. otwarte – zamknięte, kod otwarty na rozszerzanie, zamknięty na modyfikacje)
    • L – Liskov Substitution (pol. podstawianie Liskov*)
    • I – Interface Segregation (pol. segregacja interfejsów)
    • D – Dependency Inversion (pol. odwracanie zależności)
  • DRY – Don’t Repeat Yourself (pol. Nie powtarzaj się)
  • KISS – Keep It Simple Stupid (pol. Nie kombinuj głuptasie)

Oczywiście, można za nimi ślepo podążać. Wziąć np. SOLID i ściśle się tego trzymać. I jest to bardzo dobra decyzja. Pytanie, czy zawsze?

Weźmy np. zasadę DRY – Don’t Repeat Yourself – piszemy kod, który jest reużywalny, nie powtarzamy logiki zawartej w jednym miejscu w aplikacji, w innym. Tylko, że z tego rodzą się czasem klasy/metody potwory. Okazuje się, że mają wiele odpowiedzialności, skomplikowaną strukturę – tylko po to, żeby nie powtórzyć się w innym miejscu.

I tu mamy problem – jest to świadome naginanie reguły KISS – Keep It Simple Stupid – która mówi o tym, żeby kod był tak prosty, jak to tylko możliwe. Ta z kolei jest ściśle powiązana z TDD, w którym powinniśmy pisać tylko tyle kodu, ile jest potrzebne do tego, żeby nasz test przechodził.

Wniosek nasuwa się jeden – nie istnieje srebrna kula. Nie ma idealnego scenariusza, w którym weźmiemy garść złotych myśli (nasze reguły) i mamy gotowy przepis na sukces. Trzeba pamiętać o tym, żeby nie mieć klapek na oczach. Należy umiejętnie żonglować poszczególnymi zasadami, żeby osiągnąć satysfakcjonujący, końcowy rezultat.

* Edited

2 uwagi do wpisu “SOLID, DRY, KISS

  1. 1. Czy „srebrna kula” to synonim „złotego środka?
    2. Liskov była kobietą.
    3. Da się stosować DRY i nie tworzyć klas o wielu odpowiedzialnościach (S). Te zasady są komplementarne.

    1. 1. Nie. „Złoty środek” to wyważone, obiektywne spojrzenie na konkretny problem – unikanie skrajności. „Srebrna kula” to lek na wszystko, skrajność – wszystko co jest „srebrną kulą” jest dobre, wszystko co nie – złe.

      2. Powiem Ci, że naprawiłeś w pewnym stopniu mój świat – całe życie myślałem, że to był mężczyzna. Naprawdę.

      3. Tutaj chodziło mi o naginanie KISS przy jednoczesnym, ślepym stosowaniu DRY.

Zostaw komentarz

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj /  Zmień )

Zdjęcie na Google+

Komentujesz korzystając z konta Google+. Wyloguj /  Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Wyloguj /  Zmień )

Zdjęcie na Facebooku

Komentujesz korzystając z konta Facebook. Wyloguj /  Zmień )

Connecting to %s