IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langages de programmation Discussion :

Quelle est la meilleure façon d'organiser son code ?


Sujet :

Langages de programmation

  1. #1
    Membre averti
    Avatar de Pierre8r
    Homme Profil pro
    Inscrit en
    Octobre 2004
    Messages
    518
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 518
    Points : 341
    Points
    341
    Par défaut Quelle est la meilleure façon d'organiser son code ?
    Bonjour,

    Quelle est la meilleure façon d'organiser son code ?

    Ecrire comme dans un journal
    Chaque article (=une fonction) fait référence à un article suivant (=une autre fonction).
    Ainsi, votre code sera composé d’une série d’articles qui se suivent.

    Ou classer les fonctions par ordre alphabétique.

  2. #2
    Expert confirmé Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Points : 5 485
    Points
    5 485
    Par défaut
    Selon moi, Pierre Martin et beaucoup d'autres, il est recommandé de placer contigument les fonctions qui dépendent les unes les autres. Si ma fonction CalculeTTC appelle ObtenirTVA, alors la seconde devrait être placée sous la première.

    Quant à l'ordre alphabétique c'est hors de question : nous avons déjà des IDE pour nous permettre de retrouver n'importer quoi par son nom en deux secondes.

  3. #3
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 630
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 630
    Points : 10 556
    Points
    10 556
    Par défaut
    Par ordre alphabétique, parce que certains IDEs sont trop bêtes pour le faire
    Mais aussi par lot.

    Et au delà de l'IDE, je trouve que c'est plus facile de trouver ses méthodes/ fonctions/ procédures lorsqu'elles sont par ordre alphabétique.

    Par lot, je veux dire que mes méthodes/ fonctions/ procédures sont aussi triées par thème. Un petit exemple, en Objective-C
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    // UI
    - (void) go_to_menu:(id) sender;
    
    - (void) go_to_screen:(id) sender;
    
    // Keyboard Delegates
    - (void) address_keyboard_delegate;
    
    - (void) message_keyboard_delegate;
    
    // User Interactions
    // Step 2
    - (void) clean_entry:(id) sender;
    
    - (void) locate_me:(id) sender;
    
    - (void) select_one_result:(id) sender;
    
    - (void) select_result_from_location:(id) sender;
    
    // User Interactions
    // Step 3.1
    - (void) step_3_1_action:(id) sender;
    
    // User Interactions
    // Step 3.2
    - (void) step_3_2_action:(id) sender;
    
    // Callbacks
    - (void) alertView:(UIAlertView*) alertView clickedButtonAtIndex:(NSInteger) buttonIndex;
    
    - (void) animationHasFinished:(NSString*) animationID finished:(BOOL) finished context:(void*) context;
    
    - (void) reverse_geocoder_callback:(id) sender;
    
    // Callbacks
    // Step 2
    // /!\ Position 0 is the first position
    - (void) add_one_address:(NSString*) one_address with_tag:(int) tag and_postion:(short) position from_database:(BOOL) from_database;
    
    - (void) clean_result_list;
    
    - (void) finalize_result_list:(int) nb_results;
    
    // Player Methods
    - (void) observeValueForKeyPath:(NSString*) keyPath ofObject:(id) object change:(NSDictionary*) change context:(void*) context;
    
    - (void) play_next_video:(NSNotification*) notification;

  4. #4
    Expert confirmé Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Points : 5 485
    Points
    5 485
    Par défaut
    Citation Envoyé par foetus Voir le message
    Et au delà de l'IDE, je trouve que c'est plus facile de trouver ses méthodes/ fonctions/ procédures lorsqu'elles sont par ordre alphabétique.
    J'utilise Visual Studio.
    * Je dispose de deux boîtes combo au-dessus du texte qui listent les types et méthodes du fichier courant triés par ordre alphabétique.
    * Je peux faire ctrl + virgule pour taper le nom d'un type ou d'un membre quelconque de la solution et me rendre instantanément à ce dernier.
    * Je dispose d'un panneau à droite qui liste les types de la solution et leurs membres triés par ordre alphabétique sous la forme d'un arbre.
    * Je peux en deux clics sur n'importe quel identifiant me rendre à sa définition.

    Et tu ressens quand même le besoin de trier par ordre alphabétique ? J'avoue ne pas comprendre...

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 630
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 630
    Points : 10 556
    Points
    10 556
    Par défaut
    Citation Envoyé par DonQuiche Voir le message
    Et tu ressens quand même le besoin de trier par ordre alphabétique ? J'avoue ne pas comprendre...
    Parce qu'on n'a pas le même IDE (*) et la même configuration (**):

    *:
    De 2010 à 2013, j'ai travaillé avec l'IDE Apple XCode 4.X en Objective-C.

    Pour la petite histoire, dans ton code tu peux mettre des #pragma mark pour marquer ton code.
    Et donc XCode va faire une liste déroulante de sélection (en haut comme Visual) avec les noms des méthodes/ fonctions/ procédures + ces pragma + les catégories/ spécialisations mais dans l'ordre d'apparition dans ton fichier.
    Donc tu oublies joyeusement l'ordre alphabétique ... sauf si le développeur le maintient.
    Peut-être qu'avec XCode 5.X ou 6 ou via une option, ce n'est plus le cas: je ne sais pas

    **:
    Moi à gauche (et non pas à droite) j'ai la liste de mes fichiers
    Je me sers jamais de la liste des classes, méthodes et autres objets statiques ou "je-ne-sais-pas-quoi"

  6. #6
    Membre du Club
    Inscrit en
    Février 2013
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Février 2013
    Messages : 34
    Points : 43
    Points
    43
    Par défaut
    Il n'y a pas de meilleur façon. A toi de trouver celle qui est la plus adaptée a ton besoin.

    Mais dis toi que psychologiquement, le bas d'un code est plus "profond" et on s'attend a y retrouver toute la mécanique pointue.
    Alors que le haut est plus du pilotage .

Discussions similaires

  1. Réponses: 4
    Dernier message: 16/10/2008, 21h29
  2. Réponses: 10
    Dernier message: 25/09/2008, 08h49
  3. Réponses: 16
    Dernier message: 18/08/2008, 18h29
  4. Quelle est la meilleure façon de lisser un signal?
    Par regress dans le forum Traitement du signal
    Réponses: 16
    Dernier message: 06/02/2008, 12h36
  5. Réponses: 3
    Dernier message: 09/05/2006, 15h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo