post-image
javascript

Czy wiesz, jak używać slice w JavaScript?

author
post-image
javascript

Czy wiesz, że w Angular 17 została wprowadzona alternatywa dla *ngIf?

author
post-image
mongodb

Czy wiesz, jaka jest minimalna liczba węzłów w MongoDB replica set?

Krótko o tym, jak działa algorytm wyboru nowego węzła PRIMARY w replice MongoDB i jaka jest rola węzłów SECONDARY.

author
post-image
javascript

Czy wiesz, że już nie musisz klonować tablic, by wykonać na nich typowe operacje?

Metody toReversed(), toSplice(), toSorted() oraz with() stanowią grupę metod operujących na tablicach. Rozszerzają tradycyjne operacje, pozwalając na uzyskanie zmodyfikowanych kopii tablic, na których zostały wywołane.

author
post-image
css

Czy wiesz, czym są container queries?

author
post-image
javascript

Czy wiesz, czym jest i jak używać Object.groupBy()?

author
post-image
rxjs

Czy wiesz, jak obsługiwać błędy w rxjs?

Biblioteka rxjs dostarcza kilka mechanizmów, które ułatwiają reagowanie na nieprzewidziane sytuacje występujące podczas procesowania strumienia danych w aplikacji. Operator catchError...

author
post-image
javascript

Czy wiesz, jak używać splice w JavaScript?

Splice to metoda dostępna dla tablicy. ozwala usunąć, zmienić istniejący element lub dodać nowy element do tablicy.

author
post-image
spring boot

Wydajne tworzenie obrazów dockerowych w Springu

Sprawdź jak zaoszczędzić miejsce budując kolejne wersje aplikacji.

author
post-image
css

Czy wiesz, czym jest i jak działa Scroll Snap?

Atrybut CSS scroll-snap-type powoduje, że scroll nie zatrzymuje się w miejscu, gdzie przestaliśmy scrollować, a przylega do elementu, który mu wskażemy.

author
post-image
mongodb

Czy wiesz, na czym polega wzorzec drzewa w MongoDB?

Dane przechowywane w bazie tworzą często większe struktury. Przykładowo, lista pracowników firmy i ich hierarchia, asortyment produktów w podziale na...

author
post-image
javascript

Czy wiesz, że można uniknąć nadmiernego użycia warunków 'if' przez wykorzystanie ternary operator i lookup table?

Niektórzy uważają, że liczba warunków `if/else` w kodzie powinna być minimalna, co oznacza, że pojedyncze instrukcje `if/else` należy zastępować operatorem ternarnym. Duża liczba warunków `if/else` skutkuje skomplikowaną strukturą i może...

author
post-image
html

Czy wiesz, czym jest dialog i jak go używać?

Okna dialogowe od dawna pełnią istotną rolę na różnorodnych stronach internetowych, jednak ich implementacja często niesie za sobą pewne wyzwania....

post-image
javascript

Czy wiesz, jak używać operatorów "?" i "!" w JavaScript i TypeScript?

Wykrzykniki i znaki zapytania mogą czasami wprawić w zakłopotanie, ponieważ dalece im w kodzie od swojego interpunkcyjnego znaczenia. Na początek...

author
post-image
mongodb

Czy wiesz, że wynikiem zapytania w MongoDB możesz zasilić bezpośrednio inną kolekcję?

MongoDB w wersji 4.2 udostępnił nowy etap potoku agregacji (ang. aggregation pipeline) - $merge. Pozwala on na zapisanie wyniku agregacji...

author
post-image
OpenTelemetry

Czy wiesz, czym jest OpenTelemetry i jak go stosować w praktyce?

Słowem wstępu OpenTelemetry to zbiór SDK i interfejsów API, który pozwala gromadzić, generować i eksportować logi, metryki i trace’y aplikacji....

author
post-image
devtools

Czy wiesz, jak wyświetlić devtoolsy na telefonie z Androidem?

Narzędzia developerskie na przeglądarce mobilnej? Tak, to jest możliwe!

author
post-image
javascript

Czy wiesz, czym jest i jak działa WebWorker?

JavaScript, który wywołujemy na naszych stronach w postaci skryptów jest jednowątkowy. Jeżeli zdecydujemy się używać go do wykonywania zasobożernych obliczeń,...

author
post-image
mongodb

Czy wiesz, jak bezprzerwowo zmienić schemat w MongoDB?

Wyobraźmy sobie konieczność wprowadzenia zmian w schemacie. Przy tradycyjnym podejściu musielibyśmy zatrzymać aplikację, dokonać migracji bazy i dopiero po jej...

author
post-image
mongodb

