皆さんはプログラムを書くときに、いきなりコードから書き始めていないでしょうか。そういう私もプログラムを学び始めた頃はそうでした。「とりあえずコードを書いてみよう」と書き始めますが、だんだんと自分が何を作ろうとしているのかわからなくなり、やっと出来上がったコードは無駄な処理やバグも多く、とてもスマートと言えるものではありませんでした。例えるなら、目的地を聞いただけで家を飛び出し、散々迷子になってボロボロの状態でなんとか目的地にたどり着いたようなものです。事前に交通手段を調べてルートを検討するように、プログラムを書くときも事前の準備が重要です。 それでは、具体的にどのような準備が必要なのか見ていきましょう。
①目的を明確にし言語化する
まず、実現したい処理を言語化しましょう。日本語でいいので、コメントに具体的に書きます。頭の中でふわっとしている状態でも、言語化することで目的が明確になります。例えば「ユーザが入力したパスワードが規則に合っているか判断するメソッド」などです。このままだと「規則って何?」「パスワードはどういった手段で受け取るの?」など曖昧な部分がありますので、補則として追記します。
# ユーザが入力したパスワードが規則に合っているか判断するメソッド
# ・パスワードは8文字以上16文字以下の半角英数字で、数字と英字を少なくても1つ以上含むこと
# ・パスワードは文字列として受け取る
# ・規則に合っていればTrue、合っていなければFalseを返す
これで実現すべき処理の目的と入出力が明確になりました。
②処理を細分化する
ここでまだコードを書き始めてはいけません。
次にすることは、実装方法を考えてこれも日本語でコメントに書きます。例えば、正規表現を使って判断する方法もありますが、条件を一つずつ検証する方法で考えてみましょう。
# パスワードが8文字未満、または16文字を越えていたらFalseを返す
# パスワードに含まれる半角数字の数を取得する
# パスワードに含まれる半角英字の数を取得する
# 半角数字と半角英字それぞれの数がどちらも1以上ならTrue、違うならFalseを返す
③細分化した処理を見直す
処理に過不足がないか、誤りがないか、目的を実現できているか、見直しましょう。特にイレギュラーな場合(データがnullなど)の処理を考慮できていないことが多いです。これも忘れずに付け足しましょう。
④コメントの下にコードを書く
ここまで来れば、あとはコメントに従ってコードを書くだけです。コードが分からなくても、調べるのはコメントに書いた内容だけに絞ることができるので、やりやすくなります。
もし、それでも分からないときは、さらに処理を細分化してみましょう。
# パスワードは8文字未満、16文字を越えていたらFalseを返す
↓ 細分化
# パスワードの文字数を取得する
# パスワードの文字数が8文字未満、または16文字を越えていたらFalseを返す
このように処理や手順を分解することで、さらに理解しやすくなりコードに落とし込みやすくなります。
最後に不要なコメントを削除したり体裁を整えて完成です。
■処理を言語化、細分化するクセをつけよう
いきなりコードを書くのではなく、まずは目的を日本語で言語化してコメントに書き、処理を細分化することで、スマートで効率的なプログラムを書くことができます。是非参考にしてくださいね。
댓글