Outil de programmation le plus sous-estimé [fermé]

35

Nous avons beaucoup d'excellents outils qui aident beaucoup lors de la programmation, tels que les bons éditeurs de texte de programmeurs, les IDE, les débogueurs, les systèmes de contrôle de versions, etc. .

Il existe toujours des outils qui aident beaucoup, mais n'attirent toujours pas autant d'attention, pour diverses raisons, par exemple, quand ils ont été publiés, ils étaient en avance sur leur époque et sont maintenant plus ou moins oubliés.

Selon vous, quel type d’outil de programmation est le plus sous-estimé? Motivez votre réponse.

Anto
la source
3
Nos cerveaux? - -
Trufa
Ok, qui veut ajouter l'entrée Lisp? * sourire *
Mark C

Réponses:

70

Un canard en caoutchouc. Oui vraiment.

http://en.wikipedia.org/wiki/Rubber_duck_debugging

Caoutchouc débogage de canard , ducking en caoutchouc , et le test de Duckie en caoutchouc sont des termes informels utilisés dans le génie logiciel pour faire référence à une méthode de débogage du code. Le nom est une référence à une histoire probablement apocryphe dans laquelle un programmeur expert non nommé garderait un canard en caoutchouc tout le temps à côté de son bureau et déboguerait son code en s’obligeant à s’expliquer, ligne par ligne, devant le canard.

Pour utiliser ce processus, un programmeur explique le code à un objet inanimé, tel qu'un canard en caoutchouc, en espérant qu'en rencontrant un morceau de code incorrect et en essayant de l'expliquer, le programmeur remarquera l'erreur. En décrivant ce que le code est censé faire et en observant ce qu'il fait réellement, toute incongruité entre ces deux devient évidente ...

Andiaz
la source
6
Je fais ça tout le temps avec mon mari. En tant que technicien du support technique disposant de très peu de compétences en programmation, il comprend environ 60% de ce que je dis mais me force à expliquer les 40% que je ne comprends pas aussi bien. Le nombre de fois où cela fonctionne est vraiment assez impressionnant.
Ethel Evans
1
Tu rigoles. En fait, une collègue avait un canard en caoutchouc sur son bureau.
Berin Loritsch
57
J'ai essayé, mais mon canard en caoutchouc n'a pas semblé se concentrer sur le problème. Où puis-je trouver un canard en caoutchouc dûment qualifié ayant un réel intérêt pour la programmation?
Steve314
3
J'utilise mon journal pour cela. J'ai parfois de longues discussions avec moi-même à ce sujet. J'aimerais pouvoir me faire comprendre ce que je veux dire, parfois. Écrire cela dans un journal aide parfois beaucoup plus tard, quand je me demande à quoi pensait l'idiot qui avait écrit le code sur lequel je travaillais.
Lars Wirzenius
1
@Steve: des chercheurs japonais y travaillent, mais je ne pense pas qu'ils soient proches l'un de l'autre: youtube.com/watch?v=3g-yrjh58ms
Rei Miyasaka
42

Stylo et cahier.

  1. Fonctionne sans électricité.
  2. Portable.
  3. Doodle sur / dans quand ennuyer en réunion
  4. Stocker des informations utiles.
  5. Si c'est écrit, les gens y attachent plus d'importance.
  6. D'autres peuvent le lire et apprendre.
Sparky
la source
A l'époque des grandes entreprises, les ingénieurs et les techniciens recevaient des cahiers vierges d'ingénierie dans lesquels ils écrivaient toutes ces choses que nous avons tendance à fourrer dans divers fichiers sur nos disques durs. Une fois les cahiers remplis, ils seraient envoyés dans un référentiel sécurisé et résistant au feu. Si quelqu'un avait besoin d'avoir accès à ces notes, il pourrait consulter les cahiers.
Oosterwal
3
Les Russes ont utilisé un crayon.
Job
@ Job Hah, j'utilise encore une bouteille d'encre! (... Bien, seulement pour la calligraphie, mais quand même. :))
Mateen Ulhaq Le
Qu'en est-il des Tablet PC?
Mateen Ulhaq
1
@Job:… et la vodka!
Spoike
38

