Wzorzec Strategia w Kotlinie

Strategia tworzy rodzinę algorytmów, zamykając różniącą się logikę w osobnych klasach, jednocześnie ukrywając ją przed klientami za wspólnym interfejsem. Umożliwia wymienne stosowanie implementacji. Użycie strategii znacząco upraszcza kod klientów, pozwala uniknąć duplikacji kodu i instrukcji warunkowych. Znacząco ułatwia testowanie — oddzielając testowanie klienta od algorytmów strategii.

Metoda szablonowa w Kotlinie

Metoda szablonowa to bardzo prosty wzorzec, pozwalający oddzielić to, co stałe od tego, co zmienne w rodzinie klas. Polega na utworzeniu abstrakcyjnej klasy nadrzędnej, zawierającej kolejne kroki jakiegoś algorytmu i pozwoleniu klasom dziedziczącym z niej nadpisywać poszczególne kroki, ale nie sam algorytm, który je wykorzystuje.

Kotlin Abstract Factory

Fabryka fabryk, czyli 'Abstract Factory' usprawnia tworzenie obiektów będących częścią jakiejś 'rodziny'. Jest to w zasadzie warstwa opakowująca konkretne fabryki i dostarczająca klientom instancję fabryki tworzącą obiekty z danego wariantu.

Kotlin Factory Method

Po `Static Factory Method` nadeszła pora na klasyczne `Factory`. Fabryka jest bardzo użytecznym i często stosowanym wzorcem konstrukcyjnym. Kotlin daje nam ciekawe możliwości dzięki klasom `sealed` oraz `internal`, których odpowiedników brakuje w Javie.

Kotlin Static Factory Methods

Znane z Javy `Statyczne Metody Wytwórcze` w Kotlinie jak najbardziej mają swoje zastosowanie, pomimo trochę innego zachowania i braku słówka `static`. Postaram się przybliżyć czym jest `companion object` i jak go można używać. PS: Ten post miał byc o wzorcu Factory Method z tylko krótką wzmianą o statycznych metodach fabrycznych, ale ten temat okazał się ciekawszy, niż sądziłem :)

Kotlin Builder Pattern

Wzorzec projektowy Builder (budowniczy) jest jednym z popularniejszych i bardziej przydatnych wzorców konstrukcyjnych. W tym wpisie postaram się go przybliżyć i pokazać jak ciekawie można go użyć w Kotlinie. Niestety często widzę implementacje, które wyglądają jak żywcem przetłumaczone z Javy bez wykorzystania dobrodziejstw języka.

Code Review Retro

To nie jest lista 'złotych zasad' code review, jest sporo bardzo dobrych postów na ten temat. Tutaj po prostu zrobiłem retro na podstawie własnych doświadczeń.

Ultimate Github Page Deployment

Deploy strony w Jekyllu (takiej jak ta) na GitHuba jest bajecznie prosty. No chyba, że korzysta z pluginów spoza whitelisty... ale nadal da się to łatwo zrobić.

IntelliJ settings repo

Używam kilku komputerów (i systemów operacyjnych) gdzie odpalam IntelliJ Idea i Android Studio. Utrzymanie tych samych ustawień na wszystkich było małą bolączką... do momentu aż odkryłem `settings repository`!

Shell script basics

If you are lazy and you know it clap your han... write shell scripts