Dodatkowe checki w checkstyle

Code Formatting

Checkstyle to potężna biblioteka, która nie tylko pozwala ustandaryzować formatowanie kodu w projekcie, ale także wyłapać niektóre błędy w programie (np. czy implementując metodę equals zaimplementowano także metodę hashcode) oraz design kodu (np. maksymalny rozmiar metod lub złożoność cyklomatyczną). To, że narzędzia statycznej analizy kodu są niezwykle przydatne, traktuję jako pewnik. Warto ich używać, nawet […]

Metryki jako zmienne publiczne, czy to złe?

Na tym blogu zdarza się, że są poruszane tematy tabu. Tym razem przyszedł czas na statyczne publiczne zmienne. Wiele już zostało powiedziane na temat zła, które wyrządziło światu ich stosowanie. W tym poście chciałbym przeanalizować szczególny przypadek ich użycia, a mianowicie metryki. Metryki, wszędzie metryki W poście Mierz logi na zamiary Bartek opisał jak istotne […]

O lokalności LocalDateTime

W kłopoty wpędza cię nie to, czego nie wiesz, lecz to, co wiesz, a co nie jest prawdą. — Will Rogers Podstawy których nie znają seniorzy Wszyscy wiemy jak ważnym zagadnieniem jest dobre nazewnictwo zmiennych, funkcji, klas i wszystkiego czym operujemy. Jednym z popularniejszych technik refaktoryzacji jest zmiana nazwy. Programiści spędzają sporo czasu nad wymyślaniem […]

Bezpieczny SVG

W jednej aplikacji nad którą pracuje odkryliśmy podatność dotyczącą plików SVG dostarczanych przez użytkowników. Szczegółowe wyjaśnienie jak można wykorzystać Scalable Vector Graphics do zrobienia Stored XSS dobrze opisał Sekurak. Vizzdoom (autor posta na Sekuraku) sugeruje zwracanie odpowiednich nagłówków (Content-Type, X-Content-Type-Options i Content-Security-Policy) – co zawsze jest dobrym pomysłem! a także zachęca do użycia narzędzia SVGPurifier. […]

Optional jako pole i co mi zrobisz?

Od wprowadzenia klasy Optional w JDK 8 minęło już sporo czasu. Sporo też napisano o tym jaki i gdzie jej używać, co jest dobrą praktyką a co złą. Przykład tego można znaleźć w artykule Optional Anti-Patterns. Ale czy to wszystko ma sens? Zgadzam się z wieloma postawionymi tam tezami. Chciałem jednak wejść w polemikę z […]

Archunit i Spock

Jeśli nie wiesz, co to archunit, to przedstawiony kod powie więcej niż niejedna dokumentacja. Jeśli wiesz, ale zastanawiasz się, czy archunit zadziała z Spock to mój przykład udowodni Ci, że działa :)