Les outils de diff semblent être sous-utilisés lors de la comparaison de sorties de journaux ou de données dans des fichiers texte plats. Ou peut-être que ce n'est qu'un créneau? Il me semble très utile et utile pour le débogage de comparer d’énormes journaux d’exécutions de programmes et d’identifier un ou deux détails qui ont changé.

Les outils de profilage de performances sont également très utiles, en particulier lorsque vous rencontrez un problème critique, mais il semble que très peu de gens les connaissent (et je me reconnais moi-même dans cette catégorie).

De bons outils XML sont essentiels - si vous travaillez avec des fichiers XML, plus d'une douzaine de lignes ou de multiples schémas. Parfois, vous avez besoin de plus que de simples syntaxes de base soulignant d'autres éditeurs. Apprendre en XSL peut également être très utile lorsque vous travaillez avec XML. Souvent, je vois ce qui pourrait être fait dans une simple transformation XSL effectuée en plusieurs lignes dans le code de l'application. Bien que pour clarifier: je ne suggère pas que XML lui - même est un "outil de programmation sous-estimé"; Je suggère que la valeur de bons éditeurs XML est sous-estimée, d'après ce que j'ai vu.

FrustratedWithFormsDesigner
la source
1
++ Absolutely diffis underappreciated. En ce qui concerne le profilage, vous n'êtes pas seul à penser qu'elles doivent être utiles, mais vous-même, vous ne savez pas comment. Vérifiez ça.
Mike Dunlavey
Oui, j'ai pensé à apprendre un outil de profilage, mais je n'y suis jamais arrivé
Anto
23
+1 pour le profilage, +1 pour les outils de diff, -1 pour les outils XML. Certaines personnes, face à un problème, pensent "Je sais, je vais utiliser XML." <Problem:Worsening> <Problem:TimeDescription>Now</Problem:TimeDescription> <Problem:Posessive>they have</Problem:Posessive> <Problem:Quantity>many, many</Problem:Quantity> <Problem:WorseningDescription>more problems</Problem:WorseningDescription></ProblemWorsening>
Mason Wheeler
2
@Mason: XML mignon.
Mike Dunlavey
10
@Mason Wheeler: Je n'ai pas suggéré XML comme un outil pour résoudre les problèmes, mais de bons outils XML - lorsque vous devez travailler avec XML, assurez-vous de disposer d'un éditeur / outil très performant. Quelque chose qui peut exécuter des requêtes Xpath, une validation de schéma, une transformation, une comparaison valeur / structure (un outil spécial de différenciation, je suppose), etc. pire (j'aime votre code XML;)).
FrustratedWithFormsDesigner
37

Expressions régulières

Ils sont tellement utiles. Ils aident lors de la recherche dans les fichiers journaux, l’analyse de texte, etc. Ils sont simplement extrêmement utiles.

Je trouve étrange le nombre de personnes que je connais qui ne les utilisent jamais, car elles ont un peu d'apprentissage. Souvent, je vois des gens faire les choses à la dure (Note: avant regex, je faisais les choses à la dure) quand une simple regex pouvait le comprendre rapidement.

barrem23
la source
8
Rappelez-vous que les expressions régulières ne sont pas un couteau suisse, même si elles sont bonnes si elles sont appliquées correctement.
Anto
10
Extrêmement utile - mais souvent abusé, ce qui conduit à un code cryptique et non maintenable. L'ancien "maintenant vous avez deux problèmes" en disant a une base dans la réalité.
Steve314
4
Les RegExes sont un couteau suisse: un outil adéquat pour de nombreuses tâches rapides, mais probablement pas le bon outil pour construire une maison entière.
JasonTrue
4
Hmm, pour une raison quelconque, j'ai toujours eu l'impression que la regex était loin d'être sous-estimée. Trop souvent, je vois des gens qui cherchent une regex où une simple division / boucle suffirait ou lorsque les regex ne sont tout simplement pas la solution (par exemple, l'analyse xml / html).
MAK
J'ai vu les deux phénomènes: Regex? Ce truc est illisible / lent / insert péjoratif ici et "Quelle est la meilleure façon d’analyser (insérer une grammaire complètement non régulière) avec une expression rationnelle?"
JasonTrue
24

