Comment puis-je pratiquer les modèles de conception et la refactorisation de manière délibérée? [fermé]

10

Je lisais le livre Refactoring to patterns et je me demandais comment je pouvais avoir la chance de pratiquer les compétences, car sans une pratique délibérée sur de nouvelles façons de refactoriser et d'utiliser des modèles, mes compétences ne s'amélioreront pas.

Mais le travail de bureau m'oblige à terminer chaque tâche le plus rapidement possible. La plupart du temps, la conception et l'architecture du projet ne sont pas contrôlées par moi, je ne peux que suivre le style similaire au code existant. Parfois, il y a un projet avec une mauvaise conception, mais il y a aussi un autre développeur dont les compétences en conception sont meilleures que moi et il a déjà tout le plan pour refactoriser le projet, de sorte que je ne fais que suivre son plan. Comment obtenir des occasions de pratiquer?

rwong
la source

Réponses:

6

Eh bien, pour être franc, vous ne pouvez pas attendre l'occasion de venir en frappant à votre porte. Si vous êtes très enclin à pratiquer cette compétence, ce serait formidable si vous pouviez venir avec vos conceptions indépendamment de ce que le soi-disant développeur le plus qualifié possède. Jetez simplement vos idées et ayez une conversation agréable sur la façon dont la mienne serait utile pour cette conception existante. Peut-être échoueriez-vous dans les premières tentatives, mais vous en apprendrez beaucoup et (également vu que votre soi-disant collègue développeur plus qualifié aurait également quelque chose à apprendre de vous).

En bref, mettez vos créations sur la table et sachez à quel point vous êtes bon ou mauvais, il n'y a aucun moyen de comparer vos compétences.

V4Vendetta
la source
3

Pratique, pratique, pratique. Les projets de loisir sont définitivement une bonne idée. Et si vous voulez apprendre, il est souvent préférable de travailler sur le projet open source de quelqu'un d' autre , de cette façon, vous pouvez apprendre des modèles qu'ils utilisent.

Je suggérerais d'étudier les dojos de codage et les katas de code . L'idée derrière ce concept est qu'en pratiquant sur des problèmes de pratique bien définis et gérables, vous serez mieux équipé lorsque des problèmes surviennent dans votre propre code. (Les sites Web expliquent cela mieux que moi, consultez-les.)

Point de côté: Une chose essentielle qui n'est pas tout à fait un modèle est de bonnes habitudes en matière de test.

Enfin, dernier commentaire: le travail de bureau vous oblige à terminer chaque tâche le plus rapidement possible. Si vous travaillez trop vite et créez beaucoup de bugs, vous n'avez pas terminé la tâche , car vous devrez y revenir plus tard. C'est retravailler. Si vous ne prenez pas le temps nécessaire pour apprendre la bonne façon de faire les choses, vous créerez plus de travail pour vous-même à court terme et n'apprendrez pas les bons schémas pour vous améliorer à long terme. Cela vaut la peine pour vous et votre employeur que vous appliquiez des modèles de conception appropriés. (Cela dit, les modèles de conception peuvent souvent être surexploités et abusés par des personnes qui les pratiquent avec trop de zèle ou sans compréhension de fond, mais c'est un point distinct.)

carpeliam
la source
Rework est une sorte de sujet intéressant. 37signals.com/rework est un livre décent sur le sujet.
carpeliam
1
Oh, encore un commentaire, et cela va de pair avec le fait de suivre les schémas des autres. Utilisez les gens de votre bureau comme ressource. S'ils ont des plans sur la façon de remanier quelque chose, demandez-leur d'expliquer leur processus de réflexion et de les forcer à vous enseigner. Si votre bureau ne se concentre pas sur votre développement professionnel personnel, alors il y a un problème.
carpeliam
+1 pour la note sur la fin d'une tâche.
Péter Török
1

Je pense que vous avez les options suivantes:

  • Envisagez de vous entraîner sur le temps non travaillé - restez simplement au travail et expérimentez la refactorisation du code sans le valider dans VCS. Pour faire une pratique délibérée, vous n'avez pas besoin de valider les modifications. Vous devez reproduire une procédure jusqu'à ce qu'elle devienne votre seconde nature.
  • Envisagez de maîtriser les compétences en communication pour discuter avec vos collègues de la refactorisation la plus appropriée. La conversation cruciale est vraiment utile pour comprendre les mécanismes d'une communication.
  • Pet project - créez un projet pour animaux de compagnie et pratiquez leurs compétences. Cela n'a pas besoin d'être très utile. Votre objectif est de mettre en pratique vos compétences en programmation.
  • Pensez à proposer vos services dans un projet open source - il est plus avantageux de délibérer car vous pouvez obtenir des commentaires
Alexey
la source