Java: ce sont quelques étapes pour apprendre un projet où vous avez un peu ou pas d'expérience

StackOverflow https://stackoverflow.com/questions/1246352

  •  12-09-2019
  •  | 
  •  

Question

En tant que programmeur commençant par peu d'expérience de l'industrie, je trouve frustrant d'apprendre un nouveau projet qui repose sur de nombreuses technologies que je ne suis pas au courant. Le projet sur lequel je travaille a environ 150 classes avec 15000 lignes de code, et avec son vaste accent sur la prise et la programmation de la sécurité que j'ai aucune expérience dans, je ne sais pas où je devrais commencer.

Avec peu de documentation et d'aide à la main, l'auto-étude est ma meilleure pour essayer de comprendre ce projet dans son ensemble. Je me surprends souvent à passer du temps à apprendre beaucoup trop insignifiantes caractéristiques du produit tout en manquant les cours cruciaux que je devrais vraiment se concentrer sur ... La principale raison pour laquelle il faut tant de temps est que je dois souvent regarder dans l'API Java référence toutes les quelques minutes pour comprendre un petit bloc de code ... Je suis sûr que je vais finir par l'apprendre par essais et erreurs, mais je suis sûr qu'il ya des conseils utiles et des directives que je peux utiliser:)

Était-ce utile?

La solution

Quelques choses viennent à l'esprit:

  1. Passez un peu de temps pour se familiariser avec le JDK et ses classes standard. Ayant une connaissance du haut de votre tête va prendre du temps et beaucoup plus de vérifier les spécifications de l'API, mais vous pouvez aussi passer un peu de temps juste navigation sans une chose particulière que vous êtes à la recherche vers le haut.
  2. Si votre projet utilise des cadres ou des bibliothèques, vous pouvez souvent obtenir une vue de haut niveau de ce que ceux-ci apportent au projet en lisant la page « intro » sur le site du projet. Je pense que cela pourrait être particulièrement utile pour vous, puisque vous avez cité certaines des manque de familiarité avec les technologies utilisées dans le projet en tant que source de frustration.
  3. En cas de intégration fonctionnelle ou des tests de régression, ceux-ci peuvent souvent être un bon moyen d'obtenir une poignée sur ce que les principaux points d'entrée dans le projet sont. Avoir une bonne connaissance de la fonctionnalité de haut niveau d'un projet est souvent utile en essayant de comprendre les petits détails.
  4. Si vous pouvez trouver un mentor dans votre équipe pour vous montrer les cordes, contribuera sans doute beaucoup.

Je pense que, en fonction de la taille du projet que vous avez mentionné, que cela peut être une douce introduction au code de production pour vous. Il peut sembler grand maintenant, mais 15000 lignes de code est sur le petit côté des projets que vous pourriez éventuellement travailler au cours de votre carrière.

Rappelez-vous aussi que cela va nécessairement être une expérience d'apprentissage pour vous. Il est l'un de vos premiers projets dans l'industrie, il pourrait prendre un peu de temps pour s'y habituer les choses. Gardez à l'esprit que vous n'êtes pas la première personne à avoir à nager dans la soupe bibliothèque / cadre dans une base de code inconnu.

Bonne chance!

Autres conseils

Dans un premier temps, vous n'avez pas besoin de comprendre toutes les lignes de code.

Empruntez un développeur senior pour une demi-heure et lui demander de vous donner la vue à vol d'oiseau de l'architecture - ce que les principaux blocs de code sont, comment ils interagissent, et comment les lecteurs d'utilisateur / utilisation des données par le biais du système .

Ensuite, passer un peu de temps à enquêter sur la source pour les modules que vous sentez (après l'explication) vous donnera la meilleure idée de « comment tout cela fonctionne ».

J'ai un (probablement assez étrange) habitude d'imprimer de gros blocs de code source, et couvrant un plancher avec les impressions. Ensuite, je peux mettre à genoux et ramper sur le sol avec un stylo et littéralement dessiner des flèches de point à point, et entourez sections - Je trouve que l'affichage du code en 2D, il est plus facile de comprendre les choses. Elle permet également de prendre des notes abondantes qui me aider à comprendre le flux plus en détail.

Avant longtemps, vous allez commencer à reconnaître les expressions idiomatiques (façons de faire les choses stylisés) qui caractérisent le code, et vous finirez par trouver votre chemin dans l'état d'esprit des auteurs. Ensuite, tout sera beaucoup plus simple.

Pendant que vous êtes sur le sol, ramper, ont un ordinateur portable + google à portée de main, de sorte que vous pouvez déchiffrer tout ce que vous rencontrez bizarre. Aussi:. Couleur surligneurs FTW

Faire (au moins) deux passages à comprendre la source. La première fois ne pas essayer de comprendre l'un des petits détails ... essayer d'obtenir une idée de « mouvement » - où les données va, et où l'exécution va. Cela vous donnera un cadre pour votre modèle mental du code. Quand vous passez par la prochaine fois, vous pouvez commencer à décomposer les détails, mais une approche descendante rend toujours les choses plus faciles pour moi.

Si vous n'êtes pas familier avec les technologies, la langue ou de l'environnement, alors ne voir s'il y a des livres qui vous entourent peuvent saisir. Il y a beaucoup plus d'espace visible dans le monde réel que vous pouvez adapter à un écran d'ordinateur, et ayant google sur un ordinateur portable, les références syntaxe / bibliothèque dans un livre, et le code tout autour de vous fait (pour moi au moins) le processus beaucoup plus simple.

L'apprentissage d'une base de code prend du temps. Je pense que la règle générale est d'environ 3 mois pour un nouveau développeur de se familiariser avec une base de code.

Les seules choses qui me aident vraiment sont à expérimenter et voir ce qui se passe, et se familiariser avec l'API.

Programmation paire. Les travaux sur le code avec quelqu'un qui a une expérience avec elle. Aidez-le à charge; demandez-lui de vous aider. Lorsque vous travaillez sur le code du développeur expérimenté, vous apprendrez quelques-uns de ce que les aspects importants du code sont - parce que le développeur expérimenté les connaît. Vous allez développer un modèle mental du logiciel qui est raisonnablement proche du développeur expérimenté au lieu de traquer les impasses et de vos propres trous de rat. Paire.

si vous avez des tests, de les étudier. sinon, écrire un peu.

Je suggère d'imprimer ce que mes professeurs utilisés pour désigner les « diagrammes de classes » qui ont juste le nom de classe, les noms des méthodes et des noms de membres. Puis disposer les feuilles sur une table / mur et savoir qui parle classe à laquelle la classe, qui parle méthode à laquelle méthode etc. Faire des flèches et des connexions entre les classes / méthodes. Essayez d'obtenir un sentiment pour le code. Au début, il est important de ne pas comprendre ce qu'est une ligne de code fait, mais quelle méthode / classe est censé faire pour que vous compreniez le flux de données de base.

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