Cod: JVA-031
Durata: 30 ore
Durata: 30 ore
Descriere
In cadrul acestui curs participantii vor avea ocazia sa descopere cum sa programeze cu Scala, functionalitatile acestui limbaj precum si avantajele si provocarile utilizarii lui.Limbajul de programare Scala a inceput sa devina din ce in ce mai popular in ultimii ani nu doar in cadrul comunitatii de software development dar si in zona de dezvoltare a aplicatiilor enterprise. Scala foloseste cele mai avansate functionalitati ale limbajelor de programare actuale precum si functional programming.
Ofera programatorilor oportunitatea de a creste eficienta procesului de dezvoltare si de a crea un cod expresiv si eficient. Codul Scala este compilat in Java byte code si ruleaza in interiorul JVM, lucru care il face extrem de compatibil cu librariille si instrumentele Java existente.
Trainingul acopera tot continutul necesar pentru utilizarea eficienta a Scala: operatori si tipuri de date, folosirea structurilor de baza (arrays, map, tuples), folosirea abordarii functionale si orientate pe obiect, cum se lucreaza cu collections, pattern matching, case-classes, generics si implicit conversions. Mai mult decat atat in agenda cursului sunt incluse si un numar mare de exercitii practice.
Subiecte curs
a:2:{s:4:"TEXT";s:4285:"Scala instructions, operators si types- Conditional statements
- Loops
- Functii
- Variabile
- Operatori
- Unit type
- Function type
- Null, Nothing, Any, AnyRef si AnyVal types
- Packages si imports
- Implicit imports
- Exceptii
Arrays, maps, tuples
- Crearea, adaugarea si eliminarea elementelor din array
- Accesul la Array Elements
- Arrays de lungime fixa sau variabila
- Multidimensional Arrays
- Operatiuni cu arrays
- Sortarea unui array
- Crearea si accesarea associative tables
- Iterarea, schimbarea si sortarea associative tables
- Tuples
- Zipping
Classes si Inheritance
- Clase
- Proprietati cu getters si setters
- Folosirea parentheses method calls
- Proprietati cu only getters
- Auxiliary constructors
- Primary constructor
- Nested classes
- Extending the class
- Overriding methods
- Type check si cast
- Call the superclass constructor
- Overriding fields
- Anonymous subclasses
- Abstract fields
- Constructor order si early definitions
- Scala Inheritance Hierarchy
- Objects equality
Objects
- Singletons
- Companion Objects
- Objects extending a class or trait
- Enumeratii
- Packages objects
- Apply and unapply methods
- Lazy objects
Traits
- Traits as interfaces
- Traits cu implementare specifica
- Redefinirea abstract methods in Traits
- Concrete si abstract fields in Traits
- Objects care folosesc multiple Traits
- Trait construction order
- Initializarea Trait fields
- Traits extending classes
- Self types
Functii
- Functii ca valori
- Default arguments si named arguments
- Functii fara return value
- Functii anonime
- Functii cu Function ca parametru
- Closures
- Interfete Functionale
- Currying
- Passing function as a parameter in the block of code
- Folosirea return
Collections
- Traits collections in Scala: Map, Set si Seq
- Mutable si immutable collections
- Secvente
- Liste
- Mutable lists
- Sets
- Operators atunci cand lucrezi cu collections
- Metode standard pentru a lucra cu collections
- Folosrea functiilor map, reduce, fold si scan
- Zipping
- Iterators
- Data Streams
- Threadsafe Collections
- Parallel collections
- Interactiuni cu Java collections
Pattern matching
- Pattern matching as a better switch
- Guards
- The variables in patterns
- Type patterns
- Potrivirea arrays, lists si tuples
- Regular expressions
- Extractors
- Patterns in variable declarations
- Patterns in for expressions
Case classes, Option type and partial functions
- Сase classes
- Copy method si named parameters
- Sealed classes
- Option type
- Functii partiale
Generics
- Generic сlasses
- Generic functions
- Type variance
- Upper si lower type bounds
- Use _ for type
Implicit conversions
- Folosirea implicit keyword pentru a defini implicit type
- Importarea si folosirea implicit conversions
- Implicit parameters