Zacząłem naukę Scali, głównie z myślą o nauce Sparka. Wiem, że mógłbym użyć do tego Javy, ale skoro i tak nie ma w tym kraju pracy dla ludzi z moim wykształceniem :P to stwierdziłem, że utrudnię sobie zadanie i wykorzystam ten czas do nauki czegoś nowego. Urzekł też mnie na swój sposób Vavr więc zrobię krok dalej przynajmniej jeżeli chodzi o podstawy i zobaczymy jak pójdzie. Zdaję sobie również sprawę, że w każdym języku można pisać kod działający, ale niekoniecznie sensowny biorąc pod uwagę specyfikę użytego języka.
Dlatego zwracam się z prośbą o wskazówki.
Na co zwrócić szczególną uwagę?
Co powinno się robić w tym języku, a czego absolutnie nie?
Jakich naleciałości z Javy unikać?
Póki co mam takie przemyślenia.
- Immutability uber alles! Swoją drogą czy nie uważacie, że val powinno być wartością defaultową dla pól?
- Rekurencja, rekurencja ogonowa, akumulatory. Z tym chyba mam póki co największy problem. Ciężko przestawić się na takie myślenie. Mam nadzieję, że to kwestia treningu.
- Unikać stosowania pętli. W kursie na Udemy pada wręcz stwierdzenie, że jeżeli chcesz użyć pętli while to znaczy, że robisz to źle. Używaj rekurencji.
- Pisać bez efektów ubocznych. Jak to rozumieć? Ja to interpretuje w ten sposób, że za każdym razem jeżeli dokonujemy jakiejś operacji na obiekcie to należy zwrócić jego nową instancję lub zmapować na inny typ.
Na ten moment na tyle.
map
, którą wspomniał @elwis poniżej).