SlideShare une entreprise Scribd logo
1  sur  37
Java e solidarietà:  il progetto Jug4Tenda Jug Marche Relatore: Andrea Del Bene www.jugancona.it
Java e solidarietà: il progetto Jug4Tenda Agenda ,[object Object]
Architettura
Processo di sviluppo
Riferimenti e contatti
Storia del progetto:  il Jug Marche ,[object Object],[object Object]
Storia del progetto: La tenda di Abramo (1) ,[object Object],[object Object]
Storia del progetto: La tenda di Abramo (2) ,[object Object],[object Object],[object Object]
Finalità ”pratica” del progetto Aiutare la Tenda:  ogni software che si rispetti  deve  far felice il suo  committente :-)...  La tenda tramite il progetto deve rendere più efficien -te le sue attività, risparmiare tempo, migliorare il suo servizio, ecc...  In futuro altri enti benefici  simili  alla tenda potrebbero adottare il software per la loro attività.
Finalità ”tecnica” del progetto Essere un libero ”laboratorio” tecnico:  il progetto è un continuo laboratorio di idee a cui tutti possono partecipare. E' un'occasione per  provare  ed  imparare ad usare  i framework e le applicazioni più popolari nel mondo JEE (Hibernate, Spring, Tomcat, ecc...) Alla base del progetto c'è la convinzione che usando gli strumenti open source offerti oggi da Java si possano ottenere prodotto di alta qualità, per molti aspetti persino migliori di soluzioni commerciali ”chiuse”.
Startup del progetto ,[object Object],[object Object],[object Object]
Creare un  dizionario  di dominio comune ( es:Cos'è un Ospite? Ed un' Accoglienza? )
Stabilire quali tecnologie userà il gruppo di sviluppo
Scelta della piattaforma tecnica  ,[object Object],[object Object],[object Object],[object Object],[object Object]
Prima regola aurea La prima regola che si apprende in questa fase è: Non reinventare la ruota!! Su Internet quasi sicuramente c'è un framework che fa quello che desideri meglio di quanto pensi!!
Piattaforma tecnica Dopo un'attenta analisi (e qualche birra) sono state scelti i seguenti strumenti di partenza
Piattaforma tecnica attuale
Storia del progetto: timeline ,[object Object],[object Object],[object Object]
Ricerca full-text http://www.jugancona.it/vqwiki/jsp/WikiTutorialRicercaOspite
Generazione report http://www.jugancona.it/vqwiki/jsp/Wiki?TutorialReportAccoglienzeOdierne
Future implementazioni ,[object Object],[object Object],Sul piano  funzionale ,[object Object],[object Object],Sul piano  tecnico ,[object Object],... ...
Internazionalizzazione  i18n ,[object Object],[object Object]
Il processo di sviluppo: 1° fase Raccolta e pubblicazione dei requisiti
Raccolta dei requisiti ,[object Object],[object Object],[object Object]
Pubblicazione dei requisiti ,[object Object],[object Object]
Il processo di sviluppo: 2° fase Sviluppo del codice
Il repository cvs ,[object Object],Gli sviluppatori sono tenuti ad aggiornarsi regolarmente dal  branch  principale del  repository   in  modo   da   lavorare   sempre  su una copia aggiornata del sorgente.
Sviluppo TDD ,[object Object],I test unitari devono garantire un comportamento del codice logicamente corretto e che soddisfi i requisiti ,[object Object],Non si deve essere pubblicato codice non consistente, ossia codice che non supera tutti i test unitari
Seconda regola aurea Una regola, o meglio un effetto che deriva da una ”buona” TDD è: Il debugger deve essere usato il meno possibile, quasi MAI!
Le classi di dominio ,[object Object],[object Object],[object Object]
Terza regola ”aurea” Nessuno strato deve dipendere da uno strato superiore,ossia più vicino alla GUI
Indipendenza tra layer La regola appena espressa consente di evitare i seguenti problemi architetturali: ,[object Object],[object Object]
Cit. Juergen Hoeller  http://www.infoq.com/presentations/code-organization-large-projects
Il processo di sviluppo: 3° fase Rilascio del programma
Deploy e branching ,[object Object],[object Object],[object Object]
Fasi di sviluppo ... ... ... Prima fase Seconda fase Terza fase Raccolta requisiti Sviluppo Sviluppo Commit Commit Branching
Riferimenti:forum e mailing list  ,[object Object],[object Object],[object Object],[object Object]

Contenu connexe

En vedette

How I got 2.5 Million views on Slideshare (by @nickdemey - Board of Innovation)
How I got 2.5 Million views on Slideshare (by @nickdemey - Board of Innovation)How I got 2.5 Million views on Slideshare (by @nickdemey - Board of Innovation)
How I got 2.5 Million views on Slideshare (by @nickdemey - Board of Innovation)Board of Innovation
 
