Cod: DEV-040
Durata: 32 ore
Durata: 32 ore
Descriere
a:2:{s:4:"TEXT";s:1078:"Cursul se adreseza programatorilor cu experienta in domeniu si prezinta in detaliu functionalitatile si capabilitatile Go. Implementarea de built-in containers si functionalitatile specifice ale control constructs sunt acoperite in detaliu prin intermediul mai multor exercitii practice. Limbajul de programare Go are propria sa implementare a abordarii orientate pe obiect – astfel ca vom acorda mai multa atentie catre interface-based domain decomposition.Go a fost dezvoltat pentru a folosi cat mai eficient concurrent si parallel computations – din acest motiv, cursul nostru ofera numeroase exemple legate de folosirea concurrent algorithms. Trecem in revista si folosirea standard library capabilities precum si folosirea third-party packages.
Go ofera un set amplu de instrumente care sprijina procesele de testare si dezvoltare, care sunt de altfel abordate si in training. Mai mult decat atat vom discuta si despre o serie de elemente practice cum ar fi interactiunea cu bazele de date relationale sau exemple de REST interface implementation.";s:4:"TYPE";s:4:"html";}
Subiecte curs
Configurarea mediului- Cum sa instalam si sa configuram Go compiler. Exemple de scris, compilare si rulare a unui program simplu Go.
Go IDEs
- Ce integrated development environment poate sa fie folosit pentru a scrie cod in Go. Cum le instalam si le configuram.
Instrumente Go
- Built-in tools pentru a ajuta procesul de dezvoltare software. Cum sa compilam si sa rulam un program Go, cum sa accesam documentation si sa adaugam documentation la cod.
Structura directorului / Module Go / Pachete
- Cum sa organizam structura project directory pentru a fi conform cu regulile general acceptate. Metode pentru descompunerea codului in componente separate pentru intretinere si reutilizare usoara.
Instalarea dependintelor
- Folosirea solutiilor third-party solutions in loc sa scriem noi cod. Managementul dependintelor si stocarea distribuita a pachetelor.
Tipuri de date si declararea varibilelor / Valori zero / Type conversions
- Reprezentarea valorilor primitive in limbajul si operatiile de baza din cadrul lor.
Containere: arrays, slices, maps
- Cum sa stocam value sequences: arrays, slices si hash-tables (reprezentarea interna si use cases).
Branching si loops: break, continue, fallthrough, goto
- Descrierea algoritmilor cu loops si branching, diferente Go syntax constructs fata de alte limbaje de programare.
Functii / Multiple return values / Variadic parameters / Function literals si closures
- Definirea functiilor si passing parameters. Functii cu un numar arbitrar de argumente. Functional capabilities, anonymous functions si closures.
Types declarations / Constants / Iota / Structures / Embedded structs / Anonymous structs / Nested structs
- Modalitati de definire a user types si constants, descrierea secventelor de valori. Cum sa descriem domain entities folosind language structs.
Pointers / Value si references types
- Managementul memory si pointers.
Defer statement
- Function call defer.
Error handling / Panic recover
- Cum sa identificam si sa abordam runtime errors. Modalitati de a scrie cod fiabil si rezistent.
Metode si interfete / Method expressions
- Interfete si implementarea lor. Dezvoltarea de cod orientat pe obiect bazat pe interfete. Metode.
Concurrency vs parallelism / Goroutines / Memory model
- Cum sa facem mai multe lucruri simultan. Concurrent execution bazat pe goroutines. Memory model in Go.
Channels / Blocking si unblocking channels / Select statement
- Scrierea de cod fiabil: data exchange intre goroutines bazate pe canale.
Waitgroups, mutexes, atomics
- Sincronizarea partilor separate din programul nostru.
Scrierea si citirea de fisiere
- Cum sa salvam date intre lansari separate de programare.
Librarie standard: fmt, log, strings, time, sort, http, math, regexp
- Mecanismele built-in ale limbajului pentru a rezolva sarcinile de rutina.
Testing si benchmarking
- Cum sa garantam stabilitatea codului prin facilitarea de unit tests si cum sa gasim cea mai eficienta solutie pentru o sarcina.
JSON encoding si decoding
- Schimb de date cu programe scrise in alte limbaje.
Baze de date / PostgreSQL / MongoDB
- Stocarea bazelor de date relationale.
Exemplu de aplicatie cu REST
- O aplicatie backend full-fledged.
Pachet nesigur
- Language extensions pentru efectuarea de functii nesigure.
Obiective
- Cum folosim tipurile de date si syntactic constructs ale Go
- Intelegerea modelului orientat pe obiect al limbajului si cum sa fie folosit pentru a dezvolta componentele programului
- Intelegerea unor provocari care ar putea sa apara in dezvoltarea de concurrent program code si modalitati de a le aborda
- Cum sa folosim Go built-in tools si sa dezvoltam cod conform cu asteptarile comunitatii de programatori
- Cum sa rezolvam sarcini la nivel de production application
Public tinta
- Programatori cu experienta de lucru in alte limbaje de programare
- Architecti software, system designers, software testeri