Z długiem czy bez długu

Z tematu dług technologiczny zrobił się całkiem spory cykl. Mimo, że nie wszystkie aspekty zostały poruszone, to myślę, że poruszone zostały wszystkie najważniejsze jego aspekty zatem nadszedł czas na odpowiedzenie sobie czy da się realizować projekty bez długu. Odpowiedź krótka brzmi NIE. Jeśli w każdym aspekcie będziemy korzystali z wszystkiego Więcej…

Common Reuse Principle–czyli jeśli używasz jednej klasy to używasz wszystkich

Zasada Common Reuse Principle mówi, że klasy w pakiecie/assembly są ponownie używane wspólnie. Jest to konsekwencja Reuse Release Equivalence Principle z której wynika, że klient posiada referencje do całej biblioteki a nie pojedynczej klasy. Z tego zaś wynika, że jeżeli polega na jednej klasie (wykorzystuje jedną klasę)  to może wykorzystywać Więcej…

Common Closure Principle – czyli o coś porządkowaniu

Sporo czasu poświęciłem na elektronikę i mimo tego, że nie byłem i nie jestem przesadnie pedantyczny to tranzystory i rezystory zawsze miałem uporządkowane w klasterach z posklejanych pudełek po zapałkach lub woreczkach strunowych. Takie postępowanie powodowało, że zawsze wiedziałem gdzie szukać tego jednego rezystora, który właśnie potrzebowałem. Takie segregowanie nie Więcej…

Open Close Principle czyli jak zarobić ale się nie narobić.

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? Napisane, przetestowane, zapłacone. Ale teraz klient (zleceniodawca/kierownik/project owner/właściciel tego sklepu) mówi, że chce dodać jeszcze jedną opcję: 30tego listopada darmowa Więcej…

Interface Segregation Principle czyli interfejs powinien być jak modelka–przeraźliwie chudy

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ć Więcej…

Kwadrat jest prostokątem czyli Liskov Substitution Principle (LSP)

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. Metoda ustawiająca szerokość wywołana dla prostokąta powinno ustawić jego szerokość a w przypadku kwadratu? W przypadku kwadratu oczekujemy, że ustawienie szerokości ustawi również Więcej…

Koncepcja elastycznej architektury

Wyobraźmy sobie, że cała aplikacja nad którą chcemy pracować zbudowana jest tak, że nie ma żadnych referencji do bazy danych, żadnych referencji związanych ze sposobem wyświetlania, żadnych okienek, stron www… nic. Tylko klasę, która mogła by wyglądać tak: Plus takiego podejścia to możliwość wymiany sposobu przechowywania danych na dowolne inne Więcej…