PHP, Node.js, C#
Logika, którą zakładałem jako podstawa do mojego projektu została już zaimplementowana i przeszła już pierwszy refaktor. W miarę dobrze to wygląda, udało się osiągnąć 100% pokrycia kodu (chociaż w ogóle mi na tym nie zależało ;-)), ale pewnie jeszcze coś poprawię w niedalekiej przyszłości ? Teraz nadchodzi czas aby dokonać już wyboru częsci infrastruktury do […]
W moim pierwszym poście związanym z Jekyll’em pisałem o tym, że GitHub wspiera tylko kilka oficjalnych pluginów, a własne skrypty i gemy innych użytkowników są pomijane ze względów bezpieczeństwa. Ostatnio opisywałem sposób na stworzenie stron z kategoriami przy pomocy kolekcji Jekyll. Teraz chciałbym aby dla każdego z tagów używanych w postach po kliknięciu w nie […]
W końcu udało mi się uporać z główną częścią logiki aplikacji, czyli pobieraniem kolejnej karty z pudełka. Temat nie był skomplikowany, ale trzeba było znaleźć odrobinę czasu żeby przy tym przysiąść i pokryć wszystkie przypadki użycia. Okazało się, że piękna kwietniowa niedziela okazała się idealnym dniem aby to zaimplementować ? Dzisiejszy post będzie bardziej teoretyczny, […]
Gulp jest narzędziem automatyzującym często powtarzające się zadania, związane z procesem tworzenia oprogramowania. Co mam dokładnie na myśli? Przykładem może być: kompilacja plików LESS/SASS do CSS, konkatenacja i minifikacja plików JavaScript, budowanie archiwum z artefaktami gotowymi do wdrożenia na „produkcji”, uruchamianie testów wraz z generowaniem raportu (np. z pokrycia kodu testami jednostkowymi). Przykłady zastosowań można […]
Miałem ostatnio potrzebę serializacji obiektów do formatu JSON. Nie potrzebowałem rozbudowanych bibliotek, a tym bardziej wprowadzania kolejnych zależności do projektu. Mam nieodparte wrażenie, że w każdym z projektów w których pracuje, jesteśmy krok od Dependency Hell. Na szczęście do prostych zadań, świetnie spisuje się dostarczony w PHP (od wersji 5.4 wraz z modułem JSON) interfejs […]
Tegoroczna konferencja 4developers za nami, uważam ją za bardzo udaną, a głównie dzięki temu, że wyciągnąłem wnioski z mojego udziału na Boiling Frogs i przygotowałem swoją agendę już wcześniej. Oczywiście w trakcie konferencji było trochę „adżajl” bo zdarzyło się, że uczestniczyłem w niektórych innych prelekcjach niż zakładałem ? Moja ścieżka badass.js (Bottega IT Minds) Z […]
Niedawno, w jednym z realizowanych projektów zaistniała potrzeba sprawdzania czy dostarczony przez klienta końcowego dokument JSON jest prawidłowy pod względem struktury. Nie potrzebowaliśmy walidacji na poziomie poprawności wartości (np. czy identyfikator kategorii faktycznie występuje w naszym systemie). Ważny był dla nas fakt, aby schemat dostarczonych danych w formacie JSON był taki jakiego sobie życzymy. Musiał […]
W jednym z pierwszych postów, w których opisywałem rejestrację użytkowników dałem krótką informację, że użyłem klasy RegistrationService do kontrolowania całego procesu, jednak wtedy nie zagłębiłem się w temat mocniej. Może to i dobrze, bo całe zagadnienie „dojrzało” w mojej głowie i teraz, kiedy dodałem już więcej serwisów postanowiłem zmienić jego nazwę na RegistrationUseCase i podobnie […]
Read Model w projekcie Auditor wykorzystuje bibliotekę Doctrine DBAL. Umożliwia ona połączenie z bazą danych (w przypadku tego projektu – MySQL) oraz wykonywanie zapytań SQL. Pomijam tutaj warstwę Repository, Entity – ona ma swoje zastosowanie dla Write Model. W Read Model używam czystych zapytań SQL po wykonaniu których otrzymujemy dane w postaci tablicy asocjacyjnej. W […]
W najbliższy poniedziałek (03.04) odbędzie się kolejna konferencja 4Developers. Osobiście jeszcze nigdy nie byłem na tej konferencji, więc w tym roku postanowiłem to zmienić i zamówiłem bilet kiedy od razu kiedy pojawiły się w sprzedaży. Ilość ścieżek i prezentacji jest ogromna więc nie chcąc popełnić błędu z konferencji Boiling Frogs, o którym pisałem w mojej […]
W mojej przygodzie programistycznej wspierałem zespoły projektowe w tworzeniu aplikacji w oparciu o różne platformy, a co za tym idzie również różne języki programowania i frameworki. Dzięki temu poznałem kilka (jak nie kilkanaście) sposobów na „układanie” struktury plików. W projektach .NET bardzo podoba mi się podział solucji na projekty, a później dowolność w ich układaniu […]
Od ostatniego postu w aplikacji Krauza nie pojawiło się nic nowego pod względem technicznym. Zaimplementowałem możliwość dodawania nowych kart. Proces jest bardzo podobny do rejestracji użytkowników, która została opisana w poprzednim poście. Był to przy okazji dobry moment aby poprawić wcześniej dodane elementy. Tym razem rozszerzę trochę informacje o encjach i zastanowimy się czy w […]
W większości projektów w których mam przyjemność pracować, wykorzystywana jest relacyjna baza danych MySQL. Niektóre z baz osiągają rozmiary kilku GB i odtwarzanie ich stanu na lokalnym środowisku wymaga pewnej gimnastyki. Narzędzia GUI wspierające zarządzanie bazą danych oferują importowanie oraz eksportowanie jej zawartości. Jednak zaimplementowane mechanizmy (m.in. narzędzie MySQL Dump) niejednokrotnie nie potrafią poradzić sobie […]
d3.js to fantastyczna biblioteka pozwalająca na wizualizację danych. Idealnie sprawdza się do tworzenia wykresów i trudno obecnie znaleźć konkurencję. Myślę, że jej popularność może obrazować prawie 62 tyś. zdobytych gwiazdek na repozytorium. Dzisiejszym postem nie chcę opisywać podstaw jak tworzyć wykresy z wykorzystaniem tej biblioteki bo w internecie można znaleźć tego mnóstwo. Chciałbym przedstawić jaki […]
W projekcie Auditor podjąłem decyzję o wdrożeniu wzorca CQRS. Rozdzielając write i read model. W tym artykule skupię się na opisaniu implementacji w projekcie write modelu – Commands. CQRS Command Command jest żadaniem w systemie, żądaniem którego efektem jest zmiana stan systemu. W implementacji możemy rozdzielić dwie główne odpowiedzialności Command jako struktura danych, obiekt immutable […]
PHP, Node.js, C#
Na co dzień Software Engineer. Fascynat programowania, architektury, metodyk zwinnych i dobrych praktyk w szerokim ujęciu.
Polyglot Programer kochający poznawać nowe języki jednocześnie wykorzystując ich najlepsze strony. Założyciel DevEnv i współautor podcastu Dev:Cast.
After Hours czyli gdy nie pracuje i nie robi czegoś na DevEnv - podróżnik w miejsca zapomniane, pasjonat lokalnej historii. Mocno zajarany survivalem, urbexem i militariami. Jest jednym z opiekunów schronu bojowego WAWOK w Rybniku.