Dziś kolejny wpis z serii SOLID. W poprzednim wpisie opisałem zasadę otwarte-zamknięte. Idąc po kolei – dziś opiszę literkę I. Liskov Substitution Principle (LSP) – można przetłumaczyć jako zasadę podstawienia Liskov. W największym skrócie zasada ta mówi, że korzystanie z funkcji klas bazowych musi być także dostępne w przypadku podstawienia instancji klas pochodnych.
Sztuka programowania 2940 dni, 2 minuty temu 228 źrodło rozwiń
W poprzednim wpisie opisywałem zasadę pojedynczej odpowiedzialności. Kontynuując – dziś opiszę drugą literkę w mnemoniku SOLID – literkę O. Open-Closed Principle (OCP) – można dosłownie przetłumaczyć jako zasadę otwarte-zamknięte. W największym skrócie zasada ta mówi, aby kod tworzyć taki, by był zamknięty na modyfikacje, ale otwarty na nowe rozwiązania.
Sztuka programowania 2953 dni, 19 godzin, 32 minuty temu 228 źrodło rozwiń
~ MJ 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ż.
Sztuka programowania 3020 dni, 10 godzin, 23 minuty temu 247 źrodło rozwiń
Today I’ll show you a quite nice example of the Strategy pattern from a real project I was working on some time ago.
Sztuka programowania 3035 dni, 5 godzin, 48 minut temu 197 źrodło rozwiń
Czemu o tym piszę? Ostatnio czytając internety i sięgając pamięcią do moich doświadczeń doszedłem do wniosku, że czasem ktoś usprawiedliwia przez YAGNI pisanie mniej elastycznego kodu. Nawet, jeśli sam rozumie dlaczego pisanie takiego kodu jest dobre.
Sztuka programowania 3257 dni, 9 godzin, 20 minut temu 286 źrodło rozwiń
Pierwsze dwa to jedne z ulubionych (a może dla niektórych znienawidzonych) skrótów w świecie IT. Trzecie to zagadnienie, które jest trochę jak UFO wszyscy o nim mówią, ale mało kto widział. Dzisiaj krótko, ale istotnie na ten temat w Social Cooking.
Daj się poznać 2016 3262 dni, 10 godzin, 50 minut temu 287 źrodło rozwiń
O czym mówi kolejna z reguł SOLID, czyli zasada pojedynczej odpowiedzialności i jakie ma zastosowanie w kodzie biblioteki easyGALib.
Daj się poznać 2016 3279 dni, 49 minut temu 89 źrodło rozwiń
O czym właściwie mówi jedna z zasad SOLID - zasada segregacji interfejsów i jak ma się to do ilości interfejsów w projekcie easyGALib.
Daj się poznać 2016 3297 dni, 8 godzin, 36 minut temu 159 źrodło rozwiń
Zasada odwracania zależności - co to jest i jakie jest jej wykorzystanie w projektowaniu architektury oprogramowania takiego jak biblioteka easyGALib.
Daj się poznać 2016 3305 dni, 37 minut temu 201 źrodło rozwiń
Zasady SOLID Zasady SOLID: Odwracanie zależności Kamil Jóźwiak No Comments Wszystko powinno być tak proste, jak to tylko możliwe, ale nie prostsze. Albert Einstein Co ma wspólnego kopanie rowów z zasadami SOLID? A to już zależy od podejścia. Jako programista często przenoszę zagadnienia ze świata realnego do kodu. Tym razem będzie odwrotnie, wszystko w imię zrozumienia ostatnią z zasad SOLID – zasady odwracania zależności. Poznanie wzorców projektowych wraz z całym...
Sztuka programowania 3336 dni, 20 godzin, 12 minut temu 571 źrodło rozwiń
Na tą książkę zwróciłem uwagę, dzięki pytaniu K.Cebuli na naszej grupie na portalu www.facebook.com. To był chyba grudzień 2014r. i akurat amazon.com miał promocję na tą książkę. Recenzje miała dobre, wydawcę również (Microsoft), a tytuł brzmiał zachęcająco. Kupiłem więc tą książkę w formie ebooka, załadowałem na mojego kindla i w wolnym czasie ją sobie "trawiłem".
Introduction to Dependency Injection Sooner or later all of us will hear acronym SOLID. Some friend of us will whisper us that our code should be SOLID. The letter ,,D” is abbrevation of „Dependency Inversion” which means:High-level modules should not depend on low-level modules. Both should depend on abstractions.Abstractions should not depend upon details. Details should depend upon abstractions. Another importan term is IoC (Inversion Of Control). In software engineering, inversion of ...
Sztuka programowania 3962 dni, 12 godzin, 39 minut temu 136 źrodło rozwiń
Zgodnie z obietnicą wypada przedstawić drugi z rezultatów inspiracji wynikłej ze swoistego dialogu (diaBlogu ;) ) pomiędzy Krzysztofem Morcinkiem a mną. Tym razem skupię się na następującym fragmencie jego wpisu ...
Sztuka programowania 4100 dni, 9 godzin, 7 minut temu 166 źrodło rozwiń
Swojego czasu zachwalałem wytrawność kodu i zapraszałem do jego degustacji. Pocieszające jest, że nikt z tego powodu nie był zdegustowany, a wręcz przeciwnie – niektórych zainspirowałem. Nie ukrywam, że lubię być inspiracją, a już uwielbiam, kiedy wynikiem tejże inspiracji jest z kolei zainspirowanie mnie. Nic tak bowiem nie pomaga poszerzaniu wiedzy, jak wymiana poglądów. W przypadku, który mam zamiar omówić, moja inspiracja jest podwójna. Na razie jednak skupię się na jednym jej aspekcie. Krzysztof Mor...
Sztuka programowania 4102 dni, 4 godziny, 55 minut temu 239 źrodło rozwiń
Me z .NET tete-a-tete » Nadeszła pora na cykl publikacji: „Historia pewnej refaktoryzacji”. Część 1.
Dawno, dawno temu, kiedy graficzne środowisko Windows zaczęło pretendować do miana systemu, powstały także środowiska dla programistów realizujące ideę RAD, czyli Rapid Application Developmnent, co w tłumaczeniu na polski oznaczało szybkie tworzenie aplikacji. W Windows – początkowo – istniały dwa takie środowiska: Visual Basic i Delphi. Po jakimś czasie pojawiły się kolejne. Ale nie to było istotne, a fakt, że nieświadomie narodził się także nowy styl programowania...
Sztuka programowania 4439 dni, 11 godzin, 39 minut temu 98 źrodło rozwiń
Wyobraźmy sobie taką sytuację: jest sklep internetowy, podczas składania zamówienia system wylicza rabat – przy zamówieniach 500-1000 zł 5%, powyżej 1000 zł 10%, powyżej 5000 dodatkowo darmowa przesyłka. Brzmi znajomo?
Architektura 4696 dni, 11 godzin, 10 minut temu 258 źrodło rozwiń
Jestem fanem interfejsów jak to wcześniej już pisałem, zatem dzisiaj będzie temat łatwy i przyjemny o interfejsach właśnie. W sam raz na ciężki po długo weekendowy poniedziałek. Interface Segregation Principle mówi, że klient nie powinien być zmuszany do implementowania interfejsów, których nie używa. Z tego wynika, że interfejs powinien być minimalistyczny lub po prostu możliwie chudy. Idealnie by było, gdyby miał jedną metodę a poważnie, można by tutaj parafrazować Single Responsibility Principle i p...
Architektura 4705 dni, 44 minuty temu 210 źrodło rozwiń
Od młodego uczą nas, że każdy kwadrat jest prostokątem. Później uczymy się programować i zaczyna się tragedia. Matematycznie kwadrat jest specyficznym przypadkiem prostokąta programistycznie już nie bardzo.
Architektura 4705 dni, 44 minuty temu 242 źrodło rozwiń
Zasada odwracania zależności głosi, że moduły wysokopoziomowe nie powinny zależeć od modułów niskopoziomowych. Obie grupy modułów powinny zależeć od abstrakcji. Innymi słowy abstrakcje nie powinny zależeć od szczegółowych rozwiązań, to one (rozwiązania) powinny zależeć od abstrakcji. Użyte w treści reguły pojęcie abstrakcji należy interpretować jako klasę abstrakcyjną lub interfejs. Jak widać pozostaje tutaj swoboda wyboru jednego z tych dwóch bytów...
Architektura 4705 dni, 3 godziny, 27 minut temu 180 źrodło rozwiń
Po Single Responsiblity Principle najważniejsza (moim zdaniem) zasada programowania obiektowego – Dependency Inversion Principle. Mówi ona, że obiekty powinny być zależne od abstrakcji a nie od konkretnej klasy. A po ludzku, w żadnej definicji funkcji i w żadnej deklaracji zmiennej nie powinniśmy używać nazwy klasy. Zamiast tego powinniśmy używać interfejsy albo klasy abstrakcyjne czyli zamiast private IPerson _owner; public bool ValidateOwner(IPerson personToValidate) { //..... } piszemy private IPe...
Architektura 4712 dni, 3 godziny, 45 minut temu 196 źrodło rozwiń