Finta s cache na více nodech

Jeden z klamů, kterému stále podléhám, je, že vám program poběží v jediné instanci. Jasně, mnohdy na to myslím, klasicky zajištění, aby úloha v celém clusteru běžela maximálně právě jednou, k tomu perfektně slouží knihovna ShedLock. Nicméně pro některé případy stále ještě nemám vypěstovanou dostatečnou intuici. Fousatá legenda praví, že v IT máme dva obtížné problémy: pojmenování věcí a […]

Regex refaktor

Dnešní IDE mají skvělou podporu pro refaktorování, ale občas si s nabízenými možnostmi nevystačím. Naštěstí pořád je k dispozici replace all. To ovšem začne být zajímavě mocné, až když zapojíte regex. Fousatý vtip říká, že máte-li problém a rozhodnete se ho řešit regulárním výrazem, máte problémy rázem dva. Mnozí z vás už jistě používáte ChatGPT […]

Podrobné logování rozhraní systémů

Integrace systémů je podle mé zkušenosti jedna z nejkomplikovanějších věcí (kromě invalidace cache a pojmenování). Ne že by to byla raketová věda, ale existuje spoustu drobností, které se můžou rozsypat. Pravděpodobnost, že se to stane, hraničí téměř s jistotou. Jakmile věci vypustíte z rukou, těžko se ladí. Stopujete pak pouze své logy. Proto tímto apeluji, […]

Ať žije builder

Zpětná kompatibilita je něco, co mě poslední roky na jednu stranu děsilo, ale na druhou stranu i bavilo (protože překonávání překážek). Například přidání argumentu do konstruktoru je binárně zpětně nekompatibilní změna, musíte totiž současně zachovávat i ty již existující. Při druhém a dalším přidání @Deprecated si začínáte uvědomovat, že tudy cesta nevede. Jedním z nástrojů, […]

Poznatky z logování

Nejen pro produktovou firmu je důležité logování. Bez kvalitní dokumentace a logů padá na úroveň podpory L3 příliš mnoho věcí. Neříkám, že vím, jak logovat správně, ale pár průšvihů, třeba s JPA a asynchronním logováním, už jsem zažil. Chtěl bych sepsat, k čemu jsem dospěl, protože podobné otázky u nejednoho code review (zejména při změnách […]