Czy wiesz czym jest Attribute Pattern w MongoDB?

Masz w kolekcji wiele dużych dokumentów z wieloma polami o tej samej charakterystyce? Ten wzorzec jest dla Ciebie!

author
post-image
angular

Czy wiesz co to stylePreprocessorOptions w Angular?

StylePreprocessorOptions pozwala na dynamiczne dodawanie stylów do aplikacji. Pokazujemy kawałek kodu, który to umożliwia.

author
post-image
typescript

Czy wiesz, że w TypeScript możesz łączyć typy za pomocą interpolacji ciągów znaków?

Krótki wpis Template Literal Types, czyli o łączeniu Literal Types za pomocą interpolacji ciągów znaków.

author
post-image
javascript

Czy wiesz czym .includes() różni się od .some()?

Jeśli nie wiesz, to zapraszamy do przeczytania artykułu :)

author
post-image
typescript

Czy wiesz jak używać discriminated union w języku TypeScript?

Discriminated union to połączenie takich typów, z których każdy posiada jedno wspólne pole, po którym możemy określić, z którym z nich mamy do czynienia...

post-image
mongodb

Czy wiesz, jak należy trzymać powiązane dane w jednym dokumencie w bazie MongoDB?

Ważna zasada przy projektowaniu schematu w MongoDB mówi, żeby dane, do których dostęp jest zazwyczaj wspólny, przechowywać razem. Jest to...

author
post-image
css

Czy wiesz, czym jest aspect-ratio i jak go używać?

Niedawno w przeglądarkach pojawiło się wsparcie dla nowego atrybutu w CSS - aspect-ratio. Jak nazwa sugeruje, służy on do określania proporcji elementu...

author
post-image
mongodb

Jak zmusić MongoDB do użycia indeksu bez zmiany kodu - zastosowanie index filter

Optymalizatory zapytań Optymalizator zapytań to element silnika bazy danych, który dba o to, aby zapytanie zostało wykonane w optymalny sposób,...

author
post-image
angular

Czy wiesz, jak obsługiwać błędy w Angular w scentralizowany sposób?

W Angularze istnieje ErrorHandler, jest to hook do scentralizowanej obsługi błędów. Domyślny ErrorHandler wyświetla jedynie błędy na konsoli. Jeżeli chcemy wyłapać i obsłużyć nieobsłużone błędy, należy dodać implementację ErrorHandlera...

author
post-image
java

Czy wiesz, po co stosuje się @SneakyThrows z biblioteki Lombok?

Wyjątki w Javie dzielą się na checked exceptions oraz unchecked exceptions. Unchecked exception reprezentuje błąd w logice programu, który może...

author
post-image
testcontainers

Czy wiesz, jak skonfigurować relacyjną bazę danych przy użyciu TestContainers?

Czasem w testach baza H2 nie jest wystarczająca, np. gdy używamy specyficznych dla danej bazy mechanizmów. Wtedy możemy łatwo skonfigurować TestContainers, które dostarczy nam instancje prawdziwej bazy danych na czas...

author
post-image
sekwencje

Czy wiesz, czym są sekwencje i jak ich (nie) używać?

W sql możemy utworzyć kolumnę tak, żeby jej wartość była automatycznie inkrementowana (dekrementowana), co jest przydatne zwłaszcza w przypadku klucza...

author
post-image
indexeddb

IndexedDB - narzędzie do przechowywania danych w przeglądarce

IndexedDB to wbudowana w przeglądarkę internetową baza danych typu NoSQL. Przechowuje ona dane lokalnie w przeglądarce, co pozwala na korzystanie...

post-image
css

Czy wiesz, że możesz ułatwić sobie pracę, korzystając z internetowych generatorów stylów?

Dzisiaj będzie o chodzeniu na skróty. Czasami przychodzi taki moment, że musimy dokonać karkołomnych czynów w css/scss. Zrobić jakąś ramkę,...

author
post-image
mongodb

Czy wiesz do czego służy Outlier Pattern w MongoDB?

Wzorzec ten jest stosowany, kiedy większość danych można i warto zamodelować w jeden sposób, ale dla niewielkiego odsetka dokumentów, które odstają od normy, będzie to nieakceptowalne lub niemożliwe.

author
post-image
angular

Czy wiesz, że w Angular 16 pojawią się sygnały?

Sygnały to nowa koncepcja w Angular, upraszcza ona tworzenie reaktywnych komponentów. Mogą one w przyszłości doprowadzić do usunięcia Zone.js z Angular.

author
post-image
package.json

Czy wiesz, jak zarządzać wersjami w package.json?

