|
|
|
![]() |
|
Strumenti |
![]() |
#81 |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quindi se qualcuno volesse documentarsi su qualcosa invece che consultare una comoda interfaccia web dovrebbe scaricarsi il software da svn aprire l'editor di turno e cominciare a spulciare il codice per capire cosa fa e come lo fa?
|
![]() |
![]() |
![]() |
#82 | |
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
Quote:
Ogni volta che si rilascia un pezzo di codice nel repository centrale, questo rilascio e' sempre legato ad una storia in particolare. In questo modo si ha a posteriori il legame sul perche' e' stato introdotta o modificata la singola linea di codice. Ci sono plug-in dei tool di versioning che permettono di posizionarsi su un gruppo di linee di codice, e vengono esposte in ordine cronologico tutte le storie che hanno avuto a che fare con tale gruppo, ciascuna esponendo come era il codice in quel momento. Sono plug-in di brdige tra il prodotto di versioning e il prodotto che serve per gestire il sistema agile, quello dove vengono pubblicate le storie, dove si possono aggiungere commenti, i test, assegnare i lavori, stimare le difficolta' per ciascuna storia, etc. Comunque per capire il cosa e il perche' un pezzo di codice sta facendo qualcosa, ci sono i commenti che sono proprio finalizzati a questo. Anche lo stile di commentazione del codice e' una parte ben definita e importante nello sviluppo Agile. Niente di trascendentale, solo il formalizzare concetti comunque altrimenti ragionevoli, che sarebbero da applicare ovunque. Innanzitutto bisogna commentare sempre. Quindi a chi non piace commentare, e sul forum si vedono sovente esempi, direi che questa metodologia non e' da proporre. Il commento e' una forma di rispetto verso di se e verso gli altri. Chi non commenta e' bene che sia tanto bravo da poter lavorare da solo. E laddove si commenta occorre spiegare proprio cosa e perche' si sta facendo un qualcosa, e non il come. Bannati commenti come "Sposto il valore di ciccio nella variabile Pluto", perche' e' il codice stesso che dice come si stanno facendo le cose. Meglio p.es. "Salvo ciccio perche' verra' distrutto dalla chiamata a metodo caio" Non "Ordino il risultato", ma "Ordino il risultato perche'..."
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. Ultima modifica di gugoXX : 05-04-2010 alle 06:59. |
|
![]() |
![]() |
![]() |
#83 | |
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
Quote:
E comunque si'. All'inizio si rilascia in produzione un set di funzionalita' minime, e da li' si comincia poi ad arricchire. Che poi il cliente decida veramente di esporre/sostituire un prodotto vecchio con questo on-going e' un altro discorso. Per il team di sviluppo quella e' la produzione, ed e' la produzione sulle macchine vere (hardware permettendo). Quelle per le quali basterebbe solo un solo click del cliente per decidere di esprre il prodotto all'esterno oppure no. Per un sito di ricerca come google potrebbe essere solo una brutta textbox al centro, senza immagini, con il solo tasto "Search" e senza funzionalita' particolari se non una ricerca magari inefficiente sul database locale che non viene neppure rinfrescato con lo spidering. I discorsi su bachi di fatturazione/carrello di cui parlavi sono assorbiti dal tempo di QA (Quality assurance) Un altro dei concetti dell'Agile e' che DEVE esserci un team (magari anche una persona sola) dedita alla QA. Quando il team di sviluppo rilascia una candidate release, viene rilasciata nell'ambiente QA, in certificazione. QA ha tempo 2 settimane per testare le nuove funzionalita' aggiunte, e per completare i test con le regressioni sulle parti non copribili dai test degli sviluppatori. Al termine delle 2 settimane la candidate release, eventualmente nel frattempo aggiustata, viene rilasciata in produzione. In pratica capita che allo stesso istante gli sviluppatori rilasciano verso QA quello che e' lo Sprint 75 (uno sprint equivale alle 2 settimane di lavoro), e QA rilascia in produzione quello che e' lo sprint 74. Per progetti piu' complessi tra QA e produzione c'e' un ulteriore ambiente di UAT (User acceptance test) In questo ambiente i test sono i test di accettazione utente, durante i quali l'utente stesso certifica che quanto e' stato aggiunto corrisponde alle storie che erano state decise per lo sprint in particolare.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. Ultima modifica di gugoXX : 05-04-2010 alle 06:55. |
|
![]() |
![]() |
![]() |
#84 |
Senior Member
Iscritto dal: Feb 2002
Città: Trento
Messaggi: 962
|
Mi iscrivo a questa discussione perchè è una figata
![]() Una curiosità per gugoXX: ma editi sempre i tuoi post dopo averli fatti? Ho dato un'occhiata, e hanno tutti una data di "post-modifica"... non è che oramai sei Agile anche nello sviluppo dei post? ![]() E' solo una battuta, però mi piace pensare a te che architetti test per provare i tuoi post e poi fare il refactoring se non ti piacciono... ![]() Non prenderla come un'offesa, eh! ![]()
__________________
"Et Eärallo Endorenna utúlien. Sinome maruvan ar Hildinyar tenn' Ambar-metta!" -- Aragorn Elessar, Heir of Isildur Mixmar -- OpenSuSE 11.1 on AMD 64 3000+ on DFI LanParty nF4-D | GeForce 6600 GT + Thermaltake Schooner on Samsung 710N Storage -- ( 2 x Hitachi Deskstar 80 Gb + 1 x Hitachi 250 Gb ) = 1 RAID 5 + 1 Storage space LaCie Ethernet Disk Mini 250 Gb | HP - DV2150 EL MILAN CLAN |
![]() |
![]() |
![]() |
#85 | |||
Senior Member
Iscritto dal: Apr 2003
Città: Genova
Messaggi: 4741
|
Quote:
![]() Quote:
Quote:
__________________
Jappilas is a character created by a friend for his own comic - I feel honored he allowed me to bear his name Saber's true name belongs to myth - a Heroic Soul out of legends, fighting in our time to fullfill her only wish Let her image remind of her story, and of the emotions that flew from my heart when i assisted to her Fate
Ultima modifica di jappilas : 05-04-2010 alle 12:13. |
|||
![]() |
![]() |
![]() |
#86 | |
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
Quote:
![]() No figurati. E che spesso scrivo veloce, poi pubblico per non perdere il post (gia' capitato che si perdesse tra un tasto sbagliato e un altro), e poi correggo solitamente gli errori di ortografia.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. |
|
![]() |
![]() |
![]() |
#87 | |
Senior Member
Iscritto dal: May 2004
Messaggi: 1136
|
Penso che "Tommino vs Resto del mondo XP"
![]() Qui: http://books.google.it/books?id=h-hC...age&q=&f=false c'è l'anteprima completa del capitolo riguardante i metodi agili di sviluppo e la programmazione estrema del libro Ingegneria del Software di Ian Sommerville (sento fischi dagli spalti... ![]() ![]() "Negli anni 80-90 gli ingegneri del software ritenevano che per sviluppare sofware di qualità fossero necessari metodi rigorosi di pianificazione, analisi, progettazione. Le persone che sostenevano ciò lavoravano per progetti di grandi dimensioni, di lunga durata, spesso composti da sistemi critici. Inoltre diversi gruppi di lavoro lontani nello spazio e nel tempo producevano il software. Quando si applicò questo approccio nelle aziende medio-piccole emerse che la lunga fase si raccolta di requisiti formali e progettazione era preponderante rispetto allo sviluppo stesso. Si pensò quindi ad un approccio agile, dove era centrale lo sviluppo ed il test del software piuttosto che la pianificazione e la documentazione; si deve procedere quindi in maniera ciclica per il rilascio di sottoparti di sistemi con requisiti fortemente dinamici." Tra i vari pregi e difetti di tale approccio riporto testualmente (fine pagina 387): Quote:
|
|
![]() |
![]() |
![]() |
#88 | |
Senior Member
Iscritto dal: May 2004
Messaggi: 1136
|
Quote:
a chi serve la documentazione? O ancor più in generale, cosa voglio comunicare, a che livello di astrazione, a chi? Se per esempio è necessario riassumere la logica di funzionamento di una certa parte del software, ad un livello di astrazione superiore al codice, rivolto a chi dovrà manutenere/modificare quella parte in futuro, si potrebbe pensare di scrivere una breve descrizione in linguaggio naturale supportato da diagramma di flusso, senza quindi costringere l'utente di quella documentazione a leggersi le storie o i sorgenti. |
|
![]() |
![]() |
![]() |
#89 | |
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
Quote:
![]() E anche riuscendo a confondere lo scrum master con la persona che si interfaccia con il cliente e con il project manager che sono tutti ruoli diversi. A questo punto mi sa che non ci capiremo mai, ti posso solo dire che queste metodologie se correttamente applicate funzionano e alla grande anche. ![]() Sei libero di non crederci. ![]()
__________________
![]() |
|
![]() |
![]() |
![]() |
#90 |
Senior Member
Iscritto dal: May 2008
Messaggi: 533
|
■
Ultima modifica di rеpne scasb : 18-06-2012 alle 16:00. |
![]() |
![]() |
![]() |
#91 | ||
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
Quote:
Ovviamente la metodologia Agile serve per trovare la soluzione di un problema non ben determinato (la richiesta del cliente), le cui soluzioni potrebbero essere molteplici e tutte giuste, magari con diversi gradi di piacimento. Campo quindi non cosi' rigoroso come i modelli di cui sopra. Quote:
Sulle ordinate si trova il tempo necessario per aggiungere (o modificare) una funzionalita', sulle ascisse quanto tempo e' trascorso dall'inizio del progetto. Nelle soluzioni classiche il grafico si approssima con una retta, poiche' si scopre che man mano che il tempo passa e' sempre piu' difficile aggiungere funzionalita'. Nelle soluzioni agile invece si approssima con il logaritmo (Ovviamente facendolo passare per zero). Inizialmente aggiungere una funzionalita' ha un costo maggiore rispetto alle soluzioni classiche, dato che la fase di progettazione e' meno organica. Ma dopo un certo periodo le due curve si incrociano, e dopo il treshold risulta piu' semplice con metodi agile che con quelli classici. Il tempo per aggiungere le funzionalita' con metodi agile e' ovviamente crescente man mano che passa il tempo (Occorre inserire il pezzo nuovo pur mantenendo la soluzione organica), ma con meno sforzo. Questo grazie principalmente alla rifattorizzazione vs pezze. Il tempo di sviluppo per algoritmo costante direi che e' minore con soluzioni classiche. Agile vince quando non si ha bene chiaro in mente all'inizio dove si andra' a finire, e dove si sa' che verranno chieste modifiche impreviste in corso d'opera. Se le idee sono invece ben chiare dal principio consiglio un approccio classico con progettazione iniziale e sviluppo tutto insieme (Che e' poi cio' che si fa quando si affronta ogni singola storia anche nell'Agile. Le storie sono da considerarsi blocchi atomici non modificabili. Se e quando occorrono modifiche si creano altro storie) Relativamente ai bug. Un bug in Agile equivale ad un test non scritto. Al termine di un progetto le linee di codice per i test superano quelle del codice stesso, e questo significa che c'e' sempre meno spazio per i bug. Facendo lavorare gli strumenti appositi, mettendo insieme concetti come la copertura al codice locale e la complessita' ciclomatica vengono anche fuori classifiche su quali sono le parti di codice piu' sensibile, dove probabilmente possono essere nascosti bug, e dove quindi indirizzare l'attenzione. Mentre durante lo sviluppo c'e' chi prefreisce scrivere prima il codice e poi gli unit test, come me (non c'e' una regola precisa), quando si trova un bug invece prima si scrivono i test di regressione, e poi si corregge il codice fino a che i test non passano tutti, sia quelli nuovi che quelli vecchi. Butto qui altre comparative Indici di progetti gestiti con metodi Agile, rispetto a metodologie tradizionali. ![]() Questo e' invece basata sul numero di progetti portati a buon fine ![]() Questo invece fa vedere il costo di un bug, a seconda del momento in cui viene scoperto. Agile cerca di far venire fuori i bug tra i momenti meno costosi, rispetto a metodi tradizionali ![]() Documenti e libri annessi a questi dati: http://www.agilemodeling.com/essays/proof.htm
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. Ultima modifica di gugoXX : 06-04-2010 alle 23:01. |
||
![]() |
![]() |
![]() |
#92 |
Senior Member
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
|
sbaglio a pensare che l'ultimo grafico sia una gran cavolata? non mi sembra il risultato di una statistica, mi sembra una curva disegnata appositamente per esporre un concetto opinabile in quanto molto variabile da un caso all'altro.
|
![]() |
![]() |
![]() |
#93 | |
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
Quote:
http://www.ambysoft.com/essays/whyAg...sFeedback.html
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. |
|
![]() |
![]() |
![]() |
#94 | |
Senior Member
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
|
Quote:
inoltre, sbaglio a pensare che le teorie esposte in quella pagina siano un sacco di castelli colorati campati per aria e privi di riscontro statistico? lo chiedo perché ho letto velocemente e senza andarmi a leggere pure le varie pagine linkate. |
|
![]() |
![]() |
![]() |
#95 |
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
boh...
non l'ho manco aperta quella pagina.. ma so solo che quelle teorie che secondo alcuni sarebbero "campate in aria" nella pratica funzionano perfettamente. E questo mi fa venire in mente quello che mi ha detto la mia collega neozelandese, autrice di un libro sull'agile programming e nuova assunta: "WPF seems like magic: it's so simple that you are astonished when you see the result... you don't know how it is possible but it works!" (Pubblicità progresso ![]() ![]()
__________________
![]() Ultima modifica di ^TiGeRShArK^ : 07-04-2010 alle 00:28. |
![]() |
![]() |
![]() |
#96 | ||
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
Quote:
Quote:
Per dichiarare determinate percentuali come 72%, 19% etc. avranno pure dei dati sotto mano immagino. Prova a vedere qui http://www.ambysoft.com/downloads/su...option2007.pdf http://www.ambysoft.com/downloads/su...option2007.csv http://www.ambysoft.com/downloads/su...option2007.ppt
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. Ultima modifica di gugoXX : 07-04-2010 alle 00:33. |
||
![]() |
![]() |
![]() |
#97 |
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. |
![]() |
![]() |
![]() |
#98 | |
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
Quote:
http://www.hwupgrade.it/forum/showpo...3&postcount=26 ![]()
__________________
![]() |
|
![]() |
![]() |
![]() |
#99 | ||||
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quote:
Quote:
Tutte le volte che il codice gira in un contesto esterno (es codice di applicativo web .NET che gira nel contesto di IIS, oppure servizi), i test verificano il funzionamento del codice non nel contesto in cui questo girerà. Quindi potrebbero evidenziarsi bug che nei test non emergono. Quote:
Quote:
|
||||
![]() |
![]() |
![]() |
#100 |
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
no, parlava proprio del WPF che con il MVVM è il complemento perfetto dell' agile development.
![]() Prima se dovevi testare un interfaccia grafica facevi prima a spararti sulle bOlls, ora separando la view è nettamente + semplice e i binding ti danno quel "pizzico di magia" in + che non fa mai male. ![]()
__________________
![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 17:38.