33 votes

Quel est votre Modus Operandi pour résoudre un problème de (programmation)?

Tout en résolvant tout problème de programmation, quel est votre modus operandi ? Comment résolvez-vous un problème?
Est-ce que vous écrivez tout ce que vous pouvez sur les comportements observables du bogue ou du problème?

Prenez-moi à travers la liste de contrôle mentale des actions que vous prenez.

(Comme on dit - First, solve the problem. Then, write the code )

67voto

Nope Points 5757

Éloignez-vous de l'ordinateur et prenez du papier, un stylo ou un crayon si vous préférez.

Si je suis autour de l'ordinateur, j'essaie de programmer une solution sur-le-champ et cela ne fonctionne normalement pas ou ce n'est que de la merde. Stylo et papier me forcent à réfléchir un peu plus.

38voto

DVK Points 63282

Premièrement, je vais dans un magasin de vélos ; ou un autre .

Une fois que je pensais que personne n’avait inventé ce vélo,

  • Déterminez les structures de données appropriées pour le domaine et le problème, puis mappez les algorithmes nécessaires pour traiter ces structures de données de la manière dont vous avez besoin.

  • Diviser et conquérir. Résoudre des sous-ensembles du problème

31voto

Cet algorithme ne m'a jamais manqué:

  1. Passer À L'Action. Souvent, assis là, et ils sont terrifiés ou vexé par le problème ne va pas aider à les résoudre. Aussi, souvent, aucun montant de penser à résoudre le problème. Donc, vous devez obtenir vos mains sales et aux prises avec le problème de front.

  2. Test. Exactement dans quelles conditions, des valeurs d'entrée ou des états, le problème se produit? Faire un modèle mental de pourquoi ces conditions particulières peuvent provoquer le problème. Vérification des conditions similaires qui ne sont pas à l'origine du problème. Test assez de sorte que vous avez une compréhension claire du problème.

  3. Visualiser. Mettre le code de débogage dans, dump contenu de variable, seule l'étape de code que ce soit. Faire quelque chose qui clarifie ce qui se passe exactement où - dans le problème des conditions.

  4. Simplifier. Supprimer ou commenter le code, piquez-les valeurs dans des variables, d'exécuter des fonctions particulières avec certaines valeurs. Essayez votre plus difficile à obtenir pour le nœud du problème par la coupe de la paille ou des trucs qui n'ont pas de pertinence pour le problème à portée de main. Copier le code dans un projet distinct et l'exécuter, si vous devez, pour supprimer les dépendances.

  5. Accepter. Un grand homme a dit: "ce qui reste, toutefois improbable, doit être la vérité". En d'autres termes, après simplification autant que vous le pouvez, quelle que soit la gauche doit être le problème, peu importe comment bizarre, il peut sembler au premier abord.

  6. La logique. Double, triple vérifier la logique du problème. Est-il judicieux? Ce qui aurait du être vrai pour qu'elle ait un sens? Il ya quelque chose que vous êtes absent? Est votre compréhension de l'algorithme de mal? Si tout le reste échoue, re-concevoir le problème.

En tant que complément à l'étape 3, en dernier recours, j'utilise souvent la méthode de recherche binaire de trouver rebelle code. Commentaire simplement la moitié du code et de voir si le problème disparaît. Si c'est le cas alors il doit être dans le que la moitié (et vice versa). La moitié du reste du code et de continuer.

14voto

ptutt Points 798
  • Google est idéal pour la recherche de les messages d'erreur et problèmes communs. Quelque part, quelqu'un a généralement rencontré votre problème et trouvé une solution.

  • Le crayon et le papier. Pseudo-Code diagrammes de flux de travail.

  • Parlez à d'autres développeurs à ce sujet. Il aide vraiment quand vous avez à la force vous-même, pour simplifier le problème pour quelqu'un d'autre à comprendre. Ils peuvent aussi avoir un autre angle. Il est parfois difficile de voir la forêt à travers les arbres.

  • Aller pour une promenade. Tenir la tête hors de l' le problème. Prenez du recul et essayez pour voir la plus grande image de ce que vous souhaitez atteindre. Assurez-vous que le problème que vous êtes "en essayant" à résoudre est celle de votre "besoin" de le résoudre.

  • Un grand tableau blanc est idéal pour travailler sur. L'utiliser pour écrire des flux de travail et les relations. Pour parler de ce qui se passe avec un autre membre de l'équipe

  • Se déplacer sur. Faire quelque chose d'autre. Laissez votre subconscient travailler sur le problème. Laisser la solution pour venir à vous.

8voto

George Jempty Points 3660
  1. notez le problème
  2. pense très fort
  3. écris la réponse

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