Jak zostać świetnym programistą? Czym właściwie są dobre praktyki programowania? Z których warto korzystać? Uchylimy rąbka tajemnicy. Eksperci od kodu w Altkom Software & Consulting zdradzili nam, co jest ich zdaniem ważne, aby kod był czysty.
Sztuka programowania 1345 dni, 1 godzinę, 3 minuty temu 205 źrodło rozwiń
W końcu jest⚠️⚠️⚠️ Drugi odcinek #StandardowePytaniaRekrutacyjne właśnie wjechał na Youtube. Tym razem cała masa mięcha. Czy wiesz czym jest SOLID? Rozumiesz czym jest Zasada podstawienia Liskov? Wiesz jak zastosować te wszystkie zasady w praktyce? Jeżeli masz jakiekolwiek wątpliwości to zapraszam. Wszystko wyjaśnione na przykładach. Doświadczonych kolegów też bardzo zapraszam do dyskusji. Chętnie poznam Wasze zdanie na temat przykładów.
Sztuka programowania 1808 dni, 1 godzinę, 23 minuty temu 153 źrodło rozwiń
Attributes of Clean Domain Model
Sztuka programowania 1843 dni, 1 godzinę, 4 minuty temu 127 źrodło rozwiń
Reading time ~3 minutes I’ve seen multiple people struggling with trying to mock the ILogger calls. This post will hopefully save some people from wandering this path. Here it goes:Please stop trying to mock the ILogger methods from .net core. Here is why: Most ILogger methods that we use for logging are extension methods - static methods. While mocking them is possible using Prig, or Microsoft Fakes it is not easy or pleasant. Mocking a static method boils down to replacing the code at runtime using...
Sztuka programowania 1931 dni, 2 godziny, 42 minuty temu 128 źrodło rozwiń
“Here be dragons” – czy słyszeliście kiedyś ten zwrot? Czy słyszeliście o nim w kontekście programowania albo widzieliście taki komentarz w kodzie? Tak? To współczuję – mam nadzieję, że byliście wtedy przyodziani w SOLIDną zbroję, i mieliście odpowiedni ekwipunek, żeby sobie z tymi smokami poradzić. Przede wszystkim miecz. Podobno jednym ze sposobów zwalczania smoków w kodzie jest użycie legendarnego miecza zwanego Excalibur Refactorum. Legenda głosi, że miecz ten wbity jest w skałę (gdzieś w okolicach...
Stało się, zakończyłem właśnie konkurs na blogu, związany z całą serią postów dotyczących zasad SOLID i w ramach tego postu, publikuję odpowiedzi/komentarze które były warunkiem udziału w konkursie. Publikuję również moje przemyślenia względem tych właśnie komentarzy. Myślę, że to będ...
Sztuka programowania 2039 dni, 1 godzinę, 58 minut temu 74 źrodło rozwiń
Robert C. Martin (Uncle Bob) w swoim artykule nt. Dependency Inversion Principle, skondensowanej wersji rozdziału „DIP: The Dependency-Inversion Principle” ze swojej książki pt. Agile Software Development, Principles, Patterns and Practices, opisuje „zły” design aplikacji i wprowadza pojęcie „kruchości” aplikacji. Mianowicie, kruchość aplikacji to m.in. tendencja aplikacji do psucia się w wielu miejscach, w momencie jednej małej zmiany w miejscu zupełnie nie powiązanym do miejsca gdzie zaszła zmiana. Te...
Sztuka programowania 2058 dni, 2 godziny, 10 minut temu 118 źrodło rozwiń
Dzisiaj, bez oficjalnej definicji. Jedynie wspomnę o tym, o czym – w kontekście Interface Segregation Principle – należy wspomnieć. Zasadniczo ISP mówi o „rozczłonkowaniu” dużych, wielozadaniowych kontraktów i interfejsów na mniejsze, posiadające jedną konkretną odpowiedzialność. Dzięki czemu, każdy element który konsumuje taki interfejs, ma dostęp tylko do określonej funkcjonalnośći. Intencją ISP jest utrzymanie systemu luźnych powiązań między obiektami, ułatwienie konserwacji systemu, testowania, czy ...
Sztuka programowania 2093 dni, 2 godziny, 1 minutę temu 138 źrodło rozwiń
Na początek, jak zwykle, odrobina teorii. Reguła Liskov brzmi: Funkcje które używają wskaźników lub referencji do klas bazowych, muszą być w stanie używać również obiektów klas dziedziczących po klasach bazowych, bez dokładnej znajomości tych obiektów. Jak podaje Wikipedia, zasada ta została sformułowana po raz pierwszy przez Barbarę Liskov i Jannette Wing we wspólnej pracy pt. „A Behavioral Notion of Subtyping„, zaprezentowana przez Panią Liskov w przemówieniu pt. „Data Abstraction and Hierarchy„, a s...
Sztuka programowania 2129 dni, 37 minut temu 134 źrodło rozwiń
Okazuje się, że LSP można naruszyć na wiele sposobów, czasami bardzo trudnych do wyśledzenia, a sztampowe omówienia dostępne powszechnie pomijają najważniejsze aspekty literki L z SOLID’a. Warto wspomnieć, że LSP pomaga nam również lepiej modelować biznesowy kontekst aplikacji, gdyż zmusza nas do odpowiedzi na pytania o relacje pomiędzy obiektami (mam tutaj na myśli głównie dwa ostatnie punkty: inwariant i zasadę historii).
Sztuka programowania 2129 dni, 37 minut temu 127 źrodło rozwiń
Reguła Open Close Principle mówi o tym, że klasa powinna być otwarta na rozszerzenia i jednocześnie zamknięta na modyfikacje. Zgodnie z zasadą tego cyklu – „Nie SOLID-nie„, przedstawiam jak może wyglądać klasa napisana wbrew tej regule. Przykład Skoro ostatnim razem, w przypadku reguły SRP, posłużyłem się przykładową klasą MessageProcessor, tym razem posł...
Sztuka programowania 2145 dni, 37 minut temu 142 źrodło rozwiń
Wikipedia podaje, że SOLID to ukuty przez Roberta C. Martina mnemonik. Wystarczy jednak zapamiętać, że jest to zbiór zasad jakimi powinien się kierować programista, podczas pisania kodu. Zwłaszcza w paradygmacie programowania obiektowego. Dużo się pokazuje jak na prawdę powinien wyglądać kod spełniający kryteria zawarte w poszczególnych regułach SOLIDa, natomiast niewiele się pokazuje przypadków niepoprawnego zastosowania tych reguł, lub nie zastosowania ich w ogóle. Właśnie to będzie celem tego cyklu....
Sztuka programowania 2151 dni, 22 godziny, 56 minut temu 186 źrodło rozwiń
Dzisiejszy wpis jest zainspirowany kilkoma ostatnimi przypadkami, w których widziałem bardzo rozbudowane switche w aplikacji. Utrzymanie tego kodu zaczynało sprawiać programistom spore problemy. Zapewne wielokrotnie widziałeś lub widziałaś metody, w których znajdował się jeden wielki switch, gdzie każdy case zawierał następnie zupełnie inny kod niż pozostałe przypadki. Utrzymanie tego, a w szczególności dodanie nowych przypadków zaczyna być wyzwaniem i często ...
Sztuka programowania 2170 dni, 29 minut temu 374 źrodło rozwiń
SOLID po raz setny - tym razem z przykładem oraz omówieniem osobno każdej z zasady.
Architektura 2192 dni, 2 godziny, 1 minutę temu 315 źrodło rozwiń
Jestem aktualnie w trakcie lektury „Czysta architektura” Wujka Boba. Natknęłam się w książce na część wyjaśniającą odwrócenie zależności (ostatnią z zasad SOLID) w całkiem przystępny sposób.Jak brzmi ta zasada i jak ją wytłumaczyć?
Architektura 2347 dni, 19 godzin, 19 minut temu 154 źrodło rozwiń
Ostatni wpis z serii dotyczącej SOLID czyli core zasady jeżeli chodzi o programowanie obiektowe już na blogu. Zapraszam!
Daj się poznać 2017 2740 dni, 17 godzin, 11 minut temu 128 źrodło rozwiń
Zapraszam do kolejnego wpisu z cyklu wpisów skupiających się na zasadzie SOLID czyli core zasadzie jeżeli chodzi o programowanie obiektowe.
Daj się poznać 2017 2755 dni, 19 godzin, 15 minut temu 123 źrodło rozwiń
Już dawno nie było wpisu o mnemoniku SOLID. Zapominalskich odsyłam do poprzednich wpisów (linki na dole strony). Dzisiaj przyszedł czas na przedstawienie czwartej zasady – zasady segregacji interfejsów. Co to dokładnie znaczy? Zapraszam do krótkiej lecz treściwej lektury. Podstawą rozważań na temat tej zasady są interfejsy. Poprzez interfejs możemy rozumieć klasę abstrakcyjną z metodami abstrakcyjnymi lub zwykły interfejs jako byt programistyczny. W niniejszym artykule będę posługiwał si...
Daj się poznać 2017 2768 dni, 11 godzin, 41 minut temu 119 źrodło rozwiń
Zapraszam do kolejnego wpisu z cyklu wpisów skupiających się na zasadzie SOLID czyli core zasadzie jeżeli chodzi o programowanie obiektowe.
Daj się poznać 2017 2780 dni, 12 godzin, 29 minut temu 130 źrodło rozwiń
Zapraszam do cyklu wpisów skupiających się na zasadzie SOLID czyli core zasadzie jeżeli chodzi o programowanie obiektowe.
Daj się poznać 2017 2786 dni, 17 godzin, 29 minut temu 216 źrodło rozwiń