Kotlin z JPA – rzeczy nieoczywiste

Zgodnie z tradycją kończąc szkolenie, pokazuję coś ekstra. Dziś tym czymś ekstra była implementacja prościutkiego silnika blogowego. Samo zadanie jest „egzaminem końcowym” kursu JPA. Nie tworzymy niczego ambitnego, bo mamy tylko 4 godziny na to zadanie. Uczestnicy mają samodzielnie przygotować klasy, skonfigurować zależności i odpalić całość. Moja wersja różniła się jednak od tej, którą mieli […]

Chrzan z keczupem – własny interceptor Wasabi w Kotlinie

Tydzień odpoczynku starczy. Można wrócić do pisania 🙂 Dziś zaimplementujemy własny interceptor w frameworku Wasabi. Czym jest Wasabi? Wasabi to framework HTTP napisany w Kotlinie. Pozwala na tworzenie aplikacji wykorzystujących protokół http jako warstwy komunikacji. Posiada wiele elementów, które pozwalają go kwalifikować jako narzędzie REST, ale nie jest na pewno frameworkiem REST. Można tworzyć rozwiązania […]

Szkolenie z Kotlina runda druga

Robimy powtórkę, bo zainteresowanie 🙂 REJESTREACJA Podsumowanie I edycji Mam nadzieję, że uczestnicy są zadowoleni. Co prawda trzy godziny to trochę za mało czasu. Forma ćwiczeń po przetestowaniu jej w boju też nie spełniła wszystkich moich oczekiwań, ale było nieźle. Zatem druga grupa będzie miała ten sam materiał, ale w trochę innej formie. Nie będą […]

Szkolenie z Kotlina

Małe, 3 godzinne szkolenie z Kotlina już w ten czwartek 🙂 REJESTREACJA Gdzie? Wrocław, pl. Konstytucji 3 Maja 3, budynek Silver Tower 13 piętro 13 piętro (zajebisty widok na Wrocław): Wejście od ulicy Dąbrowskiego, drzwi obok krasnoludka. Kiedy? 23 czerwca (i później zapewne będzie powtórka) startujemy o 17:30 od lunchu, zatem jak chcesz coś wszamać, […]

Rekurencja ogonkowa w Kotlinie

Na początek kilka słów na temat terminów. Rekurencja Jest sobie definicja w wikipediiW. Można ją uprościć do: Jeżeli funkcja odwołuje się do samej siebie to jest rekurencyjna Co do zasady w programach mamy rekurencję skończoną. Chyba że założenie o nieskończoności jest ok, a nasz język nie będzie miał problemu z przepełnieniem stosu w wyniku nieskończonej […]

Mała informacja

Ze względu na kontuzję dziś tylko mała informacja. 18 czerwca będę mówił o Kotlinie na konferencji InfoMeet we Wrocławiu. Będzie to okazja do zadania pytań „na żywo”. Ok wiecej dziś nie jestem wstanie napisać. Kod jest dostępny na licencji MIT. Jednak niektóre rozwiązania mogą być objęte inną licencją. W takim przypadku jest, to zaznaczone. Artykuły […]

Rzutowanie i kontrola typów

Omawiając dopasowanie wzorców w kotlinie użyliśmy konstrukcji when. W ramach niej pojawił się operator is, który jest operatorem sprawdzającym typ zmiennej i odpowiada, plus minus, instanceof z Javy. To czego nie mieliśmy okazji dotychczas sprawdzić to mechanizm śledzenia typu. Śledzenie i automatyczne rzutowanie Przeanalizujemy mały programik: Listing 1. Przykład śledzenia typu fun main(args: Array<String>) { […]

Delegaty standardowe

Czas na małe podsumowanie delegatów. Wiemy, że Kotlin ma mechanizm, który pozwala na generowanie wzorca delegata dla funkcji oraz wiemy co dzieje się w przypadku konfliktów nazw. Wiemy też, że Kotlin posiada mechanizm pozwalający na delegowanie właściwości w celu np. leniwego wartościowania oraz pozwala na budowę obiektów za pomocą map. Dziś przyjrzymy się jakie delegaty […]

Delegowanie właściwości – mapy

Skoro wiemy już, że Kotlin pozwala na delegowanie właściwości tak, by było one leniwie wartościowane, to zastanówmy się jakie inne możliwości daje nam ten mechanizm. Obiekt jako mapa Pomyślmy o obiekcie jako o prostej tablicy asocjacyjnej albo mapie. Kluczem niech będzie String, a wartości to dowolne obiekty. Tak mniej więcej można rozumieć obiekty w JavaScripcie. […]

Delegowanie właściwości – leniwe wartościowanie

Delegowanie funkcji jest smaczkiem w składni, który ułatwia nam życie i upraszcza kod. Znacznie ciekawszym rozwiązaniem jest delegowanie własności. Dziś omówimy wykorzystane tego mechanizmu przy leniwym wartościowaniu. O co chodzi? Często mamy do czynienia z klasami, które mają „ciężkie” pola. Ich inicjacja jest zasobożerna, a co więcej nie zawsze konieczna. W takim przypadku powinniśmy wykorzystać […]