Upworthy: 10 Ways To Win The Internets
Upworthy: 10 Ways To Win The InternetsUpworthy: 10 Ways To Win The Internets
Upworthy: 10 Ways To Win The InternetsUpworthy
 
The Seven Deadly Social Media Sins
The Seven Deadly Social Media SinsThe Seven Deadly Social Media Sins
The Seven Deadly Social Media SinsXPLAIN
 
The What If Technique presented by Motivate Design
The What If Technique presented by Motivate DesignThe What If Technique presented by Motivate Design
The What If Technique presented by Motivate DesignMotivate Design
 
10 Powerful Body Language Tips for your next Presentation
10 Powerful Body Language Tips for your next Presentation10 Powerful Body Language Tips for your next Presentation
10 Powerful Body Language Tips for your next PresentationSOAP Presentations
 
How To (Really) Get Into Marketing
How To (Really) Get Into MarketingHow To (Really) Get Into Marketing
How To (Really) Get Into MarketingEd Fry
 
Crap. The Content Marketing Deluge.
Crap. The Content Marketing Deluge.Crap. The Content Marketing Deluge.
Crap. The Content Marketing Deluge.Velocity Partners
 
What Would Steve Do? 10 Lessons from the World's Most Captivating Presenters
What Would Steve Do? 10 Lessons from the World's Most Captivating PresentersWhat Would Steve Do? 10 Lessons from the World's Most Captivating Presenters
What Would Steve Do? 10 Lessons from the World's Most Captivating PresentersHubSpot
 
Digital Strategy 101
Digital Strategy 101Digital Strategy 101
Digital Strategy 101Bud Caddell
 
Why Content Marketing Fails
Why Content Marketing FailsWhy Content Marketing Fails
Why Content Marketing FailsRand Fishkin
 
The Search for Meaning in B2B Marketing
The Search for Meaning in B2B MarketingThe Search for Meaning in B2B Marketing
The Search for Meaning in B2B MarketingVelocity Partners
 

En vedette (13)

How I got 2.5 Million views on Slideshare (by @nickdemey - Board of Innovation)
How I got 2.5 Million views on Slideshare (by @nickdemey - Board of Innovation)How I got 2.5 Million views on Slideshare (by @nickdemey - Board of Innovation)
How I got 2.5 Million views on Slideshare (by @nickdemey - Board of Innovation)
 
Design Your Career 2018
Design Your Career 2018Design Your Career 2018
Design Your Career 2018
 
Upworthy: 10 Ways To Win The Internets
Upworthy: 10 Ways To Win The InternetsUpworthy: 10 Ways To Win The Internets
Upworthy: 10 Ways To Win The Internets
 
The Seven Deadly Social Media Sins
The Seven Deadly Social Media SinsThe Seven Deadly Social Media Sins
The Seven Deadly Social Media Sins
 
The What If Technique presented by Motivate Design
The What If Technique presented by Motivate DesignThe What If Technique presented by Motivate Design
The What If Technique presented by Motivate Design
 
10 Powerful Body Language Tips for your next Presentation
10 Powerful Body Language Tips for your next Presentation10 Powerful Body Language Tips for your next Presentation
10 Powerful Body Language Tips for your next Presentation
 
How To (Really) Get Into Marketing
How To (Really) Get Into MarketingHow To (Really) Get Into Marketing
How To (Really) Get Into Marketing
 
Crap. The Content Marketing Deluge.
Crap. The Content Marketing Deluge.Crap. The Content Marketing Deluge.
Crap. The Content Marketing Deluge.
 
What Would Steve Do? 10 Lessons from the World's Most Captivating Presenters
What Would Steve Do? 10 Lessons from the World's Most Captivating PresentersWhat Would Steve Do? 10 Lessons from the World's Most Captivating Presenters
What Would Steve Do? 10 Lessons from the World's Most Captivating Presenters
 
Digital Strategy 101
Digital Strategy 101Digital Strategy 101
Digital Strategy 101
 
Why Content Marketing Fails
Why Content Marketing FailsWhy Content Marketing Fails
Why Content Marketing Fails
 
The Search for Meaning in B2B Marketing
The Search for Meaning in B2B MarketingThe Search for Meaning in B2B Marketing
The Search for Meaning in B2B Marketing
 
How Google Works
How Google WorksHow Google Works
How Google Works
 

Similaire à Java&Solidarieta

Angular kit e Design system del Paese - Meetup ngRome 30 Gennaio 2023
Angular kit e Design system del Paese - Meetup ngRome 30 Gennaio 2023Angular kit e Design system del Paese - Meetup ngRome 30 Gennaio 2023
Angular kit e Design system del Paese - Meetup ngRome 30 Gennaio 2023AndreaStagi3
 
