Na początek krótkie info : wstępnie 20 marca ale termin spotkania może się zmienić ze względu na sprawy losowe.
Warsztat jest przeznaczony dla każdego kto ze scalą nie miał do czynienia - czyli nauka od zera. Będzie dużo porównań do Javy także tutaj jakieś doświadczenie się przyda ale postaram się aby materiał był przystępny też dla kogoś spoza JVM.
CO BĘDZIE:
Generalnie aby nie wprowadzać zbyt wielu rzeczy na raz zaczniemy od mechanizmów dobrze poznanych w Javie
1) Podstawy OOP w Scali - klasy i obiekty - czyli jak tworzyć klasy i czym są wbudowane w język obiekty. To będzie też czas na omówienie podstawowej składni.
https://pawelwlodarski.gitbooks.io/workshops/content/oop-basics.html
2) Traity/Mixiny - W Scali nie ma interfejsów a są za to Traity. Mogą działać jako interfejsy w rozumieniu javy7 czy nawet javy8 ale mogą być czymś znacznie silniejszym - a czym to zobaczymy.
https://pawelwlodarski.gitbooks.io/workshops/content/trait-basics.html
3) To jako bonus jesli ktoś skończy wcześniej a powiemy jak w Scali tworzyć konstrukcje, które wyglądają jak natywne instrukcje języka. To będzie taki bonus jak starczy czasu i bardzo przydaje się w większości narzędzi scalowych, które tworzą własne DSLe.
https://pawelwlodarski.gitbooks.io/workshops/content/custom-syntax.html
Każda część to trochę teorii, ćwiczenia i dekompilacja wynikowego kodu bajtowego by lepiej zrozumieć jak konstrukcje scalowe są reprezentowane przez JVM w runtime.
PRZYGOTOWANIE SRODOWISKA
1) Wyciągnijcie kod : https://github.com/PawelWlodarski/workshops
2)Zainstalujcie https://www.jetbrains.com/idea/ community edition (bezpłatne) i później w opcjach zainstalujcie plugin do scali. Jak ktoś będzie miał problem niech pisze.
3)Zaimportujcie projekt (ten z wyciągniętego kodu) do IDE.
4)Otwórzcie klaskę "TestingJavaClassAnswer" (2 razy Shift otwiera okno wyszukiwania) i odpalcie (ctrl+Shift+F10). Powinien pojawić się zielony pasek. Jak ktoś ma problemy niech pisze.
GDZIE TO BĘDZIE: Adres w szczegółach spotkania a tutaj mapka.
Claim the event and start manage its content.
I am the organizer