Question

Mon entreprise à développer des applications Web en utilisant la combinaison de mod_perl, AxKit et apache. Nous avons des tonnes de modules Perl, javascripts, etc, le tout dans le système d'exploitation unix.

Chaque fois que je dois écrire une nouvelle fonction, je tente de faire un peu de réutilisation de code, mais la chose est tous les modules Perl et javascripts sont dispersés dans les dossiers.

Je déteste écrire un code plus tard seulement pour découvrir qu'il ya déjà une fonction qui fait la même chose, ma méthode actuelle consiste à essayer de grep pour le nom de la table pour voir s'il y a une fonction redondante, mais à part cela, je suis à peu près va simplement abandonner et d'écrire une nouvelle fonction parce que je ne veux pas passer trop de temps à chercher et ne rien trouver.

Y at-il une meilleure façon de le faire? Ou mieux encore, y at-il des outils freeware que je peux installer qui peut me aider à gérer correctement toutes les fonctions et modules, et même permettre aux développeurs de se connecter commentaires, etc.

EDIT

Il est cette discussion sur la détection duplication de code sur c ++ en utilisant outils, avons-nous quelque chose comme ça pour les codes Perl dans la plate-forme unix?

merci ~ Steve

Était-ce utile?

La solution

Organiser votre répertoire source afin que chaque fonctionnalité n'a qu'un seul endroit où il devrait être et il est facile de trouver quelque chose.

Assurez-vous de partager convention de nommage pour éviter les doubles emplois.

Conception votre module afin qu'ils ne une seule chose - et le font bien.

Revue le code pour vous que les noms et les emplacements sont corrects.

Fournir une efficace basée sur un indexeur de code moteur de recherche afin qu'il soit facile de regarder s'il y a déjà une fonction faisant une tâche particulière.

Ne sous-estimez pas le temps de généralisent un composant existant afin qu'il puisse effectivement être réutilisé.

Document les modules, avec la documentation API une / ou tests unitaires.

Communiquer au sein de l'équipe afin que chacun a une bonne compréhension de ce qui a peut-être déjà écrit, qui a ou sait qui peuvent avoir à travailler sur / utilisé un module.

Autres conseils

Je crois que vous avez une certaine forme de logiciel de contrôle de version ( svn , Mercurial , git, mais pas tout VSS)? Si vous n'est temps d'en obtenir un et commencer à l'utiliser. De cette façon, vous avez au moins une idée de modules que vous utilisez et où le code est. Vous pouvez également utiliser un ctags comme pour indexer tous les modules que vous avez écrit (ou utilisent ).

Un IDE (autant que je n'aime pas ces) peuvent également aider à trouver le code et refactoring.

Ceci est quelque chose que je suis très intéressé par.

L'utilisation d'un logiciel simple de contrôle de version comme svn, git ou bazar est pas exactement ce que je veux. Un VCS est obligatoire en plus d'un tel système, mais pas ce système. Après quelques recherches, on m'a dit de regarder dans l'emballage afin d'y parvenir, et je pense, une sorte de système d'emballage est la voie à suivre.

Si vous voulez un exemple de systèmes d'emballage, regardez debians APT. Chaque package a des dépendances avec les versions et une description et sourcecode donné un bon système d'emballage, vous pouvez aller comme « l'équation de recherche magique ensemble fixpoint », et le système d'emballage magique va trouver un module qui permet de résoudre le problème. Si vous incluez le package dans votre code source, il serait également ajouter toutes les dépendances manquantes probablement comme un graphique et tel.

Cependant, la recherche sur cela a commencé peu de temps avant le hdd de mon portable est mort, qui a reporté d'autres recherches et les résultats réels dans ce sens, mais peut-être vous êtes en mesure de trouver quelque chose d'intéressant (et me dire nudge, nudge )

HTH, Tetha

Si vos modules comprennent documentation POD et sont installés dans un répertoire commun ou un ensemble de répertoires , il devrait être relativement facile à utiliser pod2html pour générer des documents HTML. Une fois que vous avez la documentation HTML, jeter dans un index de recherche de texte intégral (SQLite avec fts3, MySQL, Lucene, KinoSearch, peu importe) et une application simple formulaire de recherche (CGI ou mod_perl) et vous êtes prêt à aller.

Si vous utilisez trac, il y a un plug-in qui va créer pages wiki pages de votre trac .pod et les fichiers .pm, encore une fois, ce qui rend la documentation facile à rechercher.

Je l'ai déjà travaillé dans une entreprise qui a utilisé Perl, et ont des problèmes similaires. La solution que nous venons avec, était de réorganiser les fonctions dans les fichiers, en prenant en considération une architecture à 3 niveaux (présentation, affaires et persistance), et les éléments en cours de manipulation.

Donc, nous avons un fichier perl à chaque table principale dans la base de données, un fichier perl pour chaque entité à manipuler leurs activités commerciales, etc. ... avec cela, il est facile d'éviter la duplication de code, parce que vous savez exactement où de rechercher une fonction donnée.

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