Maison > Périphériques technologiques > Industrie informatique > Comment organiser correctement les fichiers dans votre base de code et éviter le chaos

Comment organiser correctement les fichiers dans votre base de code et éviter le chaos

Jennifer Aniston
Libérer: 2025-02-15 11:14:12
original
826 Les gens l'ont consulté

How to Properly Organize Files in Your Codebase & Avoid Mayhem

Organisation et maintenance de grandes bases de code: bibliothèque principale, données, interface utilisateur, documentation et wiki, tests, composants hérités et composants tiers ... comment suivre et maintenir l'ordre de tout ce contenu? L'organisation des fichiers dans les bases de code peut être une tâche difficile.

Ne vous inquiétez pas - nous pouvons le faire! Cet article passera en revue les systèmes les plus couramment utilisés pour les petits et les grands projets et offrira certaines meilleures pratiques faciles à suivre.

points clés

  • L'organisation des fichiers dans votre base de code peut réduire les problèmes et gagner du temps lorsque vous devez accéder et consulter le contenu à l'avenir. Il est très important d'établir des règles de base pour la dénomination des fichiers, le traitement de la documentation du projet et l'organisation de workflows efficaces.
  • Chaque projet logiciel doit avoir un ReadMe, Changelog, Copying License et .Gitignore Fichier. Selon la situation du projet, d'autres fichiers tels que les auteurs, les bogues, la contribution / le piratage, la FAQ, l'installation, les actualités, merci, Todo / Roadmap, la version / version peuvent également être inclus.
  • Les fichiers doivent être organisés en dossiers de composants ou de sous-systèmes, mais les répertoires doivent être créés pour garder les choses gérables. Certains types de fichiers, tels que les données, les fichiers binaires et les paramètres, doivent être exclus du projet.
  • La clé pour documenter l'organisation réside dans la cohérence. Qu'il s'agisse de dénomination des répertoires ou des fichiers, ou la structure d'un projet, le maintien de la cohérence rend la base de code plus facile à naviguer et à comprendre.

Pourquoi s'embêter?

Comme avec presque toutes les tâches liées à la gestion de projet - documentation, soumission de logiciels, déploiement - vous bénéficierez grandement d'une approche consciente et programmatique. Cela réduira non seulement les problèmes actuels, mais vous fera également gagner un temps précieux, ainsi que votre équipe, lorsque le contenu doit être rapidement accessible et examiné à l'avenir.

Vous pouvez certainement vous rappeler le nom de la fonction de tout ce que vous écrivez en ce moment et trouver rapidement les fichiers que vous avez besoin pour éditer et dire clairement ce qui fonctionne et ce qui ne fonctionne pas - ou ce que vous pensez. Mais pouvez-vous dire la même chose au sujet du projet sur lequel vous avez travaillé l'année dernière?

Admitons: les projets logiciels peuvent durer des mois, voire des années d'inactivité. Un fichier de réadme simple peut faire beaucoup de choses pour vos collègues ou vous avenir. Mais considérons d'autres façons de créer un projet et de créer des règles de base pour nommer des fichiers, de traiter la documentation du projet et, dans une certaine mesure, organiser un flux de travail efficace qui résiste à l'épreuve du temps.

comprendre les choses

Nous établirons une "ligne de base" pour les documents d'un projet d'organisation - une logique qui nous servira dans de nombreuses situations dans le cadre du développement logiciel.

Comme pour nos règles concernant la soumission des modifications de base de code correctement, aucun de ceux-ci n'est fixé dans la pierre et, en termes de valeur, vous et votre équipe pouvez proposer différents principes directeurs. Quoi qu'il en soit, la cohérence

est le nom du jeu. Assurez-vous de comprendre (et de discuter ou de discuter) quelles sont les règles et de les suivre après le consensus.

Documents requis