package.json jest plikiem, który opisuje każdy projekt oparty o Node.js. Jedną z jego najważniejszych ról jest przechowywanie informacji o zależnościach...

author
post-image
ui/ux

Figma - narzędzie do projektowania interfejsu użytkownika

Figma - jest bardzo popularnym i mocno rozwijającym się narzędziem do projektowania i prototypowania zaawansowanych interfejsów aplikacji mobilnych oraz stron...

author
post-image
Java

Dobór limitów pamięci w Javie (w kontenerach i nie tylko)

Geneza problemu Słowem wstępu: nasz projekt działa na OpenShifcie, który jest niczym innym jak Kubernetesem z dodatkowymi bajerami. Z tego...

post-image
jaxb

Czy wiesz jak poprawnie tworzyć kontekst JAXB i instancję Marshallera/Unmarshallera?

W naszych projektach często używamy JAXB w celu mapowania danych przesyłanych kopertach SOAP-owych na obiekty javowe. W tym wpisie znajdziesz wskazówki jak poprawnie wykonać takie mapowania.

author
post-image
k8s

Domowy klaster Kubernetesa na Raspberry Pi

W tym artykule pokażę jak postawić klaster kubernetesa na popularnych płytkach Raspberry Pi. Czas post pandemicznego kryzysu półprzewodników, niedoboru płytek...

author
post-image
liveness probe

Czy wiesz co to healthcheck i jak z niego korzystać?

Health check pozwala na monitorowanie działania aplikacji. Mechanizm ten w Kubernetesie pozwala sprawdzić nie tylko, czy kontener działa (czy node...

author
post-image
google cloud function

Google Cloud Functions (2nd gen) - co nowego wprowadza?

Od kilku miesięcy dostępna jest nowa generacja Google Cloud Function (2nd gen), początkowo w wersji poglądowej (public preview) a dzisiaj również w wersji ogólnodostępnej (general availability). Jakie zmiany zostały wprowadzone...

author
post-image
javascript

Czy wiesz, co to Beacon API?

Beacon API pozwala na wysyłanie asynchronicznych, nieblokujących żądań. W odróżnieniu od XMLHttpRequest czy Fetch API, przeglądarka gwarantuje wykonanie żądań, nawet gdy użytkownik zamknie przeglądarkę. Idealnie nadaje się do wysyłania analityk...

author
post-image
javascript

Czy wiesz, że w ES2021 zostały wprowadzone operatory logicznego przypisania oraz nullish coalescing?

Wersja 12 EcmaScript wprowadzona w czerwcu 2021 roku wprowadziła ciekawe, choć dość egzotycznie wyglądające operatory przypisania. Przyjrzyjmy się, jak działają.

author
post-image
Resilience4j

Czy wiesz czym są Resilience4j, CircuitBreaker, RateLimiter i inne?

Co to i po co? Aplikacja nie odpowiada, pod leży, baza padła… Chyba nikogo nie dziwi, że aplikacje czasem nie...

author
post-image
javascript

Czy wiesz, że możesz łatwo udostępnić swojego localhosta innym osobom (ngrok)?

Czasami dochodzi do takiej sytuacji, gdy chcemy komuś pokazać to, co mamy aktualnie odpalone na naszym sprzęcie na localhost. Możemy...

author
post-image
npm

Czy wiesz, czym jest i jak działa npx?

Czym jest npx? npx to przydatne narzędzie CLI (Command Line Interface) pozwalające wykonywać skrypty pochodzące z repozytorium npm bez zbędnej...

author
post-image
google cloud function

Czy język programowania i region mają wpływ na wydajność Google Cloud Functions?

W jakim języku programowania pisać funkcje w Google Cloud? Które środowisko uruchomieniowe jest najszybsze i czy ma na to wpływ region? Czy języki interpretowane mają mniejszy cold start?

author
post-image
smarthome

Inteligentny dom dla programisty, czyli DIY Smart Home

DIY dla Smart Home, z przykładami automatyzacji, treściwym przeglądem systemów i narzędzi dla inteligentnego domu.

author
post-image
transactions

Zarządzanie transakcjami w Java - jak to robić dobrze?

Czy ktokolwiek zamawiając w restauracji kawę i ciastka chciałby zapłacić za oba, a otrzymać tylko jedno? Czy do zaakceptowania byłby...

author
post-image
http

Czy wiesz, czym jest HTTP idempotency?

Właściwość pewnych operacji, która umożliwia ich wielokrotne stosowanie bez zmiany wyniku, nazywamy trudnym polskim słowem ;) - idempotentność. Częściej spotkaliście...

author
post-image
frontend

Frontend Developer

