Question

Avant-propos: Ce n'est pas beaucoup sur la façon dont le code de la structure dans les fichiers. J'ai que vers le bas. Ceci est plus du sujet de l'organisation de votre arbre source. Espérons que quelqu'un va simplement dire: « Voici un lien sur le sujet. » Cependant, les opinions de première main sur le sujet sont les bienvenus aussi.

Je l'ai fait un peu de creuser sur ce sujet et trouver des tonnes de matériel sur la structure simple. Je suppose que l'hypothèse est que, au moment où vous avez besoin pour faire face aux problèmes de la taille de votre base de code, vous connaissez déjà la réponse. Cependant, même les IDEs semblent mener une guerre sainte sur la façon dont ces projets devraient être structurés (ce qui est ce que je voulais commencer dans ce fil).

Java appliquée la structure du package dans la langue. Coup de coeur pour cela. Eclipse vous permet d'utiliser des projets d'avoir (potentiellement) indépendant - « seaux », nous allons les appeler dans cet exemple - seaux de code correspondant. IntelliJ a des concepts distincts mais similaires avec des « modules » au sein d'une instance de singleton d'un « projet ». Si vous voulez un autre projet, vous êtes essentiellement à partir de zéro.

Cependant, offres RubyMine pas de tels modules dans les applications de rubis, et par défaut veut juste tout slam dans le répertoire racine. Il permet aux répertoires, on pourrait donc essentiellement simplement choisir une structure arborescente arbitraire et courir avec lui. Cela me implique de leur intention était que toutes les classes ont accès à toutes les autres classes au sein de votre projet. Cela pourrait avoir une résolution par l'utilisation de « modules » Ruby, ou peut-être juste un modèle honneur système de « ne fait pas référence à ce genre de choses. »

Alors, pour le mettre succinctement, dire que je devais construire un concept « foo » et un « bar », et les deux dépendent d'un « util » classe. peut-être que je vais les déployer comme des pierres précieuses, peut-être je ne veux pas. Je pouvais:

  • Slam tous en un seul projet RubyMine et simplement ignorer le fait que « foo » et « bar » ont aucune raison d'être au courant de l'autre.
  • Mettre chacun dans son propre projet RubyMine. Cela semble être une vraie douleur en cas de développement simultané. tout, util 'd'abord devrait être emballé séparément et inclus comme une ressource externe dans les autres projets.

ne semble ni particulièrement attrayant. Thougts?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top