Vos coéquipiers. Lorsque vous êtes sur une idée géniale et que vous oubliez d'incorporer votre équipe, vous n'entendez jamais leurs préoccupations ou leurs idées sur les raisons pour lesquelles cela ne fonctionnera pas ou pourquoi cela pourrait être encore meilleur.

Je dis cela, car il est facile de penser que la programmation est une chose antisociale que les gens font dans les coins avec leurs idées brillantes. Les personnes qui pensent que cela sous-estime la valeur des équipes et de leurs coéquipiers pour aider les idées / projets à couler / nager.

Doug T.
la source
Les bons coéquipiers ne peuvent jamais être surestimés. La plupart des logiciels et matériels peuvent.
Anonyme Tapez
19

Google. Il y a très peu de problèmes qui n'ont pas encore été résolus et documentés. Une requête Google bien réglée peut faire gagner beaucoup de temps à tout le monde.

Adam Crossland
la source
13
Un bon outil, mais je ne suis pas sûr que j'appellerais cela sous-estimé, du moins plus maintenant (peut-être que j'aurais accepté il y a 9 ou 10 ans).
FrustratedWithFormsDesigner
12
Je suis désolé, mais Google sous-estimé? À tout le moins, Google est surestimé :)
eestein
2
Je sais je sais! Mais je pense que vous serez d’accord avec le moins que je puisse dire: c’est au moins 75% des questions posées sur StackOverflow qui répondent facilement à Google, oui? Clairement, il est dans une certaine mesure sous-estimé si beaucoup de personnes ne l'utilisent pas. Si ma raison est imparfaite, je vais supprimer ma réponse.
Adam Crossland
3
@Adam Crossland: 75% est gentil. Je pense que c'est plus élevé que ça.
S.Lott
1
@adam @ s.lott donc je suppose que le fait est que Google n'est pas utilisé correctement. Je suis d'accord avec ça. On pourrait répondre à de nombreuses questions (il serait inutile de les poser) si les gens savaient comment utiliser Google correctement. Cordialement.
eestein
16

De loin, l'outil le plus sous-estimé pour trouver des "goulots d'étranglement" est Ctrl+ Cou le bouton "Pause", dans un débogueur.

Vérifiez le dernier paragraphe de ce post , et ce post , et ce post , pour commencer.

Tant de fois que je vois / entends des gens dire: «Le programme est trop lent! Que puis-je faire à ce sujet? J'ai essayé un profileur (le cas échéant), mais je ne comprends pas ce qu'il dit. Quelqu'un a une idée? Aide! " Eh bien, ce ne sont que des suppositions. Ce que j'ai toujours fait, et que d'autres ont aussi fait, c'est de le mettre en marche, de l'interrompre et d'examiner la pile d'appels. Si le problème est vraiment grave, le bingo est pour vous. Si le problème n'est que léger, vous le faites plusieurs fois. Tout ce que vous pouvez éviter sur plusieurs échantillons est un goulot d'étranglement que vous pouvez corriger.

Oui, c'est un appât à la baisse, mais ça fonctionne.

