Matvii Hodovaniuk Notes

The Basic Tools

Keep Knowledge in plain text

14.-The Power of Plain Text #

Drawbacks #

The Power of Text #

15.-Shell Games #

Use the power of command Shells

Can't you do everything equally well by pointing and clicking in a GUI?
No. A benefit of GUIs is WYSIWYG—what you see is what you get. The disadvantage is WYSIAYG—what you see is all you get.

16.-Power Editing #

Use a Single Editor Well

Editor "must" features #

17.-Source Code Control #

Always Use Source Code Control

18.-Debugging #

Fix the Problem, Not the Blame

Don't Panic

A Debugging Mindset #

Don't waste a single neuron on the train of thought that begins "but that can't happen" because quite clearly it can, and has.
Try to discover the root cause of a problem, not just this particular appearance of it.

Where to Start #

Debugging Strategies #

Bug Reproduction #

Visualize Your Data #

Use the tools that the debugger offers you. Pen and paper can also help.

Tracing #

Now what happens before and after.

Rubber Ducking #

Explain the bug to someone else.

Process of Elimination #

It is possible that a bug exists in the OS, the compiler, or a third-party product—but this should not be your first thought.

"select" Isn't Broken

The Element of Surprise #

Don't Assume It—Prove It

Debugging Checklist #

19.-Text Manipulation #

Learn a Text Manipulation Language

20.-Code Generators #

Write Code That Writes Code
Two main types of code generators:

Code Generators Needn't Be Complex #

Keep the input format simple, and the code generator becomes simple.

Code Generators Needn't Generate Code #

You can use code generators to write just about any output: HTML, XML, plain text - any text that might be an input somewhere
else in your project.

← Home