Descripció
L'alumne aprendrà a desenvolupar codi de manera eficient, aplicant diferents patrons de disseny i bones pràctiques. Aprendrà també a utilitzar un sistema de control de versions com Git mentre desenvolupa.
Tipus assignatura
Primer - Obligatoria
Semestre
Segon
Curs
1
Crèdits
5.00

Professors Titulars

Professors Docents

Coneixements previs
Objectius

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.

Continguts

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

Metodologia

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.

Avaluació

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.

Criteris avaluació

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.

Bibliografia bàsica
Material complementari