[Python] Python vs UML
Enrico Franchi
enrico.franchi a gmail.com
Dom 3 Feb 2008 21:41:18 CET
On Feb 3, 2008, at 8:44 PM, Giorgio Zoppi wrote:
> Questa affermazione non la capisco,sarò
La spiego.
> che sono ignorante, mi dispiace. UML è ottimo per documentare il
> codice
> e l'interazione tra i sottosistemi, e anche per pensare a pattern.
Documentare il codice con UML?
1. per l'interazione tra i sottosistemi ci potrebbe pure stare.
peccato che non sia necessario; oltre tutto ci sono tante di quelle
parti lasciate scoperte (volutamente) dallo standard che anche li
bisogna praticamente sempre definirsi il proprio dialetto.
2. per documentare il codice, direi proprio di no. In primo luogo
perchè UML diventa particolarmente rognoso quando si scende nei
dettagli: la documentazione del codice spesso non prescinde dai
dettagli, ergo eccoci con UML in difficoltà. In secondo luogo nel
tempo in cui ci va a fare un diagramma (anzi, i due o tre diagrammi
necessari per una data fase) UML si ripulisce il codice fino a
renderlo sostanzialmente auto-esplicativo, tramite l'uso di
nomenclatura *chiara*, docstrings, tests ed eventualmente se tutto
questo non bastasse commenti mirati.
3. pensare a pattern è diverso da *conoscere* i pattern. pensare a
pattern è come dire pensare a mattoncini: se qualcuno mi dicesse che
penso a mattoncini io gli tirerei due schiaffoni. Non si *pensa* a
pattern; quando si conoscono *bene* i pattern si *vedono* nel problema
i pattern. Ma questo è un modo a posteriori di usare i pattern;
viceversa pensare a pattern usa unità di ragionamento e struttura
troppo rigide.
Ora potresti provare a spiegarmi perché UML è ottimo (lasciando stare
il fatto che lo usano tutti). Io sinceramente non sono mai riuscito a
capire questa cosa. O meglio: posso capirla quando penso al mondo
business, ai manager, ai commerciali, all'inventare un problema e
vendere i costosi strumenti necessari per risolverlo. Posso capirla
quando penso a linguaggi completamente ingessati, team di progettisti,
analisti e programmatori virtualmente disgiunti. E ho presente anche
il fatto che un numero spropositato di progetti finisce in un bagno di
sangue. D'altra parte sono completamente aperto a ricredermi.
> Quando lavori da solo è un po una rottura usarlo.
Anche quando lavoro in gruppo. Certo, se per una serie di ragione i
miei compari non sono in grado di leggere il codice e la
documentazione e hanno bisogno di rappresentazioni grafiche... ok.
Anche UML ha un suo senso. Viceversa preferisco del buon codice,
scritto bene, non più complesso del necessario e una buona suite di
test che mostri anche come il codice va usato e come non va usato.
More information about the Python
mailing list