3児ママのプログラミング学習記録

39歳子育て中の主婦のプログラミング学習記録。子供は6歳4歳2歳。学習したことや,学習にあたり感じたこと,主婦の再就職に関して等も記録していきます。学習時間は平日約1時間,休日約3時間。スローペースですが継続します。

メソッドは、一目で全体の処理の流れが分かる!

Ruby on Railsの学習を開始する前に、Rubyの理解を深める為に1つプログラムを作ることになりました。

 ーーーーーーーーーーーーーーーーーーー

・商品を複数表示

・商品を選択

・個数を入力

・合計金額を表示(○人以上は○%off)

 ーーーーーーーーーーーーーーーーーーー

というようなものです。

(内容はアレンジを加えています)

 

◾︎条件分岐のみを使って作成

 

最初はプログラムを全て表示できたところで提出。

(←とりあえず全て表示できたことに満足)

 

そこから、何度も何度もメンターさんに直して頂きました。

毎回絶妙に褒めつつヒントを出して下さり、結局7回も修正しGitHubにプッシュしました。

(丁寧に教えて下さりありがとうございます涙)

 

🔹ここでの主な気づき

・下記を使えばRailsガイドに表示されているものが使えるようになる(一番上に表記)

require "active_support/core_ext/numeric/conversions"

・効果的な変数の定義方法

・変数の名前の重要性(的確に!)

while nextend の使い方

・変数[:キー]でも配列の値を取り出せる

・一度出てきた変数はその後使用する(代入値を重複して記載しない)

 

※細かい修正はもっとたくさんありました。

 

◾︎メソッドを使って作成

 

その後、同じプログラムについてメソッドを使ってコードを書きます。

(今回はクラスやインスタンス変数は使用しない方法です)

 

これが難しかった!!

今までは難しいながらも最終的にできそうな心持ちで取り組めていたのですが、これは途方に暮れた瞬間がありました。

 

それでも丁寧にヒントを頂いて、4回のプッシュで完成しました!

 

🔹ここでの主な気づき

・大まかな流れを日本語で書く→英語でメソッドを準備→コードを入れる

 ・メソッドは上部にまとめる!!(必要であれば切り出して別ファイルにする)

・配列も引数にできる

・引数は必ずしも戻り値に直接関係するわけではない

 

最終的にとても美しいコードになりました!!

メソッドを使用するメリットは、

「一目で全体の処理の流れが分かる」

(細かいコードは必要であれば別で参照する)

というものです。

 

この後、条件分岐のみを使用したコードを見ると、確かに分かりづらい。

まして、最初に提出した自分のコードなんて(恥)!!

(よく褒めるところを見つけて下さったな😂!!という感じ)

 

メソッドは骨組みを作っていただいたので、今度別のプログラムを作成する際に自分で再現できるか自信はありませんが、少なくとも取り組む前よりずっと理解は深まったと思います。

 

Rails学習前に取り組んで良かったです!

 

初歩的な所から丁寧に細かく教えて下さったメンターさんに感謝です✨