Code Smells: Błędnie rozumiana odpowiedzialność klas

Dzisiejszy wpis będzie wyjątkowo o dwóch code smellsach, które łączy wspólny mianownik – źle rozumiany zakres odpowiedzialności klasy. Rozbieżna zmiana Pierwszy – Rozbieżna zmiana – objawia się niezgodnością klasy z pierwszą zasadą SOLID czyli zasadą pojedynczej odpowiedzialności, którą można przedstawić tak: “Wszystkie zmiany w danej klasie powinny wynikać tylko z jednego powodu”. W kodzie, w […]

DSP2017: Wprowadzenie do biblioteki Pandas w kontekście przygotowania modelu

Biblioteka Pandas jest open-source’owym narzędziem do analizy danych przeznaczonym dla Pythona. Udostępnia wszystkie niezbędne operacje potrzebne do pracy z modelem w uczeniu maszynowym. Poniżej opiszę kilka podstawowych funkcji i struktur danych, które można wykorzystać w kontekście przygotowania modelu. Wczytywanie danych: Pandas posiada mnóstwo metod służących do wczytywania danych z różnych źródeł. Nazwy tych metod zwykle wyglądają […]

DSP2017: Przygotowanie modelu – raport 2

Przyszedł czas na trochę bardziej konkretną pracę z danymi. Ostatnio pisałem, o przygotowaniu modelu – dzisiaj też będzie o tym ale w kontekście pracy nad moim projektem. Gwoli przypomnienia – dane nad którymi pracuję pochodzą ze strony kaggle.com, a dokładnie stąd. Są one w formacie csv, i do ich pierwszej obróbki (czyli zanim zostaną wczytane do […]

Relacja z konferencji Boiling Frogs 2017

25 lutego we Wrocławiu odbyła się druga edycja konferencji o intrygującej nazwie Boiling Frogs. Sama konferencja dotyczy szeroko rozumianej idei software craftsmanship. Jak na stosunkowo krótką obecność na mapie imprez IT, przytłacza rozmachem (przynajmniej na papierze) i aspiruje do miana jednej z większych w naszym kraju. W tym roku: trzy ścieżki tematyczne, trzydziestu jeden prelegentów i tyleż […]

Dlaczego powinniśmy pisać dobry kod, a nie tylko działający

Nie jest to regułą, ale często z punktu widzenia pracodawcy (zwłaszcza gdy pracodawca nie sprzedaje naszych programów tylko sam z nich korzysta) praca programisty polega tylko na dostarczaniu działającego oprogramowania. Trudno się z tym nie zgodzić, bo faktycznie taki jest stawiany przed nami cel.  Niedziałające oprogramowanie nie byłoby nikomu potrzebne, chyba że samym programistom by mogli […]

Krótki opis MVVM Light Messenger’a

Framework MVVM Light udostępnia funkcjonalność pozwalającą na łatwą wymianę informacji między obiektami, szczególnie w przypadku modułowej budowy aplikacji. Jest za to odpowiedzalna klasa Messenger (ewentualnie nasza własna klasa, implementująca interfejs IMessenger). Głownym, i chyba najbardziej istotnym, efektem jej użycia, jest zmniejszenie sztywnych powiązań między widokami modelu. Messenger jest implementacją wzorca projektowego Mediator. Ogólnie wygląda to […]

Wzorce złożone: MVVM

Kolejnym wzorcem złożonym jest Model-View-ViewModel . Jest on najmłodszym (najnowszym?) wzorcem z trójcy do której należą jeszcze MVC i MVP.  Pierwotnie miałem napisać o nim, jak Pan Bóg przykazał, w trzecim wpisie (żeby chronologia się zgadzała 😉 ) ,po przemyśleniach wskoczył jednak na drugie miejsce z dwóch powodów. Po pierwsze: Jego koncepcja różni się, według […]

Wzorce złożone: MVC

Model-View-Controller to wzorzec złożony, którego przeznaczeniem jest podzielić aplikację na trzy odseparowane od siebie warstwy: Warstwę modelu: zawierającą bardzo często klasy POCO/POJO itp., oraz logikę biznesową. Warstwę widoku:  jest to po prostu interfejs użytkownika – wizualizacja danych z modelu. Warstwę kontrolera: odbierającą żądania użytkownika(z widoku) i przekazującą je               […]

Krótko o złożonych wzorcach z rodziny Model-View

Członków rodziny Model-View zalicza się do wzorców architektonicznych, jak i do wzorców projektowych. Dlaczego? Ponieważ w pewnym stopniu dyktują sposób budowy architektury systemu, a z drugiej strony wpływają  (pozostawiając jednak dużo swobody) na rozwiązania na poziomie kodu. Wzorce złożone, jak sama nazwa wskazuje, są zwykle zbiorem kilku wzorców projektowych zaprzęgniętych do wspólnej pracy, ku wyższemu […]

Testy jednostkowe: wzorzec AAA (lub po prostu 3A)

Pierwszy wpis techniczny. Krótko i na temat :). Post jest kierowany do początkujących adeptów sztuki testów jednostkowych. 3A jest wzorcem postępowania podczas pisania testu. Jeżeli o nim nigdy nie słyszeliście, a pisaliście już trochę testów, to na pewno go i tak znacie :). Akronim AAA rozwijamy w Arrange(aranżacja) Act(akcja) Assert(asercja). Gdy piszemy test pierwszą czynnością jest zazwyczaj […]