Skip to content
Snippets Groups Projects
README.md 4.5 KiB
Newer Older
Olivier Maury's avatar
Olivier Maury committed
# Développement

### Sommaire

* 1. [Installation de la base de données](#Installation%20de%20la%20base%20de%20données)
* 2. [Bonnes pratiques Subversion](#Bonnes%20pratiques%20Subversion)
* 3. [Bonnes pratiques de codage](#Bonnes%20pratiques%20de%20codage)
* 4. [Configuration d'Eclipse](#Configuration%20d'Eclipse)
* 5. [Documentation](#Documentation)


Olivier Maury's avatar
Olivier Maury committed
## Installation de la base de données

Les identifiants d'accès à la base de données sont écrits dans `sido-gwt/src/main/config/<PROFIL_MAVEN>/persistence.xml`.

Pour créer la base de données applicative :

- créer un utilisateur pour l'application :

      sudo su postgres
      psql
      CREATE USER sido WITH PASSWORD 'sido';
      CREATE USER foret WITH PASSWORD 'foret';
      
- créer la base de données applicative :

      CREATE DATABASE sido WITH OWNER = sido ENCODING = 'UTF8' LC_COLLATE = 'fr_FR.UTF-8' LC_CTYPE = 'fr_FR.UTF-8';
      
- donner les droits de connexion :

      sudo vi /etc/postgresql/9.6/main/pg_hba.conf
      sudo /etc/init.d/postgresql reload
      
- créer le schéma en suivant la documentation dans `src/site/markdown/` ou en exécutant les scripts SQL dans `query/`.
Olivier Maury's avatar
Olivier Maury committed

Olivier Maury's avatar
Olivier Maury committed

## Bonnes pratiques Subversion

Ne pas ajouter dans le gestionnaire de version Subversion de fichiers issus des exécutions tels que les fichiers de cache, de logs, de compilation.
Ainsi généralement la propriété `svn:ignore` peut contenir :
```
gwt-unitCache
logs
target
war
``` 
Olivier Maury's avatar
Olivier Maury committed

## Bonnes pratiques de codage

Le code est écrit en anglais : nom des classes, méthodes, propriétés, documentation JavaDoc. La documentation annexe est rédigée en français, le plus possible dans des fichiers textes (MarkDown, PlantUML par exemple), la documentation est ainsi générée par Maven avec la commande `mvn site`.

Toutes les classes, méthodes de classes et propriétés de classes doivent être documentés dès leur conception et mises à jour à chaque modification.

Un entête JavaDoc de classe ressemble à

```
/**
 * Translation helper.
 *
 * The fallback properties files is `baseName.properties`, while the translated
 * properties file is `baseName_locale.properties`.
 *
 * Last changed : $Date$
 *
 * @author Prénom Nom
 * @version $Revision$
 */
```

La première ligne est une description courte.

Le paragraphe suivant décrit l'objet de la classe, les interactions avec les autres classes si nécessaire.

On peut noter la présence des mots-clefs Subversion `Date Revision` qui sont définis dans les propriétés Subversion du fichier `svn:keywords` pour une substitution automatique.

Ne pas utiliser la fonction `System.out.println()` pour écrire dans la sortie standard les logs, mais utiliser les fonctions de logging avec les niveaux appropriés.

Olivier Maury's avatar
Olivier Maury committed
## Configuration d'Eclipse

Par Eclipse, on entend *Eclipse IDE for JavaEE Developers*.

Définir le profil Maven à exécuter en cliquant sur le menu du projet `sido` : `Maven > Select Maven Profiles... (Ctrl+Alt+P)`.
Ce choix de profil permettra de développer l'interface GWT avec une des configurations définies dans `sido-gwt/src/main/config/`.

### Extensions nécessaires et utiles

- Eclipse Checkstyle plug-in
- GWT 2.8.1 SDK
- Mardown Editor
- Subversive SVN Connectors
- Subversive SVN Integration for the M2E Project

### Que faire en cas de `Could'nt load from Super Dev Mode`

Il peut arriver, après s'être authentifié, que le serveur retourne une boite de dialogue comme suit :
```
Couldn't load SidoGwt from Super Dev Mode
server at http://localhost:xxxx.
Please make sure this server is ready.
Do you want to try again?
       YES   NO
```

Vraisemblablement, l'IDE n'a pas démarré le `CodeServer`. Vérifier que le serveur Tomcat est démarré, puis cliquer sur démarrer le `SidoGWT CodeServer`.

Olivier Maury's avatar
Olivier Maury committed

#### `Errors running builder 'Checkstyle Builder' on project 'sido'`

Rechercher dans le dossier `/.checkstyle` la valeur de l'attribut `check-config-name`, ici `SIDO SUN Checks`.

```
<?xml version="1.0" encoding="UTF-8"?>
<fileset-config file-format-version="1.2.0" simple-config="true" sync-formatter="false">
  <fileset name="all" enabled="true" check-config-name="SIDO SUN Checks" local="false">
    <file-match-pattern match-pattern="." include-pattern="true"/>
  </fileset>
</fileset-config>
```

Vérifier la cohérence avec la configuration de CheckStyle dans le menu `Window > Preferences` : il faut une configuration CheckStyle portant ce nom pointe sur `/sido/config/sun_checks.xml`.

---

## Documentation

      src/site/markdown/

### Administration

      src/site/markdown/administration.md
Olivier Maury's avatar
Olivier Maury committed
$Id$