4developers 2018 – edycja Wrocław

O wcześniejszych edycjach konferencji programistycznej 4developers odbywających się w stolicy pisałam już w poprzednich postach (4developers 2017 i 4developers 2018). W tym roku objęłam patronatem lokalną edycję 4developers w moim mieście, czyli we Wrocławiu. Będzie to ostatnia z edycji (wcześniejsze odbywają się w Gdańsku, Krakowie, Łodzi i Katowicach). Zapowiada się ciekawy zestaw prelekcji. Całą agendę można znaleźć …

Czytaj dalej 4developers 2018 – edycja Wrocław

Wzorzec adapter – cz. 2 adapter obiektu

We wcześniejszym wpisie opisałam działanie wzorca adapter klasy. Dla przypomnienia: jest on wykorzystywany na przykład wtedy, gdy klient zdefiniuje swoje wymagania na podstawie jakiegoś interfejsu. Wystarczy, że dostarczy klasę, która implementuje ten interfejs i dziedziczy po istniejącej klasie. I tyle. Co jednak, gdy klient nie przygotuje takiego interfejsu? Tylko dostarczy jakąś klasę spełniającą wymagania? Wtedy należy …

Czytaj dalej Wzorzec adapter – cz. 2 adapter obiektu

Wzorzec adapter – cz. 1 adapter klasy

Cel W książkach można przeczytać, że głównym celem tego wzorca jest zaadaptowanie (przystosowanie) istniejącej klasy do formy, którą oczekuje klient. Klientem w tym przypadku jest dowolny obiekt, który wywołuje nasz kod i wymaga odpowiedniego interfejsu. Teoria może być łatwa, ale trzeba jeszcze umieć zastosować ją w praktyce. Stwórzmy więc przykładową klasę BoardGameService. Jak widać, wykorzystujemy …

Czytaj dalej Wzorzec adapter – cz. 1 adapter klasy

Architektura projektu – 4 typy

Kończąc czytać książkę "Czysta Architektura" Wujka Boba, natknęłam się na rozdział poświęcony organizacji elementów aplikacji. Przedstawił on 4 przykłady różnych architektur tego samego systemu. Zacznijmy od pierwszego typu architektury na przykładzie mojej aplikacji BoardGamesNook. Pakowanie w warstwy - 3 warstwy Tak pokrótce wygląda schemat architektury w mojej aplikacji. Mamy kontroler BoardGameController, który używa interfejsu IBoardGameService. …

Czytaj dalej Architektura projektu – 4 typy

Zmiana historii: rebase w GitBashu

W ostatnim wpisie opisywałam, jak używać komendy merge do łączenia zmian. Dzisiaj czas na kolejną komendę - rebase. Początek historii będzie taki sam, jak poprzednio. Dwóch autorów (autor1, autor2) pracuje na dwóch osobnych branchach (branch1, branch2). Każdy z nich wprowadza zmiany w tym samym pliku UserController. Autor1: zmiany na branch1 Zmiany na tym branchu polegały …

Czytaj dalej Zmiana historii: rebase w GitBashu

Merge w GitBashu

Załóżmy, że mamy jakiś branch master_xmpl, który jest głównym branchem naszego projektu. Wyobraźmy sobie, że 2 osoby w tym samym czasie pracują nad różnymi funkcjonalnościami. Każda z nich utworzyła swój branch za pomocą komendy checkout z parametrem b. git checkout -b branch1 Dla przykładu będą to branch1 dla osoby autor1 i branch2 dla osoby autor2. Autor1: zmiany …

Czytaj dalej Merge w GitBashu

Magiczne słówko WITH w SQL

Wyobraźmy sobie następujący scenariusz. Mamy jakąś bazę danych i chcemy do niej wstawić gotowe rekordy lub zaktualizować już istniejące. Załóżmy, że chcemy zaktualizować tabelę User i wstawić testowe wartości do kolumn Name i Surname. Nasz zbiór danych testowych wygląda następująco:  Chcemy wstawić te dane do istniejącej tabeli. Jak możemy to zrobić? Zwykły skrypt Możemy napisać …

Czytaj dalej Magiczne słówko WITH w SQL

Rebase interaktywny w GitBashu

Jeszcze parę lat temu, gdyby ktoś mi powiedział, że mam zrobić jakikolwiek rebase, to uciekłabym daleko. Wszelkie akcje w GitBashu napawały mnie przerażeniem. Tylko jedna komenda była dla mnie w miarę bezpieczna: git status Czemu? Ponieważ nie mogła niczego popsuć. Pokazywała tylko listę wprowadzonych zmian na aktualnym branchu. Jednak wraz z upływem czasu GitBash stał się moim …

Czytaj dalej Rebase interaktywny w GitBashu

Skąd brać pomysły na posty?

Ostatnio podczas networkingu po spotkaniu Geek Girls Carrots, na którym miałam przyjemność poprowadzić prelekcję, usłyszałam ciekawe pytanie: "Skąd masz pomysły na nowe posty? Przy regularnym blogowaniu (co tydzień nowy post) to chyba jest trudne?" Meetupy Meetupy, czyli darmowe spotkania różnych społeczności, mogą być źródłem natchnienia. Są tam prowadzone wykłady na różne interesujące tematy. Można napisać …

Czytaj dalej Skąd brać pomysły na posty?

FluentValidation – cz. 3 testy i nullowalna properta

Kończąc zbiór wpisów (część 1, część 2) dotyczących FluentValidation czas na napisanie testów. Przykładowa klasa walidatora Dla przypomnienia, tak wygląda klasa BoardGameValidator: Jako dobrzy programiści, już na wstępie, zaraz przed zdefiniowaniem takiego walidatora, powinniśmy utworzyć testy sprawdzające jego poprawność. Ważne, żeby sprawdzić, czy dla każdego sprawdzanego warunku walidator zwraca prawidłowy status (informację o błędzie lub …

Czytaj dalej FluentValidation – cz. 3 testy i nullowalna properta