Mike Dunlavey
la source
Il ne faut pas sous-estimer les instruments contondants. Clairement, ce n'est pas toujours la bonne réponse, mais ça peut l'être. Appelez cela une approximation de premier ordre, à affiner par un véritable profileur si nécessaire.
Kristof Provost
@Kristof: C'est tentant de penser que oui, et il y a des problèmes qu'il ne peut pas gérer, et il y a des cas où les échantillons ne sont pas faciles à obtenir, mais les profileurs ne peuvent pas gérer ces cas non plus, sauf pour un certain type, comme Zoom et même alors, ils ne sont pas réellement meilleurs dans le sens où ils vous mènent droit au problème.
Mike Dunlavey
@Kristof: Voici le genre de problème que la pause aléatoire n'est pas bonne - où si vous prenez un instantané à temps et l'étudiez, vous ne pouvez pas dire la raison de ce qu'il fait. Exemple: traitement basé sur un message, où vous ne pouvez pas savoir d'où le message a été envoyé, pourquoi ou à quelle fréquence. Autre exemple: les protocoles asynchrones, où les messages sont échangés, et il semble que nous attendions toujours l’autre type. Pour le traitement synchrone, les profileurs peuvent mesurer mieux, mais la pause aléatoire est meilleure à la recherche .
Mike Dunlavey
14

Selon vous, quel type d’outil de programmation est le plus sous-estimé? Motivez votre réponse.

Le compilateur.

La plupart des gens ne prennent pas le temps de comprendre ce que leur compilateur de choix fait. Ils ont juste l'impression que cela fait du code un programme exécutable et c'est tout ce qu'ils peuvent faire. Sur la plupart des systèmes modernes, il existe plusieurs configurations que vous pouvez utiliser pour le faire répondre à vos besoins Voici un exemple, je parie que la moitié des développeurs de votre bureau n’ont aucune idée de la définition du niveau d’avertissement en tant qu’erreur (en supposant qu’il en ait réellement un). Quelles options avez-vous pour afficher les symboles de débogage? Quelles optimisations (ou quel niveau de) voulez-vous qu'il fasse? La liste continue.

Kevin
la source
3
@ Kevin: et j'ajouterais des moyens d'écrire du code pour que le compilateur effectue des contrôles pour vous (pour les langages statiques). La plupart des développeurs utilisent des types standard (tels que chaîne) pour représenter tout type d'informations, où ils pourraient définir des types simples mais incompatibles pour des données non liées ... et avoir le compilateur qu'ils ne se sont pas trompés lors de la transmission d'arguments.
Matthieu M.
@ Matthieu M C'est aussi un bon point. Beaucoup de gens oublient les moyens faciles pour vous aider.
kemiller2002
3
Chaque avertissement du compilateur est un cadeau précieux. Ne les ignorez pas! Demander plus! -Werror devrait être obligatoire.
Kristof Provost
@Kristof: -pedantic -Wall -Wextra -Werror... bien qu'il soit difficile de construire quoi que ce soit alors: p
Matthieu M.
Peut-être que c'est juste moi, mais si "la moitié des développeurs" ne savent pas ce que sont les symboles de débogage "n'est pas une exagération, c'est vraiment décourageant.
kizzx2
10

Ton cerveau. D'autres outils n'auraient pas beaucoup de sens sans cela.

Jnevelson
la source
4
J'ai rendu le mien souvent inutilisable à l'occasion.
David Thornley
3
"plus ou moins oublié": -S
5
Je dirais que c'est sous-estimé. Trop de gens sont toujours à la recherche de raccourcis pour ne pas avoir à réfléchir. Il n'y a pas de remplacement pour le bon sens et la logique, et les outils ne peuvent simplement pas le remplacer.
Jnevelson
2
Je suis d'accord avec Jonathan, le cerveau est souvent sous-estimé. En fait, trop de programmeurs s’appuient sur les quelques astuces qu’ils connaissent au lieu de sortir des sentiers battus et d’écrire de temps en temps un scénario de test et un outil de test sur mesure (peu coûteux et malhonnêtes) pour étudier le problème. J'ai souvent donné aux développeurs les moyens d'aller au-delà de leur état de pensée et de résoudre leurs problèmes sans plus que quelques questions.
asoundmove
1
Certains commentaires m'ont amené à changer d'avis, +1 :)
Anto
10

Bon vieux:

print

