73 votes

Ce qui ' s la meilleure façon de se familiariser avec une grande base de code ?

Se joindre à une équipe existante avec une grande base de code déjà en place peut être une tâche intimidante. Quelle est la meilleure approche;

  • Large; essayez d'obtenir un aperçu général de la façon dont tout des liens ensemble, à partir du code
  • Étroit; l'accent sur les petites sections de code à la fois, de comprendre comment ils fonctionnent pleinement
  • Choisir une option à développer et apprendre comme vous allez le long
  • Essayez de gagner un aperçu de la classe et des diagrammes uml, si disponible (et à jour)
  • Tout autre chose?

Je suis en train de travailler sur ce qui est actuellement d'environ 20k ligne C++ application et de la bibliothèque (Edit: petit dans le grand schéma des choses!). Dans l'industrie, j'imagine que vous obtiendrez une introduction par un programmeur expérimenté. Toutefois, si ce n'est pas le cas, que pouvez-vous faire pour commencer à ajouter de la valeur aussi rapidement que possible?

--
Résumé des réponses:

  • Code pas à pas en mode debug pour voir comment il fonctionne
  • Paire avec quelqu'un de plus en plus familiers avec le code de base que vous, en prenant les virages à la personne de codage et de la personne à regarder/examiner. Tourner partenaires parmi les membres de l'équipe de sorte que la connaissance se diffuse autour de.
  • Écrire des tests unitaires. Commencer par une affirmation de la façon dont vous pensez code du travail. Si il s'avère que vous vous attendiez, vous l'aurez probablement compris le code. Si non, vous avez une énigme à résoudre et ou une demande à faire. (Merci Donal, c'est une excellente réponse)
  • Aller à travers les tests unitaires pour le code fonctionnel, d'une manière similaire à ci-dessus
  • Lire UML, Doxygen généré des diagrammes de classe et d'autres documents à obtenir une large sensation du code.
  • Faire de petites modifications ou des corrections de bug, puis augmenter progressivement jusqu'
  • Prenez des notes, et de ne pas sauter dedans et de commencer à développer; il est plus intéressant de passer du temps à comprendre que pour générer du désordre ou inapproprié code.

ce post est partielle d'un duplicata de la-meilleure-façon-de-familiarisez-vous-avec-un-hérité de la base de code

24voto

Brian R. Bondy Points 141769

Commencez avec une petite tâche si possible, déboguer le code autour de votre problème. Pas à pas à travers le code en mode débogage est la meilleure façon d’apprendre comment quelque chose fonctionne.

10voto

Russell Bryant Points 623

Une chose que je propose généralement aux personnes qui n’a pas encore été mentionné, c’est qu’il est important devenir un utilisateur compétent de la base de code existante avant que vous pouvez être un développeur. Quand les nouveaux développeurs viennent dans notre projet de logiciels d’envergure, je suggère qu’ils passent des utilisateurs experts devenant de temps avant de plonger en train de travailler sur le code.

C’est peut-être évident, mais j’ai vu beaucoup de gens essayer de sauter dans le code trop vite car ils sont impatients de commencer à faire des progrès.

9voto

Draemon Points 15448

C'est tout à fait dépendant sur quel type d'apprenant et de quelle sorte de programmeur, mais:

  • Large d'abord - vous besoin d'une idée de la portée et de la taille. Cela pourrait inclure l'écrémage docs/uml si elles sont bonnes. Si c'est un projet à long terme et vous allez avoir besoin d'une compréhension complète de tout, je pourrais effectivement lire les docs correctement. Encore une fois, si ils sont bons.
  • Étroite de choisir quelque chose de gérable et essayer de la comprendre. Obtenir un "goût" pour le code.
  • Choisir une option - peut-être un différent à celui que vous avez juste regardé si vous vous sentez confiant, et commencer à faire quelques petits changements.
  • Itérer - évaluer la manière dont les choses se sont passées et voir si vous pouvez bénéficier de répéter une étape précoce de plus de profondeur.

7voto

Grundlefleck Points 29486

Le couplage avec une rotation stricte.

Si possible, tout en passant par la documentation/base de code, essayez d'employer le couplage avec rotation stricte. Sens, les deux de vous asseoir ensemble pour une période de temps fixe (par exemple, une séance de 2 heures), puis vous passez paires, une personne va continuer à travailler sur cette tâche, tandis que l'autre se déplace vers une autre tâche avec un autre partenaire.

Dans les paires que vous aurez à la fois ramasser un morceau de la connaissance, qui peuvent ensuite être appliqués à d'autres membres de l'équipe lors de la rotation se produit. Ce qui est bien à propos de ce aussi, c'est que lorsqu'une nouvelle paire, qui consiste à rassembler, celui qui a travaillé sur la tâche (dans ce cas, d'enquêter sur le code) peut alors résumer et expliquer les concepts dans un plus facile à comprendre. Comme le temps passe, tout le monde doit être au même niveau de compréhension, et nous espérons éviter les "Oh, seulement John sait que peu de code" syndrome.

À partir de ce que je peux dire au sujet de votre scénario, vous avez un bon nombre (3 paires), cependant, si vous êtes distribués, ou ne fonctionne pas à la même échelle de temps, il est peu probable d'être possible.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X