Skip to content
This repository has been archived by the owner on Dec 11, 2020. It is now read-only.

Commit

Permalink
Maj guide de développement et détail des nouveaux packages
Browse files Browse the repository at this point in the history
  • Loading branch information
totakoko committed Apr 5, 2019
1 parent 7939d71 commit 1ae2da6
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 10 deletions.
43 changes: 33 additions & 10 deletions DEVELOPMENT.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
## Développement
# Développement

### Installation
## Installation

Prérequis :
- [go](https://golang.org/) (testé avec 1.11)
- [dep](https://github.com/golang/dep)
- [mockery](https://github.com/vektra/mockery)
- [golangci-lint](https://github.com/golangci/golangci-lint)
- [docker-compose](https://docs.docker.com/compose/install/) (testé avec 1.19.0)

Il faut d'abord installer les dépendances.
Expand All @@ -23,25 +24,47 @@ Enfin lancer l'application.
go run main.go
```

### Organisation

## Organisation

- app/ : config et bootstrap application
- authentication/ : gestion des sessions et de l'authentification via SSO
- cron/ : cron qui définit les tâches périodiques
- database/ : couche d'accès à la base de données
- httpserver/ : serveur HTTP
- domain/ : services métier
- emails/ : envoi d'emails par SMTP
- errors/ : erreurs applicatives
- events/ : gestion des événements pour mettre à jour les données automatiquement chez les clients via WebSocket
- httpserver/ : serveur HTTP
- models/ : entités métier
- app/ : config et bootstrap application
- tests/e2e/ : tests end-to-end
- redis/ : client [Redis](https://redis.io)
- storage/ : gestion des documents (pièces-jointes et rapports) via [Minio](https://min.io)
- templates/ : gestion et rendu des templates (documents ODT et emails)
- tests/benchmark/ : tests de benchmark
- tests/e2e/ : tests end-to-end (HTTP)
- tests/integration/ : tests d'intégration (services)
- util/ : fonctions utilitaires
- vendor/ : contient les dépendances
- main.go : point d'entrée
- gopkg.toml : fichier descripteur des dépendances


## Lint

### Mise à jour des mocks
[golangci-lint](https://github.com/golangci/golangci-lint) permet de linter le code.

```sh
golangci-lint run
```

## Mise à jour des mocks

```
go generate ./...
```

### Tests

## Tests

Lancement d'un test :
```
Expand All @@ -57,7 +80,7 @@ go test -p 1 -v ./...
- `FILHARMONIC_DATABASE_LOGSQL=1` permet d'afficher les requêtes SQL.


### Benchmarks
## Benchmarks

On utilise [k6](https://k6.io/), qui permet d'écrire des scénarios en javascript.

Expand All @@ -72,7 +95,7 @@ docker run -it --rm -v $PWD/tests/benchmark/:/benchmark --network host loadimpac
```


### Modifications du modèle
## Modifications du modèle

Pour vérifier que le schéma des migrations correpond bien à celui des structures, lancer le script suivant :
```
Expand Down
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@
Application en cours de développement et accessible sur [filharmonic.beta.gouv.fr](https://filharmonic.beta.gouv.fr).

## Développement

Voir le [guide de développement](./DEVELOPMENT.md).

## Crédits

### Production
Expand Down

0 comments on commit 1ae2da6

Please sign in to comment.