[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