Skip to content

Commit dc67b63

Browse files
authored
Merge pull request braydie#117 from aizak-vare/master
fixed missing Japanese characters
2 parents 3075bd6 + 4194c74 commit dc67b63

File tree

65 files changed

+353
-342
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

65 files changed

+353
-342
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,5 @@ _book
1414
*.epub
1515
*.mobi
1616
*.pdf
17+
/.vs/HowToBeAProgrammer/v15/.suo
18+
/.vs/slnx.sqlite
Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
11
# Learn to Debug
22
[//]: # (Version:1.0.0)
3-
�f�o�b�O�̓v���O���}�ɂȂ邽�߂̊��b�ł��B���� "debug"�̍ŏ��̈Ӗ��̓G���[�����菜�����Ƃł����A���ۂɏd�v�ȈӖ��́A�v���O�����̎��s�𒲂ׂĒ��ׂ邱�Ƃł��B���ʓI�Ƀf�o�b�O�ł��Ȃ��v���O���}�[�͖ڂ������܂����B
3+
デバッグはプログラマになるための基礎です。動詞 "debug"の最初の意味はエラーを取り除くことですが、実際に重要な意味は、プログラムの実行を調べて調べることです。効果的にデバッグできないプログラマーは目が見えません。
44

5-
���z���`�ҁA�݌v�A���́A���G���̗��_�Ȃǂ��f�o�b�O���������{�I���ƍl�����l�́A�v���O���}�[�𓭂����Ă��܂����B�����v���O���}�[�͗��z�I�Ȑ��E�ɏZ���ł��܂����B���Ȃ��������ł����Ă��A�����\�t�g�E�F�A���ЁAGNU�̂悤�ȑg�D�A�����т��Ȃ��̓����ɂ����ď����ꂽ�R�[�h�Ɉ͂܂��Ă��Ȃ����΂Ȃ��܂����B���̃R�[�h�̂قƂ��ǂ͕s���S�ł����A�s���S�ɕ����������Ă��܂��B���̃R�[�h�̎��s���Ž��������@�\���Ȃ����΁A�킸���ȃo���v�͂��Ȃ����i���ɓ����̂Ă܂��B�����̏ꍇ�A���̉Ž����͎����i�f�o�b�O�j�ɂ����Ă̂ݓ������܂��B
5+
理想主義者、設計、分析、複雑さの理論などがデバッグよりも基本的だと考える人は、プログラマーを働かせていません。働くプログラマーは理想的な世界に住んでいません。あなたが完璧であっても、大手ソフトウェア会社、GNUのような組織、およびあなたの同僚によって書かれたコードに囲まれていなければなりません。このコードのほとんどは不完全であり、不完全に文書化されています。このコードの実行を可視化する機能がなければ、わずかなバンプはあなたを永遠に投げ捨てます。多くの場合、この可視性は実験(デバッグ)によってのみ得られます。
66

7-
�f�o�b�O�́A�v���O�������̂��̂ł͂Ȃ��A�v���O�����̎��s�Ɋւ������̂ł��B���Ȃ��������\�t�g�E�F�A���Ђ��牽�����w�������ꍇ�A�ʏ��͂��̃v���O���������邱�Ƃ͂ł��܂����B�������A�R�[�h���h�L�������g�ɏ������Ă��Ȃ��ꏊ�i�}�V���S�̂��N���b�V�������邱�Ƃ͈��ʓI�ős���ȗ��ł��j���h�L�������e�[�V�������~���[�g�����Ă����ꏊ���������܂��B�������ʓI�ɂ́A�G���[���쐬���A�������񂾃R�[�h�𒲂ׁA�G���[���ǂ̂悤�ɔ��������”\���������̂�??�킩���܂����B�K�R�I�ɁA�����͂��Ȃ��������Ă����Ƃ����O�񂪂��Ȃ萳�����Ȃ����ƁA���邢�͂��Ȃ����\�����Ă��Ȃ����Ԃ������������Ƃ��Ӗ����܂��B���ɂ́A�\�[�X�R�[�h�𒭂߂Ă��閂�@�����܂����삷�邱�Ƃ������܂��B�����łȂ��ꍇ�́A�f�o�b�O�����K�v�������܂��B
7+
デバッグは、プログラムそのものではなく、プログラムの実行に関するものです。あなたが大手ソフトウェア会社から何かを購入した場合、通常はそのプログラムを見ることはできません。しかし、コードがドキュメントに準拠していない場所(マシン全体をクラッシュさせることは一般的で壮大な例です)やドキュメンテーションがミュートされている場所が発生します。より一般的には、エラーを作成し、書き込んだコードを調べ、エラーがどのように発生する可能性があるのか??わかりません。必然的に、これはあなたが作っているという前提がかなり正しくないこと、あるいはあなたが予期していない状態が発生したことを意味します。時には、ソースコードを眺めている魔法がうまく動作することもあります。そうでない場合は、デバッグする必要があります。
88

9-
�v���O�����̎��s���Ž��������ɂ́A�R�[�h�����s���Ă��̃R�[�h���ώ@�ł����K�v�������܂��B���ʂɕ\�������Ă������́A�܂���2�‚̃C�x���g�Ԃ̒x���̂悤�ɁA���ꂪ�ڂɌ����邱�Ƃ������܂��B�����̏ꍇ�A�R�[�h���̂����‚��̕ϐ��̏��ԁA���ۂɎ��s�����Ă����R�[�h�̍s�A�܂��͕��G�ȃf�[�^�\���ɂ킽���ē����̃A�T�[�V�������ێ������Ă��邩�ǂ����ȂǁA�ڂɌ����Ȃ����̂��܂܂��܂��B�������̉B���ꂽ���͖̂��炩�ɂ����Ȃ����΂Ȃ��܂����B
9+
プログラムの実行を可視化するには、コードを実行してそのコードを観察できる必要があります。画面に表示されているもの、または2つのイベント間の遅延のように、これが目に見えることがあります。多くの場合、コード内のいくつかの変数の状態、実際に実行されているコードの行、または複雑なデータ構造にわたって特定のアサーションが保持されているかどうかなど、目に見えないものが含まれます。これらの隠されたものは明らかにされなければなりません。
1010

11-
���s�v���O������ "nnards"�𒲂ׂ����ʓI�ȕ��@�́A���̂悤�ɕ��ނł��܂��B
11+
実行プログラムの "nnards"を調べる一般的な方法は、次のように分類できます。
1212

13-
- �f�o�b�O�c�[�����g�p���āA
14-
- Printlining - �v���O�������ꎞ�I�ɕύX���܂��B�ʏ��A�������o�͂����s���lj����܂��B
15-
- ���M���O - �v���O�����̎��s�ɉi���I�ȃE�B���h�E�����O�̌`�ō쐬���܂��B
13+
- デバッグツールを使用して、
14+
- Printlining - プログラムを一時的に変更します。通常、情報を出力する行を追加します。
15+
- ロギング - プログラムの実行に永続的なウィンドウをログの形で作成します。
1616

17-
�f�o�b�M���O�c�[���́A���肵�ė��p�”\�ȏꍇ�͑f���炵���ł����A�������C�e�B���O�ƃ��M���O�͂����ɏd�v�ł��B�f�o�b�O�c�[���͌����J���ɒx�����Ƃ邱�Ƃ��������߁A���‚ł����p�ł��Ȃ��”\���������܂��B�����ɁA�f�o�b�O�c�[���������Ƀv���O�����̎��s���@���ύX�����”\�������邽�߁A�K���������ۓI�ł͂Ȃ��ꍇ�������܂��B�Ō��ɁA�傫�ȃf�[�^�\���ɑ΂����A�T�[�V�����̃`�F�b�N�A�R�[�h�̋L�q�A�v���O�����̎��s�̕ύX�ȂǁA�����‚��̎��ނ̃f�o�b�O�������܂��B�f�o�b�O�c�[�������肵�Ă����Ƃ��Ƀf�o�b�O�c�[�����g�p�������@���m���Ă������Ƃ͗ǂ����Ƃł����A����2�‚̕��@���g�p�ł��邱�Ƃ��d�v�ł��B
17+
デバッギングツールは、安定して利用可能な場合は素晴らしいですが、印刷ライティングとロギングはさらに重要です。デバッグツールは言語開発に遅れをとることが多いため、いつでも利用できない可能性があります。さらに、デバッグツールが微妙にプログラムの実行方法を変更する可能性があるため、必ずしも実際的ではない場合があります。最後に、大きなデータ構造に対するアサーションのチェック、コードの記述、プログラムの実行の変更など、いくつかの種類のデバッグがあります。デバッグツールが安定しているときにデバッグツールを使用する方法を知っておくことは良いことですが、他の2つの方法を使用できることが重要です。
1818

19-
�����‚��̏��S�҂́A�R�[�h���ύX�����K�v�������Ƃ��Ƀf�o�b�O�������Ă��܂��B�����͗����ł��� - �����͒T���I���p�̂悤�Ȃ��̂ł��B�������A���Ȃ��̓R�[�h���˂��h���ăW�����v�����邱�Ƃ��w�΂Ȃ����΂Ȃ��܂����B���Ȃ��͂����������āA���Ȃ����ꎞ�I�ɍs�����Ƃ͂������������������͉̂����Ȃ����Ƃ𗝉����邱�Ƃ��w�΂Ȃ����΂Ȃ��܂����B���̋��|���������ꍇ�́A�����^�[���T���Ă��������B���̋��|�ւ̕q���Ȏn�܂��ŁA�����̗D�ꂽ�v���O���}�[�������܂��B
19+
いくつかの初心者は、コードを変更する必要があるときにデバッグを恐れています。これは理解できる - それは探索的手術のようなものです。しかし、あなたはコードを突き刺してジャンプさせることを学ばなければなりません。あなたはそれを試して、あなたが一時的に行うことはそれを悪化させるものは何もないことを理解することを学ばなければなりません。この恐怖を感じる場合は、メンターを探してください。この恐怖への敏感な始まりで、多くの優れたプログラマーを失います。
2020

2121
Next [How to Debug by Splitting the Problem Space](02-How-to-Debug-by-Splitting-the-Problem-Space.md)
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
# How to Remove an Error
22
[//]: # (Version:1.0.0)
3-
���͈Ӑ}�I�Ƀv���O�����̎��s���G���[���C�������s�ׂ��璲�ׂ��Ƃ����s�ׂ𕪂����B���������A�f�o�b�O�̓o�O�����菜�����Ƃ��Ӗ����܂��B���z�I�ɂ́A�R�[�h�����S�ɗ������A�G���[�����S�ɕ\�������A�C���������@�������u�n�n�I�v�̏u�Ԃɓ��B���܂��B�������A���Ȃ��̃v���O�����ł́A�Ž����̂Ȃ����������ꂽ�V�X�e�����g�p���邱�Ƃ��������߁A�K�����������ł����Ƃ͌����܂����B���̃P�[�X�ł́A�R�[�h�����G�ł��邽�߁A���������S�ł͂����܂����B
3+
私は意図的にプログラムの実行をエラーを修正する行為から調べるという行為を分けた。もちろん、デバッグはバグを取り除くことを意味します。理想的には、コードを完全に理解し、エラーが完全に表示され、修正する方法を示す「ハハ!」の瞬間に到達します。しかし、あなたのプログラムでは、可視性のない文書化されたシステムを使用することが多いため、必ずしもそうであるとは限りません。他のケースでは、コードが複雑であるため、理解が完全ではありません。
44

5-
�o�O���C�������ɂ́A�o�O���C�������ŏ����̕ύX�����������ƍl���Ă��܂��B���Ȃ��͉��P���K�v�ȑ��̂��̂����邩�������܂����B�����ɂ��������C�����Ȃ��ł��������B���x�Ɉ��‚̂��ƁA�������‚̎����ς����Ȋw�I���@���̗p���悤�Ƃ����B���̂��߂̍ŗǂ̃v���Z�X�́A�o�O���ȒP�ɍČ����A�C���v���O�������K�p���Ă����v���O�������Ď��s���A�o�O�����݂��Ȃ��Ȃ������Ƃ��m�F���邱�Ƃł��B���������A���ɂ͕����̍s���ύX�����K�v�����邩�������܂��񂪁A�o�O���C�����邽�߂ɊT�O�I��1�‚̃A�g�~�b�N�ȕύX���K�p�����K�v�������܂��B
5+
バグを修正するには、バグを修正する最小限の変更を加えたいと考えています。あなたは改善が必要な他のものを見るかもしれません。同時にそれらを修正しないでください。一度に一つのこと、ただ一つの事を変える科学的方法を採用しようとする。このための最良のプロセスは、バグを簡単に再現し、修正プログラムを適用してからプログラムを再実行し、バグが存在しなくなったことを確認することです。もちろん、時には複数の行を変更する必要があるかもしれませんが、バグを修正するために概念的に1つのアトミックな変更を適用する必要があります。
66

7-
���ɂ́A���ۂɂ�1�‚̂悤�Ɍ����邢���‚��̃o�O�������܂��B�o�O�����`���Ĉ��x�ɏC�������̂͂��Ȃ������ł��B���X�A�v���O�������������ׂ����A�܂��͌��̒��҂��Ӑ}�������̂��s���ł����B���̏ꍇ�A���Ȃ��͎����̌o���Ɣ��f���s���A�R�[�h�Ɏ����̈Ӗ������蓖�Ă��K�v�������܂��B�������ׂ��������肵�A�R�����g�������A���炩�̕��@�ł����𖾊m�ɂ����肵�āA�R�[�h�����Ȃ��̈Ӗ��ɓK�������܂��B�����́A�ŏ��̏ꏊ�Ɍ��̊֐����������������ɂ͓�������܂��͏㋉�̃X�L���ł����A���ۂ̐��E�͂��΂��Ζʓ|�ł��B�����������ł��Ȃ��V�X�e�����C�������K�v�����邩�������܂����B
7+
時には、実際には1つのように見えるいくつかのバグがあります。バグを定義して一度に修正するのはあなた次第です。時々、プログラムが何をすべきか、または元の著者が意図したものが不明である。この場合、あなたは自分の経験と判断を行い、コードに自分の意味を割り当てる必要があります。何をすべきかを決定し、コメントしたり、何らかの方法でそれを明確にしたりして、コードをあなたの意味に適合させます。これは、最初の場所に元の関数を書くよりも時には難しい中級または上級のスキルですが、実際の世界はしばしば面倒です。書き換えができないシステムを修正する必要があるかもしれません。
88

99
Next [How to Debug Using a Log](04-How-to-Debug-Using-a-Log.md)

0 commit comments

Comments
 (0)