Scala. Nauka programowania Katowice

Scala jest językiem programowania ogólnego przeznaczenia, który łączy cechy języków funkcyjnych i obiektowych. Jego twórcy postawili sobie za cel skalowalność napisanych w nim aplikacji - stąd wzięła się nazwa Scala. Scala jest oparta na wirtualnej maszynie Javy, umożliwia programowanie funkcyjne i …

od 33,50 Najbliżej: 26 km

Liczba ofert: 1

Oferta sklepu

Opis

Scala jest językiem programowania ogólnego przeznaczenia, który łączy cechy języków funkcyjnych i obiektowych. Jego twórcy postawili sobie za cel skalowalność napisanych w nim aplikacji - stąd wzięła się nazwa Scala. Scala jest oparta na wirtualnej maszynie Javy, umożliwia programowanie funkcyjne i oferuje bogaty wybór typów. Dzięki tym cechom można tworzyć kod mniej podatny na występowanie błędów w trakcie działania programu. Po uzyskaniu pewnej biegłości w kodowaniu praca z tym językiem staje się prawdziwą przyjemnością, nawet podczas tworzenia frameworków czy bibliotek. Ten przystępny podręcznik przeznaczono dla programistów, którzy chcą poznać język Scala, aby wykorzystywać go do pisania współbieżnych, skalowalnych i reaktywnych aplikacji. Przedstawiono tu podstawy niezbędne do rozpoczęcia kodowania w Scali: składnię języka, podstawowe typy danych, literały czy zmienne. Następnie omówiono struktury danych w Scali i sposoby korzystania z funkcji wyższego rzędu. Zaprezentowano również takie koncepcje jak dopasowanie wzorca, klasy przypadku oraz zagadnienia związane z programowaniem funkcyjnym i programowaniem zorientowanym obiektowo. Opisano techniki programowania asynchronicznego i reaktywnego. Znalazło się tu także obszerne wprowadzenie do frameworka Akka. W tej książce między innymi: paradygmaty programowania a korzystanie ze Scali kolekcje modyfikowalne i niemodyfikowalne koncepcja domniemania i praca z wyjątkami programowanie równoległe, asynchroniczne i reaktywne programowanie sterowane testami w Scali Scala: nowoczesność i prostota w każdej skali! Spis treści: O autorze 9 O recenzencie 10 Wprowadzenie 11 Rozdział 1. Rozpoczęcie programowania w Scali 15 Wprowadzenie do Scali 15 Paradygmat programowania 16 Paradygmat zorientowany obiektowo kontra funkcyjny 17 Scala to język wielu paradygmatów 17 Zalety Scali 19 Działanie w JVM 19 Supersprytna składnia 19 Dwie pieczenie na jednym ogniu 20 Typ to podstawa 20 Łatwe programowanie równoległe 21 Kod działający asynchronicznie 21 Scala jest teraz dostępna również dla front-endu 21 Sprytnie działające środowiska IDE 22 Rozbudowany język 22 Pomoc techniczna w internecie 22 Praca z językiem Scala 22 Instalacja Javy 23 Instalacja SBT 23 Środowisko REPL Scali 23 Środowisko IDE Scali 24 Pierwszy program w Scali 25 Podsumowanie 27 Rozdział 2. Elementy konstrukcyjne w Scali 29 Co kryje się pod programem w Scali? 30 Słowa kluczowe val i var 31 Literał 32 Literał liczby całkowitej 33 Literał liczby zmiennoprzecinkowej 35 Literał wartości boolowskiej 36 Literał znaku 36 Literał ciągu tekstowego 37 Literał symbolu 38 Literał krotki 38 Literał funkcji 39 Typy danych 39 Hierarchia klas Scali 40 Klasa Any 41 Unit 44 Boolean 44 Null i Nothing 44 Inferencja typu 45 Operatory w Scali 46 Operatory arytmetyczne 48 Operatory relacji 49 Operatory logiczne 50 Operatory bitowe 50 Kolejność działań 51 Klasy opakowań 52 Interpolacja ciągu tekstowego 55 Interpolator s 55 Interpolator f 56 Interpolator raw 56 Podsumowanie 57 Rozdział 3. Nadanie kształtu programowi w Scali 59 Pętle 60 Pętla for 61 Pętla while 63 Pętla do-while 63 Wyrażenia for 64 Wyrażenia for yield 65 Rekurencja 66 Dlaczego rekurencja zamiast iteracji? 66 Ograniczenia rekurencji 67 Idealny sposób na utworzenie funkcji rekurencyjnej 67 Konstrukcje warunkowe 68 Konstrukcja if-else 69 Dopasowanie wzorca 70 Podsumowanie 72 Rozdział 4. Podział programu na funkcje 73 Składnia funkcji 74 Zagnieżdżanie funkcji 76 Wywołanie funkcji 77 Przekazywanie zmiennej liczby argumentów 78 Wywołanie funkcji wraz z wartością domyślną parametru 79 Wywoływanie funkcji wraz z nazwanymi argumentami 80 Literał funkcji 81 Strategie wywoływania funkcji 83 Wywoływanie po nazwie 83 Wywołanie po wartości 84 Funkcja częściowa 85 Podsumowanie 87 Rozdział 5. Kolekcje w Scali 89 Motywacja 89 Niemodyfikowalne i modyfikowalne kolekcje danych 91 Różnice między kolekcjami typu root i niemodyfikowalnymi 92 Hierarchia kolekcji w Scali 93 Cecha Traversable 96 Cecha Iterable 98 Kolekcje najczęściej używane w Scali 103 Kolekcja List 103 Kolekcja Map 104 Kolekcja SortedSet 105 Kolekcja Stream 106 Kolekcja Vector 106 Niemodyfikowalny stos 107 Niemodyfikowalna kolejka 108 Kolekcja Range 108 ArrayBuffer 109 Kolekcja ListBuffer 110 Kolekcja StringBuilder 110 Kolekcja Array 111 Bogate zestawy operacji przeprowadzanych w kolekcjach 111 Kolekcje równoległe w Scali 120 Kolekcja ParArray 120 Kolekcja ParVector 121 Konwersja kolekcji Javy na kolekcję Scali 122 Wybór kolekcji 123 Wydajność działania kolekcji 125 Podsumowanie 126 Rozdział 6. Podstawy programowania zorientowanego obiektowo w Scali 127 Klasa 128 Klasa abstrakcyjna 133 Klasy abstrakcyjne i cechy 134 Klasa final 134 Obiekt jako singleton 135 Obiekt towarzyszący 138 Klasa przypadku 140 Podsumowanie 145 Rozdział 7. Kolejne kroki w zorientowanej obiektowo Scali 147 Kompozycja i dziedziczenie 148 Dziedziczenie klas 150 Rozszerzanie klas 150 Podtyp kontra podklasa 151 Nadpisywanie danych i zachowania 152 Ograniczenie dziedziczenia - słowo kluczowe final 154 Łączenie dynamiczne podczas wywoływania funkcji 154 Niewłaściwe użycie dziedziczenia 156 Konstruktory domyślne i parametryzowane 157 Cecha 159 Cecha jako domieszka 162 Cecha jako możliwa do łączenia domieszka 162 Cechy jako modyfikacje kaskadowe 165 Liniowość 168 Pakowanie i importowanie 170 Polecenie package 171 Wiele poleceń package w pliku 171 Zagnieżdżone polecenia package 172 Łączenie poleceń package 173 Import pakietów 174 Reguły widoczności 176 Cecha zapieczętowana 179 Podsumowanie 180 Rozdział 8. Więcej informacji o funkcjach 181 Literał funkcji 182 Metoda 185 Funkcja kontra metoda 188 Metoda czy funkcja? 190 Czym jest domknięcie? 192 Funkcje wyższego rzędu 194 Rozwinięcie funkcji 199 Konwersja funkcji wraz z wieloma parametrami na postać rozwiniętą 201 Funkcja zastosowana częściowo 201 Podsumowanie 204 Rozdział 9. Potężne konstrukcje funkcyjne 205 Wyrażenia for 206 Dopasowanie wzorca 209 Różne sposoby na dopasowanie wzorca 210 Dopasowanie zmiennej 210 Dopasowanie stałej 211 Dopasowanie konstruktora 211 Typ Option 215 Obliczanie z opóźnieniem 216 Optymalizacja wywołania ogonowego 217 Agregatory 219 Parametryzacja typu 220 Podsumowanie 222 Rozdział 10. Zaawansowane programowanie funkcyjne 223 Dlaczego typy są tak ważne? 224 Parametryzacja typu 226 Ogólna klasa i cecha 227 Nazwa parametru typu 228 Typ kontenera 228 Likwidacja typu 229 Wariancja w dziedziczeniu 230 Kiedy używać relacji typu wariancji? 234 Typ abstrakcyjny 234 Granice typu 239 Typ abstrakcyjny kontra parametryzowany 241 Klasa typu 243 Podsumowanie 244 Rozdział 11. Koncepcja domniemania i praca z wyjątkami 245 Obsługa wyjątków w stary sposób 246 Użycie rozwiązania opartego na typie Option 247 Konstrukcja Either 250 Koncepcja domniemania 252 Parametr domniemany 254 Metoda domniemana 255 Konwersja domniemana 256 Wyszukiwanie wartości domniemanych 260 Klasy typów 262 Podsumowanie 264 Rozdział 12. Wprowadzenie do pakietu Akka 265 Dlaczego powinieneś zainteresować się pakietem Akka? 266 Co to jest model aktora? 267 Poznajemy system aktorów 269 Obiekt Props 271 Ścieżki i odwołania do aktora 271 Wybór istniejącego odwołania za pomocą metody actorSelection() 272 Cykl życiowy aktora 273 Rozpoczęcie pracy z pakietem Akka 274 Przygotowanie środowiska 274 Utworzenie pierwszego aktora 279 Metody typu powiedz kontra poproś kontra przekaż 284 Zatrzymanie aktora 287 Zaczepy preStart i postStop 288 Komunikacja aktorów za pomocą wiadomości i ich semantyka 288 Strategia nadzoru aktorów 289 Strategia OneForOne kontra AllForOne 290 Domyślna strategia nadzorcy 292 Zastosowanie strategii nadzoru 292 Testowanie aktorów 295 Podsumowanie 298 Rozdział 13. Programowanie równoległe w Scali 299 Programowanie równoległe 300 Podstawowe bloki współbieżności 300 Poznajemy proces i wątek 301 Blokady i synchronizacja 302 Egzekutor i ExecutionContext 306 Programowanie asynchroniczne 309 Koncepcja wartości typu Future w Scali 309 Obsługa wyniku operacji asynchronicznej 313 Dlaczego nie należy łączyć dwóch lub więcej operacji asynchronicznych? 314 Obietnica 316 Kolekcja równoległa 318 Podsumowanie 320 Rozdział 14. Programowanie z użyciem rozszerzeń reaktywnych 321 Programowanie reaktywne 322 Rozszerzenia reaktywne 325 Reaktywność i RxScala 328 Utworzenie obiektu obserwowalnego 329 Podsumowanie 336 Rozdział 15. Testowanie kodu w Scali 337 Co to jest podejście TDD i dlaczego powinieneś je stosować? 338 Proces stosowany w podejściu TDD 338 Krok 1. - zdefiniowanie testu zakończonego niepowodzeniem 339 Krok 2. - utworzenie pewnego kodu pozwalającego na zaliczenie testu 339 Krok 3. - refaktoryzacja kodu mająca na celu poprawę jego jakości 339 Krok 4. - powtórzenie kroków od 1. do 3. 339 Zastosowanie podejścia BDD 342 Biblioteka ScalaTest 342 Przygotowanie do testów 343 Style testowania za pomocą ScalaTest 346 ScalaMock - natywna biblioteka obiektów imitacji 352 Podsumowanie 354 Skorowidz 355 O autorze: Vikash Sharma urodził się w Indiach. Jest zapalonym programistą i gorącym propagatorem idei open source. Uważa, że zachowanie prostoty podczas projektowania oprogramowania pomaga w tworzeniu przejrzystego i łatwego w późniejszej obsłudze kodu. Poświęcił dużo czasu na implementowanie kodu w Scali; z myślą o innych programistach przygotował kurs wideo programowania w tym języku. Obecnie pracuje jako programista w SAP Labs.

Specyfikacja

Autor
  • Vikash Sharma
Wybrane wydawnictwa
  • Helion
Rok wydania
  • 2019
Format
  • PDF
  • MOBI
  • EPUB
Kategorie
  • Programowanie
Ilość stron
  • 360