Cod: DEV-006_NET
Durata: 24 ore
Durata: 24 ore
Descriere
De cate ori ai intalnit un cod sursa care este dificil de citit? Genul de cod unde trebuie sa petreci foarte mult timp pentru a intelege ce a vrut sa faca cu el programatorul care l-a scris.In acest training iti vom arata cum sa nu devii acel programator. Vei invata despre code smells, de ce si unde apar, si ce tehnici putem folosi pentru a le indeparta. Vom incepe cu probleme simple legate de functii si vom ajunge la aspecte mai complexe legate de comunicarea intre clase. Vom discuta si despre ce ar trebui sa faci si ce nu ar trebui sa faci pentru a-ti face codul mai usor de citit.
Subiecte curs
Refactoring- Introducere
- Notiunea de refactoring, scopul refactoring
- Test-driven development
- Prezentare
- Definitia unui code smell
- Principiile unui design bun
- Code smells in teste, smells in baze de date (prezentare)
- Smells in architectura software, smells in managementul personalului
Probleme comune la nivel de cod
- Organizarea datelor
- Campuri
- Data arrays
- Referinte si valori
- Code fields
- Simplificarea conditional expressions
- Simplificarea method calls
- Cum lucram cu generalization
- Composing methods
Smells in cadrul unei clase
- Probleme care pot sa fie descoperite usor
- Names
- Excessive complexity
- Duplication
- Conditional logic
Transferul functionalitatilor intre objects
- Single responsibility principle
- Cohesion
- The Law of Demeter
- Mutarea methods/fields
- Extragerea unei class
- Inline class
- Hiding delegates
- Remove middle man
- Extension methods
Probleme legate de comunicarea intre clase
- Data. Inheritance
- Responsibility
- Adopting changes
- Library classes
Obiective
- Prezentare generala a code smells
- Bune practici pentru a imbunatatii lizibilitatea codului
- Cum sa identificam probleme in codul C#
- Cum sa imbunatatim lizibilitatea codului in C#
Public tinta
- Programatori C# cu cel putin 1 an de experienta
Cerinte curs
- Cunostinte generale legate de programare
- Cunostinte generale de limbaje de scripting
- Intelegerea fluxurilor logice de cod