Czy Frontend Developer w Consdata robi stronki? Przeczytaj kim jest, czym się zajmuje i jak doszliśmy do obecnego kształtu tej roli. W bonusie krótki przegląd naszych projektów i opowieść dlaczego...

author
post-image
PostgreSQL

Czy wiesz czym różnią się json i jsonb w PostgreSQL?

Podstawowe różnice Podstawową różnicą pomiędzy json a jsonb jest sposób ich przechowywania. Typ json jest przechowywany jako tekst, natomiast typ...

author
post-image
javascript

Czy wiesz, czym jest Shadow DOM?

Pewnie czytając o Web Componentach dane było Ci słyszeć o Shadow DOM. Pozwala on na przyczepienie się do istniejących elementów...

author
post-image
mongoDB

Czy wiesz, jak działa Bucket Pattern w MongoDB i czemu sprawdził się w implementacji IoT Boscha albo w apkach bankowych?

Największe korzyści z używania odpowiedniego wzorca grupowania danych, czyli Bucket Pattern w MongoDB, to m.in. zwiększenie wydajności indeksów czy uproszczenie zapytań. Przeczytaj jak to wszystko zrealizować.

author
post-image
frontend

Zarządzanie stanem aplikacji frontendowej na przykładzie NgRx

W miarę rozwijania złożonych aplikacji webowych ważnym i nieoczywistym zagadnieniem staje się projektowanie przepływu informacji pomiędzy komponentami. W tym artykule poznamy jedną z implementacji architektury Redux wykorzystującej koncepcję globalnego stanu...

author
post-image
kouncil

Niezawodne dostarczanie zdarzeń w Apache Kafka oparte o ponawianie i DLQ

Dlaczego w Kafce nie ma DLQ? Zacznijmy zatem od odpowiedzi na pytanie. Większość popularnych systemów kolejkowych takich jak RabbitMQ czy ActiveMQ ma wbudowane systemy odpowiedzialne za niezawodne dostarczanie komunikatów. Dlaczego...

author
post-image
kouncil

Event Tracking, czyli jak znaleźć igłę w stogu siana

Event tracking pozwala na prześledzenie oraz wizualizację drogi danego eventu, czy też procesu, przez topiki na Kafce.

author
post-image
kouncil

Kouncil - nowoczesny frontend do Kafki

Kouncil to nowoczesny frontend do Kafki, wyposażony w wiele niezbędnych programiście funkcjonalności.

author
post-image
webrtc

Czy wiesz, że WebRTC korzysta z serwera STUN, aby umożliwić połączenie P2P?

Czy wiesz że WebRTC korzysta z serwera STUN, aby umożliwić połączenie P2P, a w ostateczności z serwera TURN aby przepuścić...

author
post-image
javascript

Czy wiesz co się dzieje, kiedy nie stawiasz średników w JS?

Każdemu zdarza się czasem zapomnieć postawić średnika na końcu linijki. Powinny to wyłapywać reguły zawarte w narzędziach takich jak TSLint,...

author
post-image
acl

Zarządzanie dostępem przy użyciu ACL (Access Control List)

Tym artykułem chciałbym zwrócić uwagę na obecność gotowej implementacji Access Control List oraz jaki konkretny problem rozwiązuje. Warto skorzystać z gotowych i dojrzałych rozwiązań, takich jak, Spring Security ACL, gdyż...

author
post-image
java

Metaprogramowanie w Javie - @Target

@Target określa, w których miejscach konstruowana przez nas adnotacja może zostać użyta. Gdy zadeklarujemy, w których miejscach kodu jest możliwe użycie adnotacji, błędne jej umiejscowienie nie pozwoli na skompilowanie kodu....

author
post-image
java

Volatile nie należy się bać

Słowo kluczowe volatile wydaje się jednym z najrzadziej stosowanych, ale też najbardziej tajemniczych i najsłabiej poznanych słów kluczowych w Javie. Do czego więc służy i czy jest się czego bać?...

author
post-image
java

Java darmowa, czy nie? - aktualizacja

Microsoft dołącza do dystrybutorów JDK. To dobry moment żeby sprawdzić, jak rozwinęła się sytuacja z wydawaniem darmowych dystrybucji od czasu, kiedy Oracle zmienił tryb licencjonowania. Pisaliśmy o tym dwa lata...

author
post-image
frontend

Micro frontends: czy współdzielić zależności?

Czy współdzielić zależności w microfrontends czy nie? Nie zawsze! Jeżeli nie natrafiłeś na problemy z rozmiarem bundli, to nie rozwiązuj teoretycznych problemów. Zanim zabierzesz się za optymalizację - oceń, co...

author
post-image
jenkins

Współdzielona biblioteka w Jenkins pipeline

