forked from menault/TD2_DEV51_Qualite_Algo
49 lines
1.3 KiB
Markdown
49 lines
1.3 KiB
Markdown
# Complexité Cyclomatique - Projet ping-report
|
|
|
|
## ping-report.c
|
|
- `main()` : **4**
|
|
|
|
## daemon.c
|
|
- `create_daemon()` : **4**
|
|
- `ping_request()` : **2**
|
|
- `send_check()` : **3**
|
|
- `check_keep_working()` : **4**
|
|
- `daemon_work()` : **3**
|
|
|
|
## db-sqlite.c
|
|
- `db_connect()` : **1**
|
|
- `db_disconnect()` : **1**
|
|
- `insert_hourly_report()` : **1**
|
|
|
|
## utils.c
|
|
- `write_pid_file()` : **2**
|
|
- `remove_file()` : **1**
|
|
|
|
## stats.c
|
|
- `get_ping_from_temp_log()` : **14** → **3** (refactorisé)
|
|
- `write_ping_log()` : **4**
|
|
- `set_stats_ping()` : **12** → **3** (refactorisé)
|
|
|
|
|
|
## Améliorations apportées
|
|
|
|
### Fonctions refactorisées (complexité > 6)
|
|
|
|
**1. `get_ping_from_temp_log()` : 14 → 3**
|
|
- Divisée en 5 fonctions d'aide
|
|
- Chaque fonction fait une seule chose
|
|
- Plus facile à tester et déboguer
|
|
|
|
**2. `set_stats_ping()` : 12 → 3**
|
|
- Divisée en 3 fonctions d'aide
|
|
- Structure PingStats pour clarifier
|
|
- Logique de calcul séparée
|
|
|
|
### Avantages (comme vu en cours)
|
|
- Code plus lisible
|
|
- Maintenance plus simple (si un developpeur veut changer une donnée, il peut le faire à un seul endroit pour que tout puisse changer. Cela évite aussi de copier coller des bouts de codes )
|
|
- Tests unitaires possibles
|
|
- Réutilisabilité des fonctions d'aide
|
|
|
|
### Le calcul de la complexité de chaque fonction modifiée a été mise en commentaire directement.
|