Décompte des fonctions appelées (n = 86) et appelantes en cours

This commit is contained in:
Jean Sirmai 2024-07-09 10:45:26 +02:00
parent 5d9e70b03d
commit 73648be58e
Signed by: jean
GPG Key ID: FB3115C340E057E3
2 changed files with 99 additions and 35 deletions

View File

@ -32,11 +32,13 @@
#include "../include/callbacks.h" #include "../include/callbacks.h"
/* La question < Comment renommer les fonctions ? > /* Comment renommer les fonctions ?
* dépend d'au moins deux questions et d'au moins deux règles : * Cette question dépend de plusieurs choix
* nécessairement provisoires mais nécessaires.
* *
* *
* > Quel modèle pour l'organisation du client gem-graph ? * > Sur quel modèle se guider pour organiser le client gem-graph ?
* Comment l'adapter ? Que faut-il garder ? Que faut-il améliorer ?
* https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93viewmodel * https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93viewmodel
* https://en.wikipedia.org/wiki/Multitier_architecture * https://en.wikipedia.org/wiki/Multitier_architecture
* *
@ -46,38 +48,48 @@
* (et comment classer et nommer les autres) ? * (et comment classer et nommer les autres) ?
* *
* *
* > Ici, les noms doivent être "human-readable" ET "machine-readable. * > Comment rendre "human-readable" des noms d'un langage "machine-readable" ?
* *
* > Toute fonction utilisée par un autre module doit * _________________
*
* >>> Nous avons à nous choisir des règles de renommage des fonctions
* qui soient conformes aux 'bonnes pratiques' du 'génie logiciel'
* ET soient les plus pertinentes possibles pour notre cas particulier.
* (en cours, 2024-07-09 10h40)
*
*
* >>> Proposition : Toute fonction utilisée par un autre module doit
* - commencer D'ABORD par le nom de ce module, * - commencer D'ABORD par le nom de ce module,
* - indiquer ENSUITE sa nature (get, set, print,...) * - indiquer ENSUITE sa nature (get, set, print,...)
* - et ENFIN son objet (STATE, RULES,...) * - et ENFIN son objet (STATE, RULES, STACK,...)
* *
* ex: widget_get_RULES_page() * ex: widget_get_RULES_page()
* automat_set_STATE_RULES_DATA() * automat_set_STATE_RULES_DATA()
* on_save_CURRENT_MODEL_before_editing() * on_save_CURRENT_MODEL()
* model_get_DIM_VALUE() * model_get_DIM_VALUE()
* model_get_NEXT_ARROW() * model_get_NEXT_ARROW()
* area_get_GRAPH_STACK() ou graph_get_GRAPH_STACK()
* *
* 'on_' == callback ('on_' est un alias de 'callbacks')
* 'model' == parse ('model' est un alias de 'parse') * 'model' == parse ('model' est un alias de 'parse')
* 'graph' == area ('graph' est un alias de 'area')
* 'on_' == callback ('on_' est un alias de 'callbacks')
* Ainsi, TOUS les callbacks sont dans le fichier 'src/callbacks.c'
* Leur nom commence TOUJOURS par: 'on_'
* ET AUCUN AUTRE nom de fonction ne commence par 'on_'.
* *
* *
* > selon ces règles, get_user_tree_model() * > selon ces règles, get_user_tree_model()
* devrait être renommé : tree_get_USER_TREE_MODEL() * devrait être renommé : tree_get_USER_TREE_MODEL()
* *
* > si, comme c'est prévisible, 'state.c' devient un dossier contenant : * > si, comme c'est prévisible, 'state.c' devient un dossier contenant :
* les fichiers 'controls.c', 'camera.c', 'contrasts.c' et d'autres * les fichiers 'controls.c', 'camera.c', 'contrasts.c' et d'autres,
* alors, get_ZOOM_box() * alors, get_ZOOM_box()
* devrait être renommé : state_camera_get_ZOOM_box() * devrait être renommé : state_camera_get_ZOOM_box()
* *
* _________________
* *
* >>> nous devons nous choisir des règles de renommage des fonctions qui
* soient conformes aux 'bonnes pratiques' du 'génie logiciel'
* ET soient les plus pertinentes possibles pour notre cas particulier.
*
* (2024-07-09 5h00)
* *
* QUELLE EST L'ORGANISATION ACTUELLE ?
* *
* 1) Les structures hiérarchiques. * 1) Les structures hiérarchiques.
* -------------------------------- * --------------------------------
@ -171,32 +183,73 @@
* >> des 'scripts' pour des 'méta-fonctions' (des 'macros') ? * >> des 'scripts' pour des 'méta-fonctions' (des 'macros') ?
* *
* *
* Comment optimiser ?
* -------------------
* *
* Modularité <> définir les interfaces entre modules tôt et précisément *
* Commenter <> faire tester (pas trop tôt, pas trop tard) *
* Tester <> tests graphiques, unaires, profiling... *
*/ *
*
*
*
/* L I S T E D E S F I C H I E R S A R E N O M M E R */ *
/* (en cours, 2024-07-09 5h00) */ *******************************************************************************
* L I S T E D E S F O N C T I O N S A R E N O M M E R *
/* Tous les callbacks sont dans le fichier 'src/callbacks.c' * *****************************************************************************
* et leur nom commence par: 'on_' *
* (aucun autre nom de fonction ne commence par 'on_'). * Ces fonctions peuvent être énumérées selon leur source ou leur destination.
* Il y a, en tout, à ce jour :
* - (86) fonctions appelées (dont 6 data)
* - (m) fonctions appelantes
* - (e) enum
* - (s) struct
* - (d) define
*
* NB Seules les fonctions spécifiques de gem-graph-client sont prises en compte.
* Les fonctions 'static' ne sont pas comptées.
*
*
*
*******************************************************************************
* L I S T E D E S F O N C T I O N S A P P E L É E S *
* *****************************************************************************
* (en cours, 2024-07-09 10h40)
*
* main 1
* callbacks 18
* automat 8 + 2 enum
* parse 8
* 35
*
* graph / area 11 + 1 struct + 1 size_t
* graph / stack 3 + 1 struct + 2 size_t + 1 int
* graph / draw 5
* graph / grid 4
* graph / init 2
* graph / shader.frag 1
* graph / shader.vert 1
* 27
*
* widget / heads 10
* widget / rules 1
* widget / state 1
* widget / stock 2
* widget / tree 2 + 1 struct
* widget / labo 1
* 17
*
* data / image 5
* data / text 2
*
* TOTAL 86
*
* Tous les fonctions appelées par les fonctions callback() sont dans 'widgets.h' * Tous les fonctions appelées par les fonctions callback() sont dans 'widgets.h'
* SAUF celles qui concernent la 'state machine' qui sont dans 'base.h': * SAUF celles qui concernent la 'state machine', dans 'automat.h', qui sont :
* set_EXEC_EDIT() get_EXEC_EDIT() * set_EXEC_EDIT() get_EXEC_EDIT()
* set_STATE_RULES_DATA() get_STATE_RULES_DATA() * set_STATE_RULES_DATA() get_STATE_RULES_DATA()
* set_OBJECTS_box_RESET_VALUE() get_OBJECTS_box_RESET_VALUE() * set_OBJECTS_box_RESET_VALUE() get_OBJECTS_box_RESET_VALUE()
* set_SITUATIONS_box_RESET_VALUE() get_SITUATIONS_box_RESET_VALUE() * set_SITUATIONS_box_RESET_VALUE() get_SITUATIONS_box_RESET_VALUE()
* *
* (Ces fonctions iront dans un fichier 'automat.h')
* *
* Les autres fonctions appelées par les fonctions callback() sont : * Les autres fonctions appelées par les fonctions callback() sont :
* *
@ -211,10 +264,21 @@
* on_axis_value_change() * on_axis_value_change()
* graph_update_axis_stack() * graph_update_axis_stack()
* *
*.....
* *
* *
* *
* (en cours - 2024-07-09 5h00) *
*******************************************************************************
* L I S T E D E S F O N C T I O N S A P P E L A N T E S *
* *****************************************************************************
* (en cours, 2024-07-09 10h40)
*
*
*
*
*
* (déplacer systématiquement les enum, struct, size_t, etc. vers les include ?)
*/ */