W tym artykule zapoznamy się z mechanizmem bibliotek współdzielonych (Pipeline: Shared Groovy Libraries), które stanowią zależność do szeroko stosowanej wtyczki jenkins pipeline

author
post-image
http

Standard HTTP i REST - dobre i złe praktyki

Jakie są częste błędy przy doborze metod HTTP? Kiedy trzymać się standardu, a kiedy może to być problemem? O czym pamiętać projektując swoje REST API

author
post-image
cloud

Migracja aplikacji do chmury Google Cloud Platform w praktyce

W tym wpisie chciałbym przedstawić jak wygląda migracja do chmury Google Cloud Platform w praktyce. Na warsztat wezmę działającą aplikację demo, która w żaden sposób nie jest przystosowana do uruchomienia...

author
post-image
font

Wszystko, co chcielibyście wiedzieć o fontach, ale baliście się zapytać

Zacznijmy od początku. Jak poprawnie zdefiniować wielkość fontów? W większości przypadków wyboru dokonujemy pomiędzy PX, EM a REM. Przejdźmy do tego pierwszego.

author
post-image
ddd

Domain Driven Design w oparciu o Axon Framework - odpowiedzi na pytania!

Zgodnie z obietnicą, przyszedł czas odpowiedzieć na pytania, które pozostały bez odpowiedzi podczas naszego minionego eventu - Consdata Tech.

post-image
migration

Migracja schematów bazy danych

Niemożliwe jest rozwijanie aplikacji bez równoczesnego rozwijania schematu bazy danych. Tak jak podczas rozwijania naszej aplikacji, stosujemy wzorce projektowe przy...

author
post-image
intellij

Jak napisać plugin w IntelliJ

IntelliJ IDEA to obecnie jedno z popularniejszych, jeśli nie najpopularniejsze IDE dla Javy. Jedną z jego zalet jest duża baza pluginów, dostarczana przez samo JetBrains, jak i społeczność.

author
post-image
Cypress

Testy e2e z Cypress

W kwestii testów e2e, czyli takich, które sprawdzają funkcjonalność od początku do końca wezmę na warsztat całkiem młody framework - Cypress mimo że nadal dominuje Selenium.

author
post-image
java

Java Stream - przetwarzanie elementów

Java Stream API definiuje dwa rodzaje operacji, jakie możemy wykonać w trakcie przetwarzania strumieni, operacje pośrednie – intermediate, oraz operacje końcowe - terminal.

author
post-image
consdatatech

Consdata Tech Webinar - rozmowa z Marcinem Mergo o nowej formie meetupu

Consdata Tech to inicjatywa, której założeniem od początku było dzielenie się wiedzą i doświadczeniem w formie cyklicznych meetupów oraz integracja lokalnej społeczności zafascynoweanej światem Java.

author
post-image
cloud

Migracja do chmury - czyli od czego zacząć?

Pierwszym z etapów migracji do chmury Google jest etap szacowania, na którym przeprowadzona zostaje dokładna analiza istniejącego systemu oraz infrastruktury.

author
post-image
cloud

W chmurze czyli jak? O możliwych kierunkach rozwoju aplikacji chmurowych

Co to znaczy być w chmurze? Co to właściwie jest IaaS, PaaS, CaaS, FaaS? Jak przenieść się do chmury? Czy jestem już wystarczająco zachmurzony? Jeżeli nie znasz odpowiedzi na którekolwiek...

author
post-image
java

Axon - Kompleksowe testowanie aplikacji

Niniejszy artykuł jest poświęcony w pełni testom aplikacji opartej o Axona. Powszechnie wiadomo, że kod dobrze pokryty testami jest dużo bardziej podatny na rozwój - wszak nie musimy obawiać się,...

post-image
ansible

Ansible - jak uporządkować chaos?

Już od wczesnych lat studiów programistom wpaja się, aby dążyć do utrzymania eleganckiej i czytelnej struktury swoich aplikacji (KISS – Keep it simple, stupid). Doskonale w ten trend wpasowuje się...

author
post-image
java

Mikroserwisy na Axonie

Axon to framework, który czerpie garściami z Domain Driven Design (które jest poza zakresem tego wpisu), wykorzystując również nomenklaturę panującą w tym podejściu, którą także będę się posługiwał w tym...

post-image
cloud

Na co nam ta chmura?

W ostatnich latach bardzo dużo się dzieje w świecie Cloud Computing. Coraz częściej rezygnujemy z rozwiązań on-premise na rzecz platform chmurowych, migrujemy swoje infrastruktury do takich gigantów jak AWS, Microsoft...

author
post-image
tech

