diff --git a/complexite_cyclo_1.md b/complexite_cyclo_1.md index e69de29..81ad3ff 100644 --- a/complexite_cyclo_1.md +++ b/complexite_cyclo_1.md @@ -0,0 +1,48 @@ +# 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.