Parfois, un débogueur, un profileur ou un diagramme de flux UML est utile. Et parfois, ils vous rendent fou. Je me retrouve toujours obligé d'utiliser des instructions print (ou trace, NSLog ou ce que vous avez) pour vous assurer que mon code fait ce que je pense qu'il fait quand je pense qu'il le fait.

JRW
la source
Je pense que cela dépend de la langue et du débogueur. Les types de débogueurs offerts par la plupart des IDE décents de nos jours pour les langages populaires vous permettent de faire les choses beaucoup plus facilement que les instructions print.
Billy ONeal
8

Vieux scripts simples ... quel que soit le nombre de langages de nouvelle génération que nous développons, nous nous basons toujours sur les scripts. La plupart des tâches quotidiennes peuvent être accomplies en écrivant quelques lignes de scripts.

Gaurav Sehgal
la source
1
Voir .. Je ne suis pas d'accord avec celui-ci. Oui, les scripts peuvent automatiser certaines tâches. Mais souvent, ils sont pris au-delà du simple sens du terme, au point de devenir un gros brochet de spaghettis.
Billy ONeal
1
Certes, les gros scripts sont horribles à regarder et on pourrait utiliser perl ou python pour cela. Même s’ils réussissent toujours à faire de petits travaux.
Gaurav Sehgal
@Billy Utilisez python. Problème de spaghettis résolu :)
Evan Plaice
7

Stylo et tableau blanc.

Vous ne pouvez pas battre la basse technologie lorsque vous essayez d'expliquer quelque chose.

Andy Lowry
la source
Peut-être une réponse en double, mais cela mérite mon vote séparé pour le tableau blanc.
Carson Myers
Hmm, à peu près sûr que ce n'était pas un doublon quand je l'ai créé, très étrange. Je vais le changer en stylo et tableau blanc.
Andy Lowry
6

ack . C'est comme grep -r, mais il est conçu pour rechercher dans votre code source.

Peter Mortensen
la source
5

Perl et d'autres langages de script. Idéal pour les tâches un peu trop compliquées pour des outils graphiques tels que Agent Ransack.

Kevin Cline
la source
1
Je ne suis pas sûr qu'ils soient sous-estimés ...
Anto
3
Certainement sous-estimé ... spécialement Perl. C'est un lang. très bien conçu avec la devise simple: garder les choses simples ... en tant que tel, il n'a pas de prix pour les tâches rapides qui doivent juste être effectuées.
Rook
@Rook: Je ne suis pas sûr de savoir comment une langue avec plus de 100 opérateurs peut être considérée comme "simple". Utile, éventuellement. Mais pas "simple".
Billy ONeal
@Billy - Simple n'exclut pas puissant. Je trouve les calculatrices simples. Je ne sais pas ce que la moitié des 300 fonctions de la mienne font, mais cela ne réduit pas sa simplicité.
Rook
4

Raccourcis clavier permettant une refactorisation rapide, fréquente et sûre. Apprendre à extraire (ou en ligne, etc.) des variables, méthodes, constantes ou classes à la pression de certaines touches change fondamentalement la façon dont je code. Vous ne refacturez que fréquemment (c.-à-d. Assez) lorsque le coût est minimal. Il est donc essentiel que ces raccourcis soient une seconde nature pour pouvoir écrire et conserver un code correct en ce qui me concerne.

En règle générale, utilisez de bons outils (IDE / éditeur) et apprenez à tirer le meilleur parti des fonctionnalités qu’ils offrent.

Les tests unitaires et TDD viennent ensuite, afin de garder votre code testable et d'éviter la peur du refactoring.

Utilisez-les et vous pourrez facilement écrire du code maintenable correct, conforme au principe de DRY et auto-documenté.

Alb
la source
4

Le test unitaire offre les avantages suivants:

  • Les développeurs deviennent les premiers clients du code. Plus vite un bogue est détecté, moins il est coûteux de le réparer. Des bogues peuvent être interceptés avant une construction, une installation ou un déploiement .
  • Tester change votre perspective sur le code. Le design est-il clair? Est-ce qu'il gère les cas de coin?
  • Hawthorne Effect améliorera la qualité simplement en annonçant qu'une équipe publie des métriques qualité / test.
  • Même si les tests ne sont pas enregistrés dans le contrôle de source, ils peuvent constituer un excellent moyen d'explorer et d'apprendre de nouveaux terrains.
  • Une forte probabilité de moins de bugs!