Il s'agit d'une liste de référence des fichiers que presque tous les projets logiciels devraient avoir:

  • Readme: C'est ce que GitHub présente pour vous sous l'arborescence source, qui peut aider à expliquer le contenu du projet, comment les fichiers sont organisés et où trouver plus d'informations. Changelog: répertorie le contenu nouveau, modifié ou désactivé dans chaque version ou révision, généralement pour plus de commodité, dans l'ordre anti-chronologique (les dernières modifications sont à l'avant-garde).
  • Licence de copie: un fichier qui contient le texte intégral de la licence couvrant le logiciel et, si nécessaire, d'autres informations sur le droit d'auteur (comme une licence tierce).
  • .gitignore: En supposant que vous utilisez GIT (que vous utilisez très probablement), cela sera également nécessaire pour indiquer quels fichiers ne sont pas synchronisés avec le référentiel. (Pour plus d'informations sur .gitignore, consultez le guide et la documentation de Git Git de démarrage de Git et consultez la collection utile de modèles .gitignore pour certaines idées.)
  • supporters

Selon la situation du projet, vous pouvez également envisager d'inclure d'autres documents:

Auteurs: L'attribution de la personne impliquée dans la rédaction du code.
  • Bogues: problèmes et instructions connues pour signaler les nouvelles erreurs trouvées.
  • Contribution / piratage: un guide pour les contributeurs potentiels, particulièrement utile pour les projets open source.
  • FAQ: Vous savez déjà ce que c'est. ;)
  • Installer: Instructions sur la façon de compiler ou d'installer un logiciel sur différents systèmes.
  • NOUVELLES: similaire aux fichiers Changelog, mais pour les utilisateurs finaux, pas les développeurs.
  • Merci: Merci.
  • TODO / FEMAP ROAD: une liste des fonctionnalités à venir prévues.
  • Version / version: une ligne de code qui décrit le numéro de version actuel ou le nom de distribution.
  • dossiers des composants ou sous-systèmes

Nous rencontrons souvent un ensemble de fonctions qui peuvent être combinées en un seul concept.

Certains exemples pourraient être:

Internationalisation (I18N) et localisation (L18N)
  • Module d'authentification
  • Les modules complémentaires tiers
  • Outils généraux et affectations Cron
  • Interface utilisateur (UI) et interface utilisateur graphique (GUI)
  • Tout cela peut être organisé en un seul répertoire "composant" ou "sous-système" - mais ne soyez pas fou!

Nous voulons restreindre la création de répertoires pour garder les choses gérables, que ce soit dans le répertoire racine (les principaux composants seront situés ici) ou récursivement (dans chaque répertoire). Sinon, nous pouvons finir par passer beaucoup de temps à parcourir régulièrement des fichiers dans des répertoires bien organisés.

Veuillez exclure ces

de l'arbre source

Bien que nous voulons que le projet soit soigné et ordonné, il y a certains documents que nous voulons que soit complètement exclu du projet.

Données. Vous pourriez être tenté d'avoir un répertoire / répertoire dans l'arborescence source pour les fichiers CSV, etc., surtout s'ils ne prennent que quelques kilobytes. Mais que se passe-t-il s'ils prennent des mégaoctets ou même des gigaoctets (qui n'est pas rare de nos jours)? Voulez-vous vraiment les soumettre à votre code comme vous le feriez avec votre base de code? Non.

Fichier binaire. Vous ne voulez pas que le rendu vidéo ou les exécutables compilés soit situé à côté du code source. Ce ne sont pas des fichiers de développement, ils n'appartiennent pas du tout ici. Comme les fichiers de données, ils peuvent finir par prendre beaucoup d'espace.

Paramètres. Ceci est un autre grand tabou. Vous ne devez pas placer les informations d'identification, les mots de passe ou même les jetons de sécurité dans votre base de code. Nous ne pouvons pas couvrir une solution à ce problème ici, mais si vous êtes un développeur Python, envisagez d'utiliser Python Decouple.

cas 1: application Web

Considérons une application Web - un logiciel qui s'exécute sur un serveur Web auquel vous pouvez accéder via un navigateur, que ce soit sur un bureau ou un appareil mobile. Et en supposant qu'il s'agit d'une application Web qui fournit un abonnement pour accéder à une sorte de service premium - des rapports exclusifs, des conseils de voyage ou des vidéos.

Structure de fichiers

<code>├── .elasticbeanstalk
├── .env
├── billing
├── changelog.txt
├── locale
│   ├── en
│   └── zh_Hans
├── members
├── readme.txt
├── static
│   ├── fonts
│   ├── images
│   ├── javascript
│   └── styles
├── templates
│   ├── admin
│   └── frontend
├── todo.txt
└── tools</code>
Copier après la connexion

Analyse

Il s'agit d'une structure d'application Web de base avec la prise en charge de deux langues (chinois anglais et simplifié (répertoire local). Il existe également deux composantes principales, la facturation et les membres.

Si vous êtes un peu plus familier avec le développement du site Web, le contenu des dossiers statiques et des modèles peut sembler familier. Peut-être que le seul élément inhabituel pourrait être .ElasticBeanStalk, qui stocke les fichiers de déploiement pour Amazon Web Services (AWS), et .env, qui stocke uniquement les paramètres de projets sur site tels que les informations d'identification de base de données. Le reste, comme Readme et Todo, nous en avons discuté. Le répertoire des outils est un répertoire intéressant. Ici, nous pouvons stocker des scripts, par exemple, la réduction de la base de données, le contrôle de l'état de paiement ou rendre les fichiers statiques à cache - en grande partie, tout ce qui n'est pas l'application elle-même mais contribue à le faire fonctionner.

En ce qui concerne la dénomination, si nous nommons le répertoire d'images en tant qu'images / ou img /, ou nommez le répertoire des styles en tant que styles / ou css /, ou nommez le répertoire JavaScript / comme js /, il n'y a pas de différence. L'essentiel est que la structure est logique, et nous suivons toujours une certaine convention, qu'il s'agisse d'un long nom descriptif ou court.

cas 2: application de bureau

Laissez-nous maintenant considérer une application que vous pouvez télécharger et installer sur votre ordinateur. Et supposons que l'application nécessite des entrées, telles qu'un fichier CSV, puis rendez une série de rapports.

Dans cet exemple, nous agrandirons l'arbre source légèrement plus grand.

Structure de fichiers

Analyse

<code>├── .gitignore
├── data
├── doc
├── legacy
│   ├── dashboard
│   ├── img
│   └── system
├── LICENSE
├── README
├── tests
├── thirdparty
├── tools
│   ├── data_integration
│   └── data_scraping
├── ui
│   ├── charts
│   ├── css
│   ├── csv
│   ├── dashboard
│   ├── img
│   │   └── icons
│   ├── js
│   ├── reports
│   └── summaries
├── VERSION
└── wiki</code>
Copier après la connexion
UI / Les dossiers sont essentiellement le cœur de l'application. Le nom du sous-dossier est presque évident (une autre bonne habitude). Contrairement à notre exemple d'application Web, nous avons choisi ici le nom d'abréviation (par exemple JS au lieu de JavaScript). Encore une fois, ce qui compte vraiment, c'est que nous sommes cohérents dans tout le projet.

Plus tôt, j'ai suggéré d'exclure les fichiers de données de l'arborescence source, mais il y a un dossier / dossier là-bas. Comment cela pourrait-il arriver? Considérez cet arbre comme une boîte d'un développeur qui nécessite des données pour tester correctement l'application. Cependant, les données ne sont pas encore hors de synchronisation du référentiel, en suivant les règles définies dans le fichier .gitignore.

Legacy / dossier est utilisé pour une partie de l'application qui est sur le point d'être interrompu, mais fournit toujours certaines fonctionnalités qui peuvent être utiles jusqu'à ce qu'elle soit complètement refactorisée dans un nouveau système. Par conséquent, il fournit un bon moyen de séparer l'ancien code du code actuel.

Un nouvel ajout ici est Tests /, qui fournit un endroit pour assurer la qualité à l'aide de tests unitaires, et tiers /, un endroit pour stocker les bibliothèques externes requises par le logiciel.

Notez qu'il existe des doc / et wiki / dossiers, qui peuvent ressembler à un double. Cependant, il est également tout à fait possible d'avoir un dossier de documents pour l'utilisateur final et un wiki pour l'équipe de développement - même raisonnable.

Résumé

La bonne nouvelle qui mérite d'être répétée est: même si vous travaillez seul, vous devez être organisé. J'espère que cet article vous fournit quelques idées que vous pouvez commencer à appliquer immédiatement à votre workflow pour éviter la confusion à mesure que le nombre de fichiers dans votre application augmente.

Comme mentionné précédemment, les directives peuvent changer de temps à autre, car (presque) chaque projet est différent, tout comme l'équipe. Idéalement, vous ou votre équipe déciderez comment construire un projet - ajoutez un petit document pour décrire les raisons de cette structure - puis vous vous en tiendrez à ces règles à partir de maintenant.

N'oubliez pas que pour de nombreuses directives ici, peu importe si vous choisissez un tableau de bord ou un soulignement pour nommer un fichier (sélectionnez l'un des nombreux sujets). La clé est la cohérence.

lecture plus approfondie

  • La structure du projet du "Guide de démarrage de Python".
  • Méthode système pour gérer la structure des dossiers de projet à partir du collectif UX.
  • Gestion efficace de projet: traditionnel, agile, extrême, hybride

FAQ sur l'organisation des documents de projet (FAQ)

Quels sont les avantages de l'organisation des documents de projet de manière structurée?

Il y a de nombreux avantages à organiser des documents de projet de manière structurée. Tout d'abord, il améliore la lisibilité et la maintenabilité du code. Lorsque les fichiers sont organisés logiquement, il est plus facile pour les développeurs de comprendre la base de code et d'apporter des modifications sans casser les fonctionnalités existantes. Deuxièmement, il améliore le travail d'équipe. Lorsque plusieurs développeurs travaillent sur le même projet, une structure de fichiers bien organisée garantit que tout le monde sait où trouver un extrait spécifique. Enfin, il accélère le processus de développement. Les développeurs passent moins de temps à rechercher des fichiers et plus de temps à écrire et à optimiser le code.

Comment déterminer la structure optimale des fichiers de projet?

La structure optimale d'un fichier de projet dépend de la nature et de la complexité du projet. Pour les petits projets, une structure de répertoire simple peut être suffisante. Cependant, pour les projets plus grands avec plusieurs composants, vous pourriez avoir besoin d'une structure plus complexe. Considérez des facteurs tels que le langage de programmation que vous utilisez, le cadre ou la bibliothèque que vous utilisez et les préférences de l'équipe. Il est important de rendre la structure flexible afin qu'elle puisse se développer à mesure que le projet se développe.

Quelles sont les stratégies courantes pour organiser le code?

Il existe plusieurs stratégies pour organiser le code. Une méthode courante consiste à regrouper les fichiers par fonction. Cela signifie que tous les fichiers liés à une fonction spécifique sont enregistrés dans le même répertoire. Une autre façon consiste à regrouper les fichiers par type, tels que la division des fichiers CSS, JavaScript et HTML en différents répertoires. Certains développeurs préfèrent utiliser une approche hybride, combinant des éléments des deux stratégies. La clé est de choisir une stratégie qui a du sens pour votre projet et votre équipe.

Comment maintenir son organisation à mesure que la base de code se développe?

à mesure que la base de code se développe, il est important de vérifier et de refactor régulièrement la structure des fichiers. Cela peut inclure la division des fichiers volumineux en fichiers plus petits et plus gérables ou réorganiser les répertoires pour mieux refléter l'état actuel du projet. Les outils d'automatisation peuvent aider à identifier les zones de la base de code qui deviennent maladroites ou difficiles à maintenir. Les avis réguliers de code peuvent également aider à garantir que le nouveau code est conforme à la structure de fichiers établie.

Quel rôle joue les conventions de dénomination dans l'organisation des fichiers?

Les conventions de dénomination jouent un rôle crucial dans l'organisation des documents. Les noms de fichiers descriptifs cohérents facilitent la compréhension de ce que chaque fichier contient en un coup d'œil. Cela peut considérablement accélérer le processus de développement, en particulier lorsqu'il s'agit de grands projets ou de travailler avec des équipes. Les conventions de dénomination doivent être convenues au début du projet et restent toujours cohérentes.

Comment s'assurer que tous les membres de l'équipe suivent ma stratégie d'organisation de fichiers?

Pour vous assurer que tous les membres de l'équipe suivent la politique de votre organisation de fichiers, il est important de documenter clairement votre politique et de rendre le document accessible. Les examens de code réguliers peuvent également aider à appliquer la politique. Envisagez également d'utiliser un outil d'automatisation qui peut vérifier s'il est conforme aux règles de votre organisation de documents.

Puis-je modifier ma politique d'organisation de fichiers à mi-chemin du projet?

Oui, vous pouvez modifier les politiques d'organisation des fichiers au milieu du projet, mais cela devrait être fait avec prudence pour éviter de perturber le flux de travail. Avant d'apporter des modifications, discutez de la nouvelle stratégie proposée avec votre équipe et assurez-vous que tout le monde comprend les raisons du changement et comment la mettre en œuvre. Il est important de mettre à jour également les documents pertinents pour refléter la nouvelle politique.

Comment gérer les dépendances lors de l'organisation des fichiers de projet?

Lors de l'organisation des fichiers de projet, le traitement des dépendances peut être un défi. Une façon consiste à enregistrer toutes les dépendances dans un répertoire séparé. Cela facilite les gérer et les mettre à jour. Certains langages de programmation et gestionnaires de packages fournissent également des outils pour gérer les dépendances qui automatisent la majeure partie du processus.

Quelles erreurs courantes doivent être évitées lors de l'organisation de fichiers de projet?

Certaines erreurs courantes qui devraient être évitées lors de l'organisation des fichiers de projet incluent: ne pas planifier la structure de fichiers à l'avance, sans suivre des conventions de dénomination cohérentes, et non d'enregistrer les politiques d'organisation des fichiers et la vérification irrégulière et le refactorisation des structures de fichiers. Éviter ces erreurs peut aider à garder la base de code soignée, organisée et facile à naviguer.

Comment en savoir plus sur les meilleures pratiques dans l'organisation de documents?

Il existe de nombreuses ressources disponibles pour apprendre les meilleures pratiques pour l'organisation de documents. Les tutoriels en ligne, le codage de bootcamps et des forums de développeurs peuvent fournir des informations précieuses. De plus, l'étude de la structure du dossier d'un projet open source peut fournir des exemples pratiques de la façon d'organiser efficacement les fichiers de projet.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal