2020年10月22日木曜日

初学者に説くインデントの重要性

プログラミングの初学者に指導をしていると,インデントが雑なコードによく当たる.いちばん酷い例は,まったくインデントをしていないケースもある.いちおう,「ブロックの単位で行を下げて,インデントというものをするんだよ」と指導はするものの,ボーッと聞いていて聞き逃していたり,なんとなく忘れてしまったりという状況で,インデントに気を配らないようだ.

しかし,ブロックの対応がどこからどこまでなのかを明記するために,インデントはきちんとしないとバグの温床になる.したがって,インデントの概念はきちんと理解させておきたいところ.はて,どうしたものだろうか.

さあどうしよう

まず,最新のツールを使えばよいだろうという解が考えられる.最新のエディタを使えば,そんなんよしなにやってくれるじゃん,というものである.しかし,これ,さきの「ボーッと聞いていて聞き逃す」と同じ懸念がある.すなわち,ツールがよしなにやってくれるからほとんど意識に残らないという懸念である.

最初はPythonで学べばよいという指摘を頂いたこともある.たしかにPythonであれば,インデントでスコープを表現するので,スコープが崩れていると,そもそも意図したとおりに動作しない.しかし,これは主義主張の面もあるが,そもそもスコープをインデントのみで表すことに疑問があるので,素直に受け入れがたいところがある(複数人で開発を行っているとインデントがすぐに崩れてしまい,週に1度のペースで「今日はコード整備の日」とlintを掛けた経験があり,トラウマになっている.そんなんでロジックが変わったらたまらん,という懸念である).

手でインデントを設定させて,昔ながらのlintやindentで修正させるというやり方は,手間はかかるが意識させるという点では有効なのではないかとも考えているが,いささかオールドファッションドな感覚は否めない.

自分のときはどうだったっけかな…… というのはもうはるか昔の話で忘れてしまった.まだまだ試行錯誤は続きそうだなあ.



0 件のコメント:

コメントを投稿