S.O.L.I.D.ne programowanie – część 0, czyli wstęp

Krzysiek Jelski natchnął mnie do napisania serii postów o zasadach programowania obiektowego. Występują one pod nazwą S.O.L.I.D., która to nazwa pochodzi od pierwszych liter tych zasad:

  • Single Responsibility Principle
  • Open-Close Principle
  • Liskov Substitution Principle
  • Interface Segregation Principle
  • Dependency Inversion Principle

Ten wpis będzie tylko wstępem, w którym omówię, czym są te zasady, skąd się wzięły i dlaczego są ważne.

OOP i programiści

Jeżeli zapytamy statystycznego programistę, z czym kojarzy mu się dobry kod OO, to najprawdopodobniej będzie mówił o wzorcach projektowych. Co poniektórzy wspomną o zasadach projektowania, enkapsulacji i hermetyzacji, dziedziczeniu, interfejsach. Niewielu wspomni o zasadach S.O.L.I.D.
Nic w tym dziwnego, bo zasady te nie są sformalizowane tak jak wzorce. Dobrze określił je Krzysiek na spotkaniu, mówiąc, że są raczej przysłowiami. Ja bym raczej nazwał je powiedzeniami informatyków. Każda z tych zasad odnosi się do jakiegoś bardzo ogólnego zagadnienia, czy to projektowego, czy to architektonicznego, czy też funkcjonalnego. Zazwyczaj do wszystkiego po trochu.
Jako że nie ma tu formalizacji, więc nie można mówić o miejscach i sposobach stosowania czy problemach, które można rozwiązać. Jeżeli jednak przyjrzymy się wzorcom projektowym, to dojdziemy do wniosku, że wszystkie one zawierają w sobie te nieformalne zasady.

Plan pracy

Przez kolejne dni będę omawiał poszczególne zasady. Jedna zasada na jeden wpis.

9 myśli na temat “S.O.L.I.D.ne programowanie – część 0, czyli wstęp

Napisz odpowiedź

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax