1つの関数にいろいろ詰め込んでるなら、それ以上プログラミングは上達しない。そんな上達しない理由と、上達するためにどんなことをすればいいか話していこう。
細かく実装しないと上達しない3つの理由
- 可読性(読みやすさ)が極端にさがる
- 書いてる途中にわけわかんなくなってバグがふえる
- プログラムのテストがしづらい
さて、上記のような感じだが1つずつ説明していこう。
可読性(読みやすさ)が極端にさがる
プログラムの読みやすさが極端にさがる。致命的に。簡単にいえば「ウォーリーをさがせ」をつねにやってる状態といっていい。
細かく実装することは、ウォーリーしかいない状態だと思ってもらえば分かりやすいだろう。そのくらい差が出てきてしまう。
ちなみに、チーム開発をしてればチームにも迷惑がかかる。そう、なにもいいことがないんだ。
書いてる途中にわけわかんなくなってバグがふえる
いろんなことをコードに詰め込むと、途中からわけわかんなくなって結果バグがふえる。そのバグを解決するのに必死で上達どころの話ではなくなる。
あなたが天才プログラマーなら好きにすればいいが、そうではないはずだ。
ちなみにバグを解決するのに必死だと、つぎのことにも影響がでてくる。
プログラムのテストがしづらい
プログラムのテストがしづらいことだ。なにより単体テストがしづらい。いや...できないといっていい。
意外にもテストが重要なことには、プログラミングを続けていくとよく分かるんだが。1つの関数にいろいろ詰め込んでるとテストが重要なことに気づかないで終わる。
結果、上達しないどころが質の低いプログラマーになってしまう。
さて、じゃあ上達しない質の低いプログラマーにならないためにどうすればいいのか?
質の高いプログラマーになるための3つのコツ
- 関数を細かく書くこと--最初は細かすぎてもいい
- 名前を適切につける
- インデントをしっかりする
そんなこと知ってるわ!って思うかもしれない。ただこの3つが重要なんだ。1個づつ説明していこう。
関数を細かく書くこと--最初は細かすぎてもいい
まずは関数を細かく書いていこう。最初にもいったが1つの関数に1つのことをさせること。行数にしたら30行ぐらいにまとめること。
30行ぐらいにまとめるとつぎのようなメリットもある。
- 1つのことだけに集中できるから実装しやすくなる
- 使いまわしができるため開発スピードがあがる
- 単体テストしやすく、質の高いプログラムができあがる
名前を適切につける
関数や変数、引数には名前をしっかりつけよう。名前をしっかりつけないことは、子供にキラキラネームつけてる親といっしょ。
誰にも分からない名前をつけて、自己満足にしかなってないわけ。
そんな自己満足にならないために、しっかりとした名前をつけよう。たとえば、Boolean型なら名前の先頭にisやhasをつけるとか。
関数名には動詞をいれると分かりやすい。
インデントをしっかりする
インデントをしっかりつけよう。インデントをつけることで、どこまでがどんな処理なのかパッと見て理解できるからだ。
たとえば、ifやforの間。while文なんかはしっかりインデントすること。
少なくともインデントを実践することで分かるメリットがあなたが思ってるより大きいことがわかるはずだ。
まとめ: まずは3つのコツをためして上達していこう
- 関数を細かく書くこと--最初は細かすぎてもいい
- 名前を適切につける
- インデントをしっかりする
上記、3つが上達するのに必要なこと。まずは3つのなかの1つでもいいから実際にやってみること。
理解しただけで頭でっかちになっても意味ないから明日、いや今から実践してみよう。