Michael Easter
la source
4

Générateurs de code

Les générateurs de code peuvent créer une grande quantité de code efficace et sans bogue à partir d'une simple définition. Les utilisations de type ORM sont les plus évidentes pour la création de classes d'accès aux données, mais il existe de nombreuses autres utilisations potentielles.

Le support de génération de code semble encore à ses balbutiements, tant du point de vue du programmeur que du framework, mais je pense que nous en verrons de plus en plus. Dans .NET, vous pouvez commencer à jouer avec le truc CodeDOM .

konrad
la source
J'aime écrire des générateurs de code, pas la chose la plus facile à faire, mais tellement utile.
Zachary K
3

J'utilise AgentRansack fortement. C'est une aide considérable pour parcourir des milliers de fichiers très rapidement. Cela m'a fait gagner beaucoup de temps, mais je ne connais pas beaucoup de programmeurs qui en connaissent ou l'utilisent.

JakeRadakovich
la source
3

Méthodes formelles.

http://www.amazon.com/Discipline-Programming-Edsger-W-Dijkstra/dp/013215871X

http://www.amazon.com/Science-Programming-Monographs-Computer/dp/0387964800/ref=pd_sim_b_1

Il est difficile d'exagérer leur importance. Chaque boucle et chaque instruction if commence par une idée qui nécessite une sorte de "preuve". La plupart des programmeurs font cette preuve la plupart du temps dans leur tête. Vous demandez ce que la déclaration if fait et ils peuvent expliquer - de manière saine et logique - quels sont les choix et pourquoi ils sont complets, cohérents et exclusifs.

Mais certains semblent deviner au hasard. Ils ont besoin de plus d'aide et les méthodes officielles pourraient être le type d'aide dont ils ont besoin.

C'est juste de l'algèbre (et du calcul) pour le code. Rien de trop complexe ou sophistiqué.

S.Lott
la source
Je les ai souvent trouvés utiles pour corriger les choses simples afin de pouvoir les utiliser lors du débogage des tâches plus complexes. Mon expérience est que les méthodes formelles éliminent assez bien les bugs subtils, ne laissant que les plus évidentes et évidentes qui sont facilement capturées par les tests.
David Thornley
3

Les modèles de conception physique, tels que le fait de quitter la chaise pour un jogging rapide à la lumière du soleil et à l’air frais, permettent à notre cerveau de fonctionner à plein régime.

Joe Chrysler
la source
3

Eh bien, c'est Half Life 2 (insérez votre jeu préféré ici). Si j’ai un problème que je ne peux pas résoudre, j’arrête de fumer et je commence à jouer avec mon jeu préféré. Soudain, la solution me revient à l’esprit. Donc, pour être honnête, ce n'est pas un jeu ou quelque chose comme ça, mais faire quelque chose d'autre . Je vois souvent des gens assis sur un problème pendant des heures sans le résoudre et tout ce qu'ils devraient faire, c'est mettre leur cerveau hors ligne pendant une courte période.

Adam Arold
la source
3

Débordement de pile - aide experte rapide lorsque vous êtes bloqué

site de questions et réponses pour les programmeurs professionnels et passionnés. Il est conçu et géré par vous dans le cadre du réseau de sites de questions-réponses Stack Exchange. Avec votre aide, nous travaillons ensemble pour créer une bibliothèque de réponses détaillées à toutes les questions concernant la programmation ...

moucheron
la source
+1, mais ce n'est plus vraiment sous-estimé
MAK
4
peut-être même surestimé, ou du moins surexploité
Anto
3

