はじめに
初学者向けに書いています。
一連の処理を作るときの考え方を書きました。
意識して欲しいこと
実装の要素を分解し、流れを考える
何かを実装したいと思ったら、その実装に必要な要素やフロー(流れ)を考えて書き出してみましょう。
料理で例えましょう。
あなたは「カレーを作りたい」と思った時、魔法使いでも無い限りいきなりカレーを空間に出現することはできないと思います。
きっと手順として頭の中で以下と似た様なフローを思い描くと思います。
(※食材の調達や細かい工程は割愛しています。カレールゥじゃ無くてスパイスからとかレトルトをチンするとか言わない。)
- 具材を切る
- 具材を炒める
- カレールゥを入れて煮込む
プログラミングも同じです。
何かを実装したいと思ったら上記の様にフローを思い描いてから実装に取り組んでみましょう。
そうすればどんな処理が必要か、何の値が必要かと行ったことが明確になり、実装中に迷子にならずに済みます。
具体例
あなたは唐突に「ユーザーに入力させた数字を二乗にして表示したい」という気持ちに駆られたとします。
この処理をフローで書き出しましょう。大体以下の様になるかと思います。
- ユーザーに数字を入力させる
- 数字を二乗する
- 答えを表示する
というわけで早速実装しましょう。
慣れるまでは作業ファイルにコメントアウトでフローを書いておくのもありですね。
# 好きな数字を入力させる
# 二乗する
# 表示する
丁寧に描くとこんな感じ。
# 好きな数字を入力させる
input = gets.to_i
# 二乗する
answer = input ** 2
# 表示する
puts "二乗した結果#{answer}になりました。"
もちろんプログラミングは自由に書いて良いので上記が絶対では無いです。
3行も書くのは勿体無いなというストイックマンは1行で実装するかもしれないし
puts "二乗した結果#{gets.to_i ** 2}になりました。"
丁寧な人は、入力させる前にユーザーに分かりやすいようアナウンスを入れて、尚且つ二乗処理を使い回せる様にメソッドにするかもしれません。
def multi(number)
number ** 2
end
puts "好きな数字を入力してください。"
puts "二乗した結果#{multi(gets.to_i)}になりました。"
どの様に書いても結果良ければ全てよし!ではありますが、ゆくゆくは他人と一緒に開発することを想定して読みやすく、無駄なく書く様心がけましょう。
まとめ
今回の具体例はフローを書くまでもなくとても簡単な処理ですが、複雑な処理になると初学者は何を書いているか見失いがちです。
実装したいことに向けてしっかりと必要な要素、フローを書いて落ち着いてして一つ一つ実装して行きましょう。
最後に
「ここが分かりにくかった」「これは何?」などの質問や、レイアウト等の書き方にアドバイスがある方はお気軽に(優しく)コメントを頂けると助かります。