• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Solid - Zasada segregacji interfejsów

Object Storage Arubacloud
0 głosów
340 wizyt
pytanie zadane 17 grudnia 2019 w Nasze projekty przez cSharpKazik Użytkownik (840 p.)
Cześć

 Chciałem się podzielić nowym artykułem na blogu. Może i tutaj kogoś zainteresuje. Tym razem o kolejnej z zasad SOLID - Interface Segregation Principle (ISP).

https://www.modestprogrammer.pl/solid-interface-segregation-principle-isp-wszystko-co-powinienes-wiedziec-o-zasadzie-segregacji-interfejsow

1 odpowiedź

+1 głos
odpowiedź 22 grudnia 2019 przez RafalS VIP (122,820 p.)
edycja 22 grudnia 2019 przez RafalS

Duży plus za omawianie zasad SOLID, ale przykłady trochę zbyt przesadzone.

Analizując przykłady, można by wysnuć wniosek, że skoro interfejsy mają być małe, to najlepiej niech zawsze mają tylko jedną metodę. Hmm, skoro to takie proste i mechaniczne, to czemu na internecie jest tak dużo artykułów o ISP? Fakt, czasem tak się da (np. Runnable) i możemy otwierać szampana, bo piszemy SOLIDny kod bez większego wysiłku. Niestety w większości przypadków nie ma tak łatwo i tego typu interfejsy będą strasznie na siłę. Tak jak IWork i IEat. Wybacz :P

Brakło mi podkreślenia, że w tym wszystkich chodzi o dobre zaprojektowanie abstrakcji i jest to naprawdę trudne. Jeśli źle ją zaprojektujesz, to potem na siłę rozbijasz interfejsy na mniejsze, żeby spełnić jakąś tam zasadę. Kiedy jednocześnie inna zasada mówi, że powinieneś maksymalizować spójność (cohesion) ¯\_(ツ)_/¯

Correct abstraction is the key to Interface Segregation Principle

ISP pozwoli Ci określić czy kod jest czysty, czy nie, ale nie za bardzo mówi jak tę mityczną czystość osiągnąć. Tutaj masz świetny artykuł, który porusza właśnie ten aspekt zasady ISP:

This principle comes naturally when you start decomposing your problem space with identifying major roles that take part in your domain. And it’s never a mechanical action. No principle can automatically lead you to the correct object model.

So ISP is a poor guidance when designing software, but an excellent indicator of whether it’s healthy or not. Don’t think about ISP when designing your software. Think about whether your abstractions are reusable and composable, and whether your objects are encapsulated and cohesive.

komentarz 22 grudnia 2019 przez tkz Nałogowiec (42,000 p.)
A mi zawsze brakuje "to tylko reguły, do których MOŻESZ, ale nie musisz się stosować" i to prawie przy każdym artykule związanym z clean code. Większość piszących jest na poziomie juniora, wszędzie wcisnę solida, drya, czy kisa. Brakuje mi zdań przysłowiowych seniorów, którzy potrafią podważyć te zasady.

Podobne pytania

0 głosów
1 odpowiedź 286 wizyt
0 głosów
1 odpowiedź 1,196 wizyt
pytanie zadane 10 października 2019 w Java przez magicznyukf Początkujący (260 p.)
0 głosów
0 odpowiedzi 218 wizyt
pytanie zadane 1 grudnia 2021 w C# przez kuba412 Początkujący (310 p.)

92,573 zapytań

141,423 odpowiedzi

319,645 komentarzy

61,959 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...