Laboratorio Internet: 1. Introduzione
Laboratorio Internet: 1. IntroduzioneLaboratorio Internet: 1. Introduzione
Laboratorio Internet: 1. IntroduzioneRoberto Polillo
 
Da JavaScript a TypeScript
Da JavaScript a TypeScriptDa JavaScript a TypeScript
Da JavaScript a TypeScriptRoberto Messora
 
Flavio ATZENI - SMAU 2014
Flavio ATZENI - SMAU 2014Flavio ATZENI - SMAU 2014
Flavio ATZENI - SMAU 2014Paradisi63
 
Generazione automatica diagrammi di rete con template pptx
Generazione automatica diagrammi di rete con template pptxGenerazione automatica diagrammi di rete con template pptx
Generazione automatica diagrammi di rete con template pptxGiacomoZorzin
 
Liferay - Quick Start 1° Episodio
Liferay - Quick Start 1° EpisodioLiferay - Quick Start 1° Episodio
Liferay - Quick Start 1° EpisodioAntonio Musarra
 
Gestione corsi con TYPO3
Gestione corsi con TYPO3Gestione corsi con TYPO3
Gestione corsi con TYPO3Ivano Luberti
 
I linguaggi del web - seconda edizione (3° giornata)
I linguaggi del web - seconda edizione (3° giornata)I linguaggi del web - seconda edizione (3° giornata)
I linguaggi del web - seconda edizione (3° giornata)Diego La Monica
 
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.Andrea Marchetti
 
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.Andrea Marchetti
 
Introduzione alla programmazione Android - Android@tulug
Introduzione alla programmazione Android - Android@tulugIntroduzione alla programmazione Android - Android@tulug
Introduzione alla programmazione Android - Android@tulugIvan Gualandri
 

Similaire à Java&Solidarieta (20)

Angular kit e Design system del Paese - Meetup ngRome 30 Gennaio 2023
Angular kit e Design system del Paese - Meetup ngRome 30 Gennaio 2023Angular kit e Design system del Paese - Meetup ngRome 30 Gennaio 2023
Angular kit e Design system del Paese - Meetup ngRome 30 Gennaio 2023
 
Link. javascript ajax
  Link. javascript ajax  Link. javascript ajax
Link. javascript ajax
 
Laboratorio Internet: 1. Introduzione
Laboratorio Internet: 1. IntroduzioneLaboratorio Internet: 1. Introduzione
Laboratorio Internet: 1. Introduzione
 
Da JavaScript a TypeScript
Da JavaScript a TypeScriptDa JavaScript a TypeScript
Da JavaScript a TypeScript
 
Smart api
Smart apiSmart api
Smart api
 
Flavio ATZENI - SMAU 2014
Flavio ATZENI - SMAU 2014Flavio ATZENI - SMAU 2014
Flavio ATZENI - SMAU 2014
 
Generazione automatica diagrammi di rete con template pptx
Generazione automatica diagrammi di rete con template pptxGenerazione automatica diagrammi di rete con template pptx
Generazione automatica diagrammi di rete con template pptx
 
Liferay - Quick Start 1° Episodio
Liferay - Quick Start 1° EpisodioLiferay - Quick Start 1° Episodio
Liferay - Quick Start 1° Episodio
 
Gestione corsi con TYPO3
Gestione corsi con TYPO3Gestione corsi con TYPO3
Gestione corsi con TYPO3
 
LucianoZu_CV
LucianoZu_CVLucianoZu_CV
LucianoZu_CV
 
I linguaggi del web - seconda edizione (3° giornata)
I linguaggi del web - seconda edizione (3° giornata)I linguaggi del web - seconda edizione (3° giornata)
I linguaggi del web - seconda edizione (3° giornata)
 
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
 
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
 
DDive - 8.5.2 Xpages - L'evoluzione continua
DDive - 8.5.2 Xpages - L'evoluzione continuaDDive - 8.5.2 Xpages - L'evoluzione continua
DDive - 8.5.2 Xpages - L'evoluzione continua
 
L'aspetto sociale del p2p
L'aspetto sociale del p2pL'aspetto sociale del p2p
L'aspetto sociale del p2p
 
l'aspetto sociale del p2p
l'aspetto sociale del p2pl'aspetto sociale del p2p
l'aspetto sociale del p2p
 
8. Architetture web
8. Architetture web8. Architetture web
8. Architetture web
 
Web2.0
Web2.0Web2.0
Web2.0
 
Introduzione alla programmazione Android - Android@tulug
Introduzione alla programmazione Android - Android@tulugIntroduzione alla programmazione Android - Android@tulug
Introduzione alla programmazione Android - Android@tulug
 
Grasso Frameworks Ajax
Grasso Frameworks AjaxGrasso Frameworks Ajax
Grasso Frameworks Ajax
 

Java&Solidarieta