View File

@ -47,7 +47,7 @@
* - CONTRAST en haut permet de modifier un à un les contrastes des objets et des situations * - CONTRAST en haut permet de modifier un à un les contrastes des objets et des situations
* afin de mieux mettre en évidence l'objet ou le phénomène d'intérêt */ * afin de mieux mettre en évidence l'objet ou le phénomène d'intérêt */
GtkBox *get_XYZ_box() static GtkBox *get_XYZ_box()
{ {
GtkBox *XYZ_labels_box = GTK_BOX (gtk_box_new (GTK_ORIENTATION_VERTICAL, 2)); // spacing = 2 GtkBox *XYZ_labels_box = GTK_BOX (gtk_box_new (GTK_ORIENTATION_VERTICAL, 2)); // spacing = 2
GtkBox *XYZ_scrollbar_box = GTK_BOX (gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 2)); GtkBox *XYZ_scrollbar_box = GTK_BOX (gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 2));
@ -186,7 +186,7 @@ static GtkWidget *get_OBJECTS_and_SITUATIONS()
return objects_and_situations_horizontal_pane; return objects_and_situations_horizontal_pane;
} }
GtkWidget *get_SPACE_VIEW_box() static GtkWidget *get_SPACE_VIEW_box()
{ {
GtkBox *right_box = GTK_BOX (gtk_box_new (GTK_ORIENTATION_VERTICAL, 2)); GtkBox *right_box = GTK_BOX (gtk_box_new (GTK_ORIENTATION_VERTICAL, 2));
gtk_box_append (right_box, GTK_WIDGET (get_XYZ_box())); gtk_box_append (right_box, GTK_WIDGET (get_XYZ_box()));