LINK PREFERITI:
JAVA
Java è un linguaggio di programmazione orientato agli oggetti ideato da James Goslin e da altri ingegneri della Sun MicrosystemECLIPSE
Eclipse è un progetto open source legato alla creazione e allo sviluppo di una piattaforma di sviluppo o meglio di un ambiente integrato di sviluppo (IDE - Integrated Development Environment). Eclipse è stato scritto in Java... La Eclipse Foundation è una organizzazione non-profitMYSQL
MYSQL è un DBMS (DataBase Management System) relazionale Open Source. Un RDBMS organizza i dati in tabelle, basandosi sulle relazioni fra essiPostgreSQL
PostgreSQL è il database open source più avanzato. Elaborare informazioni da SQL a un linguaggio come Java orientato agli oggetti può comportare eccessivo dispendio di tempo, questo problema è chiamato impedance mismatch, PostgreSQL consente l'ereditarietá dei tipi... uno dei concetti base della programmazione ad oggetti, ad esempio si può dichiarare un tipo Persona e un tipo Lavoratore basato sul tipo Persona...TORTOISE SVN
Tortoise SVN è un software per il controllo di versione nello sviluppo di un’applicazioneUBUNTU
Ubuntu è una distribuzione GNU/Linux ispirata a Debian, facilità di installazione e di utilizzo, rilascio regolare delle nuove versioni, attenzione maggiore al supporto dell'hardware dei portatiliJSF
Java Sever Faces è una tecnologia Java basata sul design pattern architetturale Model-View-Controller (MVC) e descritta da un documento di specifiche (JSR 127).Il suo scopo è di semplificare lo sviluppo dell' interfaccia utente (UI - User Interface) di una Web ApplicationHibernate
Hibernate è una piattaforma open source per lo sviluppo di applicazioni Java che fornisce un servizio ORM (Object Relational Mapping), ovvero che gestisce la rappresentazione e il mantenimento su database relazionale di un sistema di oggetti Java. Hibernate permette la persistenza dei dati di un databaseTomcat
Tomcat è un web container open source sviluppato dalla Apache Software Foundation. Implementa le specifiche JSP e Servlet di Sun Microsystems, fornendo quindi una piattaforma per l'esecuzione di Web Application sviluppate nel linguaggio Java. La sua distribuzione standard include anche le funzionalità di web server tradizionale, che corrispondono al prodotto Apache. Tomcat è rilasciato sotto licenza Apache Software License, ed è scritto interamente in Java; può quindi essere eseguito su qualsiasi architettura su cui sia installata una JVM (Java Virtual Machine).Jboss Application Server
Jboss è un Application Server open source che implementa l'intero standard JEE. Jboss è scritto in Java, ed è un Application Server multipiattaforma ovvero eseguibile su qualsiasi SO (sistema operativo) che supporti Java.Log4J
LOG4J è un logging service per effettuare il debug e la verifica delle applicazioni.Ant
Ant è un progetto Apache, open source, Ant è un software per l'automazione del processo di build.UML Methodology
UML Unified Modelling Language è un linguaggio di modellazione la cui caratteristica è il paradigma Object Oriented, consente la descrizione di soluzioni progettuali orientate agli oggetti software. L'UML permette la descrizione del dominio applicativo, del comportamento e della struttura di un software Object Oriented.CRC Cards
Class Responsibility Collaboration Cards è una metodologia di progettazione software object oriented. In ogni "carta" vi è il nome della classe, i nomi delle superclassi e o delle sottoclassi, la responsabilità della classe in oggetto (quello che deve fare), i nomi di altre classi con le quali la classe collabora. Le CRC cards hanno il grande vantaggio di poter gestire e ridurre una progettazione software complessa.Design Pattern
Design Pattern Un design pattern è una soluzione progettuale generale a un problema ricorrente, può essere definito un modello da applicare per la soluzione di un problema che riscontra nello sviluppo del software. Un design pattern è legato ad aspetti progettuali del software.JUnit
JUnit è è un Unit Test Framework per Java.Test-Driven Develpoment
Il ciclo del TDD:-Aggiungi un test
-Esegui tutti i test e vedi se fallisco dei test
-Scrivi codice per permettere ai test di aver successo
-Esegui test automatizzati e vedi cosa succede
-Refactoring del codice
Continuos Integration
-Amministrare e automatizzare il processo di build...-Integrare il lavoro del singolo nel lavoro del team
-Feedback sui cambiamenti di codice, ma anche report, documenti
-Sono diminuiti considerevolmente i costi degli errori, i problemi di integrazione
Il processo di build automatizzato ed intervalli regolari permette di verificare se i cambiamenti di codice fanno fallire test che prima erano funzionanti, se i test hanno successo si “tagga” la versione del codice.
Coding Standard
Amministrare e automatizzare il processo di build...Ottimo se si utilizza quando il codice è collettivo...
permette una miglior lettura del codice agli altri...
ma non solo a loro...
Refactoring
-Ristrutturazione del codice-Non aggiunge funzionalità
-Ma migliora il disegno semplificando...
-Semplificando disegno e codice
-Attuato per mezzo di brevi step
Collettive Code Ownership
-Comunicazione nel Team-Aiutare gli altri
-Chiedere aiuto