Je pense que ce sont les programmes d'édition de texte Notepad / TextPad / simple. Tout le monde a un moment où ils ont besoin d'une solution rapide qui ne nécessite pas d'ouvrir un IDE et nécessite juste une modification rapide. Et tous les ordinateurs ont une sorte de programme d'édition de texte simple.

Peter Mortensen
la source
2

Assert et une bonne alwaysAssert()fonction. IMHO ceux-ci sont plus importants que les tests unitaires, car les tests unitaires ne peuvent détecter les bogues que dans les cas spécifiques que vous avez pensé tester. Si le même programmeur écrit le code et les tests, il manquera probablement les mêmes cas extrêmes dans les deux cas. En outre, il est parfois difficile de procéder à des tests unitaires, car l’environnement dans lequel le composant fonctionne et / ou les données sur lesquelles il opère est trop compliqué pour pouvoir proposer un scénario de test artificiel.

La beauté des assertions réside dans leur capacité à documenter des hypothèses et à les tester sur des intrants non artificiels . Si l'une de ces hypothèses est fausse, votre code échoue bruyamment au lieu de "fonctionner" mais de produire des résultats subtilement incorrects. Il échoue également plus près de la racine du problème que cela ne le serait sans les affirmations. En pratique, si vous énoncez explicitement suffisamment d'hypothèses sur un morceau de code et que toutes ces hypothèses sont correctes, le code est généralement correct.

Un reproche commun aux assertions est qu’elles peuvent être désactivées. IMHO chaque langue ou bibliothèque standard devrait avoir une alwaysAssert()fonction ou un équivalent approximatif qui fait la même chose assertmais ne peut pas être désactivé. Cela peut être utilisé pour vérifier des hypothèses dans des zones de code critiques non performantes, où les avantages de désactiver des assertions sont négligeables.

dsimcha
la source
D'accord. Mais malheureusement, simples mais efficaces, de tels outils sont souvent sous-estimés.
Peter Mortensen
2

La touche F1. - Utile pour les programmes que vous ne connaissez pas et pour ceux sur lesquels vous travaillez. (En supposant qu'il s'agisse d'une application volumineuse.)

Il était puissant de filtrer les problèmes lorsqu'un utilisateur signalait des problèmes en fonction de son interprétation du fonctionnement du logiciel. Bien sûr, il se peut que la conception elle-même ait été imparfaite. Mais c'est une autre histoire.

Jeremy Edwards
la source
2
À la fois sous-estimé et également sous-implémenté.
Type anonyme
Très sous-estimé par les développeurs de l'application que vous utilisez actuellement; en tant que telle, l’aide contient peu ou pas d’informations utiles.
Poke
2

Divers utilitaires de base UNIX, mais principalement findet occasionnellement grepou ed. La possibilité de rechercher des éléments dans des fichiers nids profonds est inestimable, en particulier lorsque vous héritez soudainement d'une base de code et que vous devez le réparer. Même si ce code est bien documenté, vous devrez probablement chasser et une bonne compréhension de le findtuer.

kojiro
la source
2

Curiosité

Appelez cela la "devinette de la programmation". Qu'est-ce qu'un outil par rapport à la personne qui le manie? Le désir de savoir comment et pourquoi quelque chose fonctionne ou non accroît ses connaissances plus que n'importe quel outil spécifique et cela est vrai au-delà de la programmation.

Thomas
la source
2
Ctrl + C    
Ctrl + V

Économisé d'innombrables heures dans le monde entier!

GAMBOOKA
la source
1

Queue

Tail peut être utilisé pour surveiller le fichier de sortie du journal du programme en temps réel. Cela a été d'une grande aide lors du développement de systèmes qui ne fournissent pas aux autres moyens de lire le journal.

Les exemples de programmes sont;

Déclaration
la source
Mac OS X est un système UNIX. Pas besoin de le mentionner séparément.
Droitier le
0

J'ai kludged ensemble un générateur de graphe d'appel Perl une fois. C’était extrêmement utile, mais c’était un coup dur pour le code non procédural ou les routines hors fichier.

Paul Nathan
la source