Je n'ai d' autre choix que de travailler seul et je ne trouve pas de solution adéquate pour faire réviser mon travail, vérifier son état d'esprit, avoir quelqu'un avec qui échanger des idées, discuter des meilleures pratiques, etc.
Je pensais avoir une réponse via l'article de Jeff Atwood: Dans Programming, One Is The Loneliest Number , le meilleur que j'ai pu trouver sur le sujet, mais il s'est avéré que je voulais simplement réitérer ma question.
Je connais des sites Stack Exchange tels que celui-ci, et Code Review sont une réponse potentielle évidente, mais comme beaucoup l'apprécieraient, c'est loin d'être idéal:
Bien que je ne puisse pas énumérer tous les pièges, souvent, formuler une question et la transformer en un problème à part entière prend souvent tellement de travail que, au moment où vous l'avez suffisamment préparée, vous avez répondu à votre propre question plus en détail le temps qu'il aurait fallu autrement. En outre, le fait de cacher des détails pour poser une question bien définie élimine la possibilité que quelqu'un repère des problèmes auxquels vous n'aviez pas pensé. En outre, bien que je ne puisse pas tout à fait mettre le doigt dessus, la réactivité d'une conversation libre ne peut être égalée par aucune forme de discussion textuelle sur Internet à laquelle je peux penser. Dernier point mais non le moindre, je ne veux pas publier tout mon projet pour que le monde entier le regarde pour le reste de l'éternité, pour des raisons évidentes.
Y at-il des réponses autres que de payer un consultant pour examiner mon code?
Réponses:
J'ai été à votre place et je ne pense pas qu'il existe une solution facile. Payer un consultant pour examiner votre code n'est pas un bon moyen de dépenser de l'argent. Si votre problème est que vous vous sentez seul et que vous n'avez personne à qui parler de la programmation, je ne peux pas vous aider là-bas, mais si vous souhaitez vraiment améliorer la qualité de votre code, la meilleure chose à faire est de la définir. de côté et y revenir dans environ une semaine. Si le code est vraiment mauvais, cela deviendra évident car vous ne pourrez pas le comprendre et vous pourrez le refactoriser pour le rendre plus clair. Après quelques itérations de ce processus, vous remarquerez les modèles de code qui facilitent la compréhension du code et améliorent sa qualité.
la source
Non.
Mon conseil est de rejoindre un groupe de développeurs / utilisateurs locaux et d'exprimer vos idées avec d'autres. Parlez de votre conception. Demandez aux autres comment ils ont abordé certains problèmes.
S'ils vérifient votre conception, même sans regarder votre code, cela devrait suffire.
la source
Il existe des techniques d'auto-vérification, telles que le développement piloté par les tests, qui peuvent aider à fournir des commentaires. Lorsque cela devient difficile, vous savez que votre architecture est probablement complètement déséquilibrée.
Problème résolu. Vous n'avez pas besoin de commentaires externes sur chaque ligne de code pour pouvoir vous améliorer, mais d'un bon échantillonnage aux emplacements clés de la route et d'auto-contrôles minutieux aux points intermédiaires.
Vous devez surmonter l’idée que vous pouvez maintenir le même niveau de qualité en travaillant seul et dans le même temps qu’une personne travaillant en équipe. Il y a une raison pour laquelle les gens travaillent en équipe. La bonne nouvelle est que vous n'avez pas de conflits de décisions de conception. La mauvaise nouvelle est que vous n’avez pas de conflit à propos des décisions de conception. J'espère que le temps supplémentaire que vous passez à maintenir la qualité est quelque peu compensé par les avantages de travailler seul.
la source
Je recommanderais de créer autant de réseaux que possible lors de conférences et de groupes d'utilisateurs locaux. Je connais beaucoup de développeurs qui tirent des fragments de code désinfectés par courrier électronique ou par im tout le temps, simplement pour rester précis et examiner les algorithmes ensemble. Non, ce n'est pas une conversation face à face, et oui, il est parfois pénible d'assainir le code, mais une révision de 20 codes de messagerie instantanée peut parfois être très utile, en particulier lorsque vous avez désespérément besoin d'une deuxième paire d'yeux.
la source
Je suis dans une situation similaire et je compte énormément sur Stack Overflow pour obtenir des commentaires sur des questions épineuses. Je trouve aussi, en raison de la nécessité de rédiger une description du problème, que la réponse devient souvent évidente. En ce qui concerne les meilleures pratiques, je suis un développeur .Net et j'utilise ReSharper, qui offre des suggestions de bonnes pratiques pour remplacer le code que j'écris (ce que j'ignore parfois - cela peut être un peu pédant). Un autre outil utile est FxCop, qui effectue une analyse de code statique et met en évidence les problèmes qui ne correspondent pas à son ensemble de règles.
Sinon, c’est à vous de lire et de vous tenir au courant des pratiques actuelles. J'aime Morning Dew d’ Alvin Ashcraft pour ses liens vers ce qui est nouveau et amélioré dans le monde .Net.
la source
Je suggérerais d'essayer de créer (ou de trouver) un petit groupe d'utilisateurs. Assurez-vous que votre code est disponible et que tout le monde s'engage à le faire fonctionner - une demi-heure ou plus par jour.
la source
D' après mon expérience, il serait très important, bien que non obligatoire, qu'un développeur expérimenté examine votre code pour jeter les bases de votre développement . Une fois que vous êtes expérimenté, vous pouvez suivre l’approche suggérée par @ davidk01, c’est-à-dire revoir votre propre code périodiquement pour en améliorer la qualité.
la source
Je ne connais pas les détails de votre situation, mais là où je suis maintenant, nombreux sont ceux qui ont soif d'expérience et d'étudiants d'expérience qui sont plus qu'heureux de travailler comme stagiaire et d'apprendre quelque chose.
Cela peut sembler être un travail supplémentaire pour vous de les manipuler et de leur apprendre ceci et cela, mais nous étions tous là quand nous avons commencé et je suppose que c'est à notre tour de rembourser.
Ils ne sont pas des experts et peuvent même parfois vous induire en erreur, mais ils défient généralement tout, ils regorgent d’idées et sont parfaits pour une discussion dans le cadre de laquelle vous devez défendre chaque détail de votre code.
la source
Je ressens la même chose pour plus de 75% des questions que je poste.
Cependant, ce n'est pas un argument pour ne pas prendre la peine de le faire. C'est effectivement un débogage de canard en caoutchouc. Vous trouvez des réponses aux questions qui, selon vous , pourraient surgir en réponse à votre question; ce qui signifie que vous envisagez le problème du point de vue de différentes personnes; ce qui signifie que vous pensez au problème dans toutes les directions possibles; qui est la meilleure façon de trouver la faille.
Au mieux, vous avez prouvé de façon concluante que vous ne pouvez clairement pas trouver la réponse ici. Au "pire", vous finissez par répondre à votre propre question. Faites attention aux citations, car ce n'est pas mal du tout. C'était peut-être un peu inefficace, mais résoudre le problème lentement est mieux que de décider rapidement de ne pas s'attaquer au problème . Vous aurez plus vite à résoudre le problème éventuellement.
Exemple:
Quand j'étais un développeur débutant, j'ai traité de nombreuses fois avec la page ASP.Net eror . J'avais besoin de Google le message pour comprendre ce qui ne va pas. Cela pourrait prendre plusieurs heures avant que je trouve la bonne solution. En gros, j'ai commis chaque erreur dans le livre et j'ai ensuite dû gérer les conséquences de devoir déboguer les problèmes.
Maintenant, quand une erreur survient, je connais déjà les "suspects habituels" de ce qui pourrait causer le problème. Ma liste mentale de "suspects habituels" est effectivement basée sur les problèmes avec lesquels j'ai le plus de problèmes au cours de ma carrière. Sans avoir au préalable effectué le travail fastidieux sur les jambes de Google, je n'aurais jamais fait cette liste mentale . Mais maintenant que j'ai cette liste mentale, le dépannage est beaucoup plus rapide.
Je suis un peu en désaccord ici. Vous avez raison, la communication Internet est moins sensible, mais vous avez tort (à mon avis) de penser que cela est mauvais pour vous.
En tant que développeur isolé, vous dépendez du débogage du canard en caoutchouc. L'ingrédient clé pour faire fonctionner le RDD est que vous anticipez les questions que le canard en caoutchouc peut avoir pour vous. Vous ne pouvez évidemment pas vous fier à ce que dit le canard en caoutchouc.
Lorsque vous traitez avec des systèmes de messagerie lents (publication sur StackOverflow ou communication en écrivant des lettres), vous êtes intrinsèquement incité à vous assurer de bien faire les choses dès la première fois. Parce que le besoin de corriger une erreur sera un processus lent et ardu.
En comparaison, considérons que les systèmes de messagerie rapide (conversation, messagerie instantanée) permettent de corriger immédiatement quelque chose. La capacité de corriger rapidement quelque chose rend les gens moins incités à s'assurer que c'est correct.
Quatre cas d'espèce:
L'idée sous-jacente est qu'un système d'échange difficile incite les gens à effectuer des échanges corrects et vérifiés . La sévérité de la peine (= processus de correction difficile) vous apprend à ne pas commettre d'erreur.
Lorsque vous créez un MCVE , vous ne devez pas simplement le créer et le poster dans la question. Vous devez d'abord le faire vous - même , afin de pouvoir isoler le problème. Et puis, quand vous pensez que le problème ne peut plus être réduit, et que vous n'en voyez toujours pas la cause; alors vous avez une question valide pour StackOverflow.
Exemple:
J'ai toujours un deuxième Visual Studio en cours d'exécution avec une application de console simple appelée Sandbox. Chaque fois que je rencontre un problème technique, je copie le code incriminé dans le bac à sable et commence à jouer avec.
Dans 90% des cas, je trouve la cause du problème parce que le bac à sable m'a aidé à examiner le code incriminé sans être distrait par le contexte (ou par exemple toute incertitude sur les valeurs associées à différentes parties du code).
Dans les 10% restants, il me reste un code minimal pour reproduire le problème, qui constitue un exemple parfait d'extrait de code à publier sur StackOverflow.
Lorsque vous avez déjà votre MCVE, vous ne devriez pas avoir trop d’informations personnelles (ou d’entreprise). Si vous le faites, puisque le code est minimal, il est facile de renommer les choses en un exemple plus basique foo / bar / baz.
la source