Professors Titulars
Professors Docents
Aquesta assignatura proporciona les eines necessàries per desenvolupar projectes de programari de manera eficient, ja sigui en entorns web, mòbils o desktop. Es focalitza en el paradigma de la Programació Orientada a Objectes, encara que moltes de les bones pràctiques que s'ensenyen es poden aplicar a qualsevol paradigma de programació.
Es comença motivant l'alumne a desenvolupar codi de manera eficient, veient molts avantatges i desavantatges d'aplicar els continguts que es veuen en l'assignatura i amb l'experiència clau del professor.
Seguidament l'alumne aprèn a detectar code smells i a refactorizarlos. Alhora, també s'aprenen diferents patrons de disseny i els principis de SOLID per desenvolupar un codi escalable, desacoblat i encapsulat. Com a culminació del que s'ha après anteriorment, s'ensenyen els principis de l'arquitectura hexagonal.
Finalment, el professor o un convidat especial donarà una xerrada sobre un projecte real on s'aplica arquitectura hexagonal.
A la segona part d'aquesta assignatura s'ensenya testing, més concretament unit testing, integration testing i semantic testing. Mitjançant un disseny orientat a tests (TDD), l'alumne va aprenent els diferents conceptes anteriorment esmentats.
Code smells
Refactoring
Codi semàntic
UML (Unified Modeling Language)
Principis SOLID
Patrons de disseny
DDD
Injector de dependències
Arquitectura hexagonal
Xerrada sobre arquitectura hexagonal aplicada (Enterprise design patterns)
Unit testing
Integration testing
Semantic testing
TDD
Els continguts es presenten mitjançant lliçó magistral però ràpidament s'integren en els projectes dels alumnes. Durant el desenvolupament de l'assignatura es veuen projectes reals i es fa una presentació, en grups, d'algun tema relacionat amb les bones pràctiques de disseny, ja sigui a nivell de codi o d'arquitectures de programari.
Es realitzaran exercicis per a una avaluació continuada. Es farà especial èmfasi en el feedback proporcionat pel professor i es discutirà aquest a classe.
Es realitzarà un pràctica final de l'assignatura per assegurar la consolidació dels coneixements per part de l'alumne.
Els resultats d'aprenentatge d'aquesta assignatura són els següents:
[RA1] L'alumne coneix un llenguatge actual de desenvolupament web seguint els estàndards de qualitat i estil.