Tworzenie i usuwanie indeksów w bazie MongoDB na produkcji

Tworzenie oraz usuwanie indeksów, nie jest operacją trudną. MongoDB jest dokumentową bazą danych oferującą bogatą funkcjonalność i jednocześnie na tyle elastyczną, że pozwala przeprowadzać zadania administracyjne bez przerwy w działaniu....

author
post-image
java

Tomcat - model przetwarzania żądań

Tomcat jest jednym z najpopularniejszych serwerów webowych dla aplikacji pisanych w Javie. Jest podstawowym kontenerem aplikacji springbootowych. Tworząc nowy projekt często polegamy na jego domyślnej konfiguracji.

author
post-image
openid connect

O OpenID Connect słów kilka

Najpopularniejszymi standardami wykorzystywanymi do uwierzytelniania/autoryzacji są OAuth 2.0, OpenID Connect oraz SAML. O OAuth 2.0 zostało już napisanych wiele artykułów, których nie ma sensu powielać. Jednak aby przedstawić OpenID Connect,...

author
post-image
Angular

Angular APP_INITIALIZER

APP_INITIALIZER to wbudowany w Angulara InjectionToken. Pod InjectionToken można zarejestrować wartość, funkcję albo serwis. Token ten można wstrzyknąć do komponentu lub serwisu.

author
post-image
angular

Keycloak - uwierzytelnianie i autoryzacja użytkownika w aplikacji Angular/Spring Boot

Jak wykorzystać serwer Keycloak do logowania w aplikacji? Omówimy to na przykładzie gotowego projektu, który umożliwia użytkownikowi zalogowanie się do aplikacji z poziomu przeglądarki internetowej.

author
post-image
Personal Tasks

Moje własne zadania i jak się w nich odnaleźć

Większość z nas ma coś do zrobienia. Na początku owe coś jest dość ogólnie zdefiniowane, np.: “napisać wpis na bloga” czy “zaprojektować mechanizm ładowania modułów aplikacji”. Dość szybko zaczynamy rozbijać...

author
post-image
cookies

SameSite=Lax by default coraz bliżej - czy jesteś gotowy?

Same site cookies (First-Part-Only) to stworzony kilka lat temu mechanizm, który pozwala na zmniejszenie ryzyka ataków typu CSRF. Zapewnia on, że dane ciasteczko może być wysyłane wyłącznie z żądaniami zainicjowanymi...

post-image
Angular

RxJS z Angularem - programowanie reaktywne aplikacji frontendowej

Czy wiesz jak efektywniej wykorzystać bibliotekę RxJS? Pisząc aplikacje z wykorzystaniem Angulara mamy styczność z obiektami typu Observable. Na pewno zdarzyło Ci się użyć serwisu HttpClient do pobierania danych z...

author
post-image
Jasmine

Testowanie frontendu - Cz. 4 Testy jednostkowe kodu działającego asynchronicznie

Testy jednostkowe asynchronicznych aplikacji frontendowych często wydają się być zagadką dla developerów. Na szczęście twórcy narzędzi pomyśleli również o tym i dostarczyli nam narzędzia, które zdecydowanie ułatwiają pracę z testowaniem...

author
post-image
Jasmine

Testowanie frontendu - Cz. 3. Testowanie komponentów angularowych z inputami i outputami

Czas na dawkę informacji dotyczących testowania przy użyciu Jasmine. Pora skupić się na testowaniu komponentów angularowych, a w szczególności ich wejść i wyjść. Przykłady oprzemy o aplikację, która będzie składała...

author
post-image
jenkins job

Automat dodający joby do Jenkinsa

W ogarniającym nas świecie mikroserwisów skala projektów do utrzymania staje się ogromna. Każdy z tych projektów musimy przecież: zbudować, przetesować,...

author
post-image
Jasmine

Testowanie frontendu - Cz. 2. Testowanie komponentów i serwisów

Jeśli zastanawialiście się, jak rozpocząć testy komponentów i serwisu w przypadku kwestii dotyczącej testowania frontendu, to znak że ten wpis jest dla Was.

post-image
javascript

Testowanie frontendu - Cz. 1. Wprowadzenie do Jasmine - konfiguracja i przykładowe testy

Framework Jasmine jest frameworkiem służącym do testowania napisanym w duchu behaviour-driven development, nie ma dodatkowych zależności oraz, jak twierdzą twórcy, dostajemy go z bateriami, czyli powinien zawierać wszystko, co jest...

author
post-image
programming

Batchowe inserty w Hibernate - droga ku szybkości

W tym poście powiemy o przykładowej ścieżce optymalizacji wstawiania grup rekordów do bazy danych za pomocą Hibernate’a i SpringBoota z założeniem użycia spring-boot-starter-data-jpa. Skupimy się na aspektach konfiguracyjnym i diagnostycznym...

author
post-image
programming

Wprowadzenie do Zed Attack Proxy

ZAP (Zed Attack Proxy) jest opensourcowym narzędziem tworzonym przez organizację OWASP wspomagającym testy penetracyjne, które służy do znajdowania podatności bezpieczeństwa w aplikacjach webowych. Działa na zasadzie proxy, dzięki czemu pozwala...

author
post-image
programming

Kafka Companion

Stalo się standardem, że współczesne narzędzia i biblioteki dystrybuowane są z mniej lub bardziej zaawansowanym interfejsem graficznym. RabbitMQ, będący najpopularniejszym obecnie systemem kolejkowym, wita nas po zainstalowaniu przejrzystym i funkcjonalnym...

author
post-image
programming

Haproxy - mała rzecz, a cieszy

HAProxy to pakiet wolnego oprogramowania, który najczęściej pełni rolę reverse-proxy, zapewniając load-balancing i high-availability serwerów aplikacji.

author
post-image
programming

Niezawodne dostarczanie zdarzeń w Apache Kafka oparte o ponawianie i DLQ

Dlaczego w Kafce nie ma DLQ? Zacznijmy zatem od odpowiedzi na pytanie. Większość popularnych systemów kolejkowych takich jak RabbitMQ czy ActiveMQ ma wbudowane systemy odpowiedzialne za niezawodne dostarczanie komunikatów. Dlaczego...

author
post-image
angular

View Encapsulation w Angularze - czyli o kapsułkowaniu słów kilka

Tworząc komponenty w Angularze mamy możliwość zarządzania kapsułkowaniem (enkapsulacją) stylów - czyli tym jak style z jednego komponentu wpływają na inne komponenty. Zanim omówimy kapsułkowanie, wyjaśnijmy w kilku słowach czym...

author
post-image
angular

Angular - detekcja zmian strategią onPush

Każda aplikacja rozwijana odpowiednio długi czas może rozrosnąć się do ogromnych rozmiarów, a konkretniej do sporej liczby komponentów, jeżeli mówimy o aplikacji frontendowej pisanej z wykorzystaniem Angulara. Z czasem przyrost...

author
post-image
unit test

Testy jednostkowe frontendu okiem programisty full stack

Co testować na frontendzie? Niezależnie od tego jaki framework został użyty w danym projekcie, zawsze możemy z niego wydzielić komponenty. W tym artykule jako przykład użyty został Angular.

author
post-image
ux

10 praw użytecznego designu

W latach 80. Dieter Rams zagubiony w chaosie form i kolorów postanowił coś z tym zrobić i opracował 10 reguł dobrego designu, które w branży zdążyły urosnąć do rangi dziesięciu...

author
post-image
nvm

Korzyści wynikające z użycia Node Version Manager

JavaScript i cały ekosystem z nim związany jest bardzo rozbudowany i wydaje się, że wcale nie zamierza przestać się rozrastać. Można czasem usłyszeć, że tydzień, w którym nie powstał nowy...

post-image
refaktoryzacja

Przykłady refaktoryzacji na podstawie książki Martina Fowlera i Kenta Becka 'Refactoring'

Książka 'Refactoring' Martina Fowlera i Kenta Becka została po raz pierwszy wydana w 1999 roku i często określana jest jako pozycja wybitna, ponadczasowa, jako must read każdego programisty. Dodatkowo w...

author
post-image
frontend

Krótkie wprowadzenie do Custom Elements

Custom element, co to takiego? Custom Elements to jedna z zestawu czterech specyfikacji występujących pod wspólną nazwą Web Components - wspólnie pozwalają one na tworzenie własnych typów elementów DOM.

post-image
java

Java darmowa, czy nie?

End of Public Updates for Oracle JDK 8 Oracle will not post further updates of Java SE 8 to its public download sites for commercial use after January 2019. Customers...

author
post-image
frontend

Pozycjonowanie zależne od scrolla

Custom Elements to jedna z zestawu czterech specyfikacji występujących pod wspólną nazwą Web Components - wspólnie pozwalają one na tworzenie własnych typów elementów DOM.

author
post-image
consdata.tech

Podsumowanie Consdata Tech - odpowiedzi na pytania

Czy używacie platformy Kafka Connect? Jeśli tak, czy pozwalacie connectorowi na sterowanie schematem bazy danych? Jeśli nie, jakie macie podejście do ewolucji schematów?

author
post-image
event sourcing

Czy Apache Kafka nadaje się do Event Sourcingu?

