web-dev-qa-db-fra.com

Aider quelqu'un qui n'est pas et qui ne sera jamais un programmeur professionnel écrit le code qui est plus lisible et utilisable d'utiliser et d'interpréter

Je suis Elvis, essayant très fort d'apprendre à être Einstein. Je travaille à mort.

Qu'est-ce que diable est-ce fou idiot en train de parler!?!? (vous avez seulement besoin de lire les premiers paragraphes)

Si vous n'avez pas envie de lire ce lien, essentiellement, je suis un programmeur professionnel et mon patron est (c'est difficile précis):

le programmateur de la ligne professionnelle qui manque de diplôme en informatique mais a beaucoup de familiarité avec le bureau et la VBA, et qui écrit généralement des applications de productivité partagées parmi ses collègues

Tout ce qui a dit, une grande partie de mon travail prend son coquille ensemble du code et la fabrication est prête à la production. Cependant, le très mauvais style et cargo-culture rend cela difficile. Ceci est aggravé par le fait qu'il ne veut pas lire des livres de programmation ou me permettre de l'aider à refacturer son code.

Y a-t-il d'autres stratégies d'aidation de quelqu'un qui n'est pas un programmeur professionnel, n'est jamais un programmeur professionnel Ecrire le code d'aller de l'avant qui est plus lisible et utilisable pour moi d'utiliser et d'interpréter?

20
durron597

En regardant vos réponses dans plusieurs des commentaires, je ne sais pas si vous réalisez que ce que vous ressentez est assez courant, en particulier lorsque vous travaillez dans des domaines de spécialité où il prend des experts de domaine (appelons-les au scientifique) pour déterminer comment incorporer et adapter des algorithmes pour des problèmes à portée de main.

Plutôt que de se plaindre du scientifique et attendez-leur qu'ils changent, réalisez simplement que vous ne devriez pas vous attendre à ce que le scientifique se souciait beaucoup de la "qualité de code". Il est fréquemment difficile d'obtenir d'autres développeurs de logiciels de se soucier de "qualité de code", sans parler de quelqu'un dont les principaux intérêts se trouvent dans le domaine et non la programmation.

D'où vous allez d'ici dépend en grande partie du degré de confiance que le "scientifique" a dans votre capacité à comprendre leur travail. S'ils ont la confiance que vous pouvez comprendre leur code et ne le modifierez pas lorsque vous modifiez les choses, il n'y a généralement pas de problème. Ils vont compter sur votre expertise.

Toutefois, si le scientifique ne veut pas que vous changiez de code, il est très probable que vous n'ayez pas encore "gagné" leur confiance. Si tel est le cas, plutôt que de vous concentrer sur la fixation du scientifique, vous devriez vous concentrer sur la "fixation". Ce que je veux dire par là, c'est prendre des mesures pour gagner leur confiance. Le moyen le plus simple de le faire est probablement comme suit:

Dans le cadre de votre processus de test:

  1. Commencez à transformer les algorithmes en quelque chose de plus facile à comprendre (par exemple les diagrammes, pdl, notation mathématiques)
  2. Apprenez à comprendre les algorithmes.
  3. Assurez-vous d'identifier les cas de bord.
  4. Demandez au scientifique si votre représentation "alternative" simplifiée est correcte
  5. Et surtout identifier de manière importante les problèmes que vous avez trouvés; Et sans sonner "accusatoire" dire quelque chose comme "Je regardais l'algorithme et remarquais que xyz est censé faire cela ou est-il censé faire ça?". Rien ne gagnera sa confiance mieux que cette balle.

Une fois que vous avez commencé à trouver des bugs et que vous avez démontré un intérêt dans leur domaine d'intérêt, les chances deviennent beaucoup plus élevées qu'au moins, ils vous laisseront commencer à modifier le code pour le rendre plus "professionnel". Fréquemment, ils ne ressentiront même pas le besoin de décoder un prototype plus. Ils vont simplement écrire quelque chose dans l'une de ces notations "alternatives" que vous leur avez enseignées (sans qu'ils en réalisent même) et ils auront confiance que tu veux savoir ce qu'ils veulent dire.

Par tous moyens, ma première tentative serait de proposer des suggestions sur la manière dont le scientifique pourrait mieux aider "communiquer" mieux afin de vous aider; Mais ça sonne comme si tu as essayé ça. Donc, la seule étape que vous avez le contrôle est ce que vous faites. Gagnez leur confiance et presque toujours l'expert de domaine sera soulagé de passer de codage à quelqu'un d'autre et de ne pas avoir à s'inquiéter de tous les petits détails qui entrent dans le code de l'écriture. Ils préfèrent que nous vous concentrons plutôt sur l'amélioration des algorithmes.

Parfois, tout ce que vous pouvez faire est de proposer une suggestion et de laisser cela après cela. Vous n'importerez pas votre patron ou votre senior si vous continuez à harmoniser quelque chose d'avoir déjà rejeté ou décidé qu'ils ne veulent pas faire, même si vous êtes 100% correct. En fait, cela endommagera une relation, que vous soyez le suggestionnaire ou la suggestion. Concentrez-vous simplement sur ce que vous pouvez faire pour faciliter votre travail.

8
Dunk

Je ne suis pas sûr d'ajouter quelque chose à cette discussion, mais d'avoir travaillé dans des scénarios similaires où une violation d'accès frappe à une ligne avec ShowMessage('Hello'); ou similaire seulement pour savoir que la même ligne a plus de code , hors de l'écran à droite,

Je crois que vous avez deux options de base:

  1. Laissez le code exécuter. Si le code fonctionne et faisons ce qu'il devrait faire, à moins que votre patron vous demande spécifiquement de réparer leur code, laissez-le simplement tel qu'il est. Cela peut également le conduire à comprendre que votre code a l'air plus agréable et de vous laisser le travail (comme indiqué également par Dunk dans sa réponse).
  2. Si vous êtes très déterminé Pour rendre le code professionnel, Construire une bibliothèque/framework qu'il peut utiliser. S'il y a un motif sur les erreurs/stratégies que vous résolus couramment, vous pourrez peut-être envelopper ceux-ci dans quelques fichiers de bibliothèque et lui donner comme une bibliothèque de base pour la société ", que vous pouvez également utiliser comme une interface commune.
2