PHP, Node.js, C#
Czy wyobrażasz sobie rozwijanie projektu bez repozytorium kodu? Ja teoretycznie tak – na początku swojej kariery zawodowej, przez pierwsze miesiące nie używaliśmy żadnego sposobu na wersjonowanie kodu. Najbardziej aktualna wersja znajdowała się na serwerze produkcyjnym (a przynajmniej miała się znajdować). Wszystko trwało do czasu (kwestia miesiąca, dwóch – nie pamiętam dokładnie), aż totalnie unieruchomiliśmy jeden […]
Jeśli na Twojej stronie są dostępne jakieś wykresy możesz spodziewać się tego, że prędzej czy później Twoi użytkownicy zapragną ich eksportu do pliku. Dzisiaj chciałbym opisać prosty sposób na eksportowanie wykresów narysowanych na SVG, w moim wypadku opartych o bibliotekę d3.js (ale to w sumie nie jest ważne co je namalowało ;-)) jako plik PNG […]
Klasa SplObjectStorage dostarcza dwa rozwiązania: Zarządzanie obiektami, zapewniając ich unikalność w obrębie instancji. [crayon-5bb9ae122f0ac671421976/] Dodanie tej samej instancji obiektu nie powoduje jej duplikacji w storage. Jedna instancja obiektu = maksymalnie jedna instancja w storage. SplObjectStorage to kolejka czyli bufor typu FIFO (First In, First Out). Mapowanie obiekt => dane. Ciekawsze według mnie zastosowanie, umożliwiające identyfikację […]
W pierwszym poście dotyczącym implementacji GraphQL w projekcie PHPowym opisałem w skrócie najważniejsze elementy tego narzędzia, dlatego jeśli nie masz jeszcze żadnej wiedzy na ten temat to możesz do niego skoczyć aby w szybki sposób poznać podstawy. Dzisiaj chciałbym omówić kwestię modyfikacji danych na prostym przykładzie dodania nowego elementu do bazy dancyh. Mutation Na początek […]
Często przychodzi nam pracować z różnymi dostawcami hostingu na repozytoria GIT, takimi jak Github, Gitlab czy Bitbucket. Wszystko jest w porządku kiedy do wszystkich tych serwisów możemy dodać ten sam klucz SSH, jednak czasem bywa, że muszą to być inne klucze ssh, ponieważ potrzebne jest utworzenie dwóch różnych kont na jednym serwisie. Na przykład firmowe […]
Nawiązując do umieszczonego na łamach bloga artykułu „Auditor – CQRS – Query” chciałbym rozwinąć nieco bardziej tematykę zwracania danych przez Query. W opisywanej implementacji Query, wszystkie dane były reprezentowane za pomocą tablic asocjacyjnych – pojedynczy rekord jak i również kolekcja rekordów. W taki sposób były przekazywane do warstwy wyżej. Niestety nie daje to konkretnej informacji […]
Tester webaplikacji wchodzi do baru. Zamawia piwo. Zamawia 0 piw. Zamawia 99999999999 piw. Zamawia zlew. Zamawia -1,337 piw. Zamawia 1″> piw. Zamawia aishd78hsdf. Pewnie większość z was kojarzy ten suchar, ale musiałem go tutaj wrzucić bo jest idealnym wstępem do dzisiejszego tematu :smiley:. Wszędzie tam gdzie dajemy użytkownikowi możliwość wprowadzania danych musimy liczyć się z […]
Od kilku lat głośno było o wielkich zmianach w języku Javascript, które są wprowadzane w ramach standardu ES6. Jedną z najważniejszych i najpopularniejszych zmian to nowe słowa kluczowe pozwalające na deklarowanie zmiennych. Oprócz var doszedł jeszcze const i let. W projekcie nad którym mam okazję pracować stopniowo zaczęliśmy zastępować starego dobrego var na nowe słowa […]
Aktualnie w projekcie Auditor wykorzystuję dwa typy testów automatycznych – testy jednostkowe oraz integracyjne. W obu przypadkach za uruchamianie testów, ich układ i wykorzystywane asercje odpowiada najpopularniejszy PHPowy test framework – PHPUnit. Jego autorem jest Sebastian Bergmann. Zresztą bardzo spoko gość – w 2015 roku miałem okazję uczestniczyć w warsztatach prowadzonych przez Sebastiana na konferencji […]
Rozbudowany wstęp teoretyczny do standardu GraphQL znajduje się w osobnych postach na blogu: „Wstęp do GraphQL” i „GraphQL – definicja schematu” Zachęcam do zapoznania się z tymi materiałami jeśli chcesz najpierw zrozumieć zasady tego rozwiązania, poniżej jednak znajdziesz krótkie streszczenie i wstęp do tematu. Szybki wstęp GraphQL to język zapytań, który udostępnia wspólny interfejs pomiędzy […]
Kontynuując rozpoczętą serię nt. biblioteki standardowej SPL chciałbym przedstawić funkcje wspomagające pracę z iteratorami. Pracując na co dzień z językiem PHP mamy do czynienia z iteratorami. Na początek powinniśmy sobie jednak zadać proste pytanie – czym one tak na prawdę są? Czym są iteratory? W języku PHP mamy możliwość iteracji po tablicach oraz obiektach. Wykorzystujemy […]
Chciałbym aby ten artykuł był początkiem serii postów przybliżających możliwości SPL – czyli Standard PHP Library. SPL jest zbiorem funkcji, struktur danych, iteratorów, wyjątków oraz klas do pracy z plikami. Podsumowując – zbiorem funkcji, interfejsów i klas pomagających rozwiązać typowe problemy. Jest to wbudowana biblioteka, której nie musimy instalować osobno ponieważ wraz z posiadanym interpreterem […]
Ostatnio wpadłem na pomysł aby w formie wyzwania zapoznać się z popularnym zestawem artykułów opatrzonych tytułem „97 Things Every Programmer Should Know”. Na czym to wyzwanie będzie polegało? Moim celem jest przerobienie codziennie trzech artykułów. Nie wydaje się to zbyt wygórowane zadanie, bo każdy z artykułów jest w miarę krótki. Nie chcę jednak przerabiać tego […]
Framework Symfony 3, powiązanie ścieżki (route) z kontrolerem (controller) umożliwia na dwa sposoby: adnotacje na poziomie kontrolera – czyli silne powiązanie akcja kontrolera – ścieżka, osobny plik konfiguracyjny YAML, XML lub PHP – rozluźnienie powiązania, osobny plik z definicją. W projekcie Auditor (w sumie jak i również w większości innych projektów) zdecydowałem się na definicję […]
Protokół MQTT (Message Queue Telemetry Transport) jest lekkim protokołem transmisji danych. Został stworzony w 1999 roku przez Andy’ego Stanforda-Clarka (IBM) oraz przez Arlena Nippera (Eurotech). Oparty o wzorzec Publish-Subscribe (topic-based), umożliwia komunikację pomiędzy systemami za pomocą serwera pośredniczącego. MQTT w aktualnej wersji specyfikacji (3.1.1) jest także standardem ISO/IEC (ISO/IEC PRF 20922). Ze względu na łatwość […]
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.