Nietrudno jest natknąć się na głosy mówiące, że Apache Kafka nie nadaje się do implementacji wzorca, jakim jest Event Sourcing. Czy jest tak w istocie? W artykule tym postaram się...

author
post-image
algorytmy rekomendacyjne

Algorytmy rekomendacyjne - przykład implementacji w Pythonie

Systemy rekomendacyjne widzimy wszędzie tam, gdzie użytkownik ma styczność z ogromnymi katalogami danych, np. Amazon podpowiada nam, jakie produkty powinniśmy kupić, Netflix - jakie filmy oglądać, a Spotify - które...

author
post-image
sonarqube

Praktyczne zastosowanie webhook

Każdy programista prędzej czy później ma do czynienia z jakąś formą API (ang. application programming interface). API to określony interfejs, którym dwie niezależne aplikacje mogą porozumiewać się między sobą. W...

author
post-image
terraform

Terraform - czyli o tym, jak okiełznać chmurę od Amazona

W przypadku pracy z kodem, potrzebujemy narzędzi automatyzujących proces tworzenia a także niszczenia zasobów AWS. Wykorzystam zatem Terraform, aby pokazać, jak można to zrobić.

author
post-image
sonarqube

Monitorowanie zespołowych trendów jakości kodu

W jednym z wcześniejszych wpisów omawialiśmy już zalety i zasadność statycznej analizy kodu z pomocą SonarQube

author
post-image
aws

AWS - serverless programming

W kwestii AWS architektura serverless przenosi nas jeszcze poziom wyżej - przestajemy myśleć o maszynach wirtualnych, skupiamy się na kodzie rozwiązującym konkretne potrzeby biznesowe.

author
post-image
monitoring

Jak szybko stworzyć system monitoringu serwerów i usług

Połączenie Grafany, jako warstwy prezentacji i ostrzegania, oraz Icingi, jako narzędzia do zbierania metryk, jest dosyć łatwym i szybkim w zestawieniu systemem do monitorowania serwerów.

author
post-image
gatling

Gatling! “Odłamkowym ładuj!”, czyli jak strzelać do aplikacji

Gatling zawiera masę pomocniczych poleceń. Na stronie http://gatling.io/ dostępna jest użyteczna dokumentacja, w której w przejrzysty sposób wyjaśniono dostępne funkcje.

author
post-image
angular

Absolutne importowanie zależności w Angular CLI

Odpowiedzialny programista tworząc aplikacje przestrzega powszechnie uznanych zasad tworzenia oprogramowania. Jedną z takich zasad jest Single Responsibility Principle, która uczy nas, że każdy moduł powinien mieć jedno, jasno zdefiniowane zadanie....

author
post-image
angular

Dynamiczne dodawanie komponentów w Angular 2

Od pewnego czasu pracuję nad świeżym projektem opartym o Angular 2. Częścią projektu jest prezentowanie użytkownikowi dynamicznie generowanych elementów interfejsu. Nie jesteśmy w stanie zaprojektować z wyprzedzeniem ekranów, nie znając...

author
post-image
wireshark

Wireshark - czy to gryzie?

Z programem Wireshark pierwszy raz zetknąłem się w czasie studiów na zajęciach z sieci komputerowych (dla niewtajemniczonych: Wireshark to aplikacja która umożliwia przechwytywanie i nagrywanie pakietów danych, a także ich...

author
post-image
angular

Budowanie aplikacji Angular CLI + Spring Boot

Każda nietrywialna aplikacja potrzebuje backendu. O ile obecnie to nie jest prawda, to na potrzeby tego artykułu przyjmijmy, że tak jest. A jak backend współpracujący z aplikacją webową to REST,...

author
post-image
hystrix

Hystrix - praktyczne użycie circuit breaker'a

Aby dodać circuit breakera do naszej aplikacji należy dodać klasę opakowującą klienta serwisu zewnętrznego komendą hystrixową (adnotacje dostarczane są przez bibliotekę javanica).

author
post-image
sonarqube

Sonarqube - wprowadzenie do statycznej analizy kodu

SonarQube, powstał jako system do integracji raportów z różnych bibliotek i wizualizacji wyników. Twórcy byli rozczarowani tempem zmian w popularnych bibliotekach statycznej analizy kodu, dlatego zaczęli na własną rękę przygotowywać...

author
post-image
angular

Szybki start z Angular CLI

Wydanie stabilnej wersji Angular 2 to idealny moment, żeby zacząć swoją przygodę z tym frameworkiem. Nie ma lepszego sposobu na poznanie nowej technologii niż skok na głęboką wodę i rozpoczęcie...

author