テックアカデミー第5回メンタリング:質問いくつかと今の開発手法とは?

2018年3月19日

メンタリングの様子

さてメンタリング(講師とのビデオ通話)の回数は今日で5回目となりました。

日々レッスンを自力で進めてはいますがどうしても躓いてしまう部分が増えてきました。1行1行読む度に掲示板に質問を投げかけたり、リファレンスで索引をひいたりしています。

文字のやり取りでは解決できなさそうな部分は講師とビデオ通話で解決に励んでいます。

今日もいくつかの質問のやり取りをさせてもらったのと、いま現在主流になっている開発手法について聞いてみました。

バリデーションはどのタイミングで行われるか

バリデーションというのはフォームから送信されたデータの検証を行うメソッドです。RailsやRubyの話ではなく他の言語でもあります。
Railsですと、validates というメソッドで実現しています。

先生、バリデーションはどのタイミングで行われるのでしょうか。
例えば以下のようなクラスの場合です。

class Person < ApplicationRecord
  validates :name, presence: true, length: { maximum: 255 }
  validates :age, presence: true, length: { maximum: 255 }
end

validatesの実行のタイミングはデータの保存時となります。person.saveメソッドが呼び出されるタイミング(INSERT文を発行してDBに書き込みに行く時)にRailsによって自動的に検証がされます。

なるほど。そう言えば前も聞いたことあったような‥汗

params[:id]は何が取れるのか

今までparamsメソッドと言えば、フォームから送信されてきたデータを取り出すのに使っていたと思います。

例えばHTMLだと、

    <form action="/" method="POST">
      <label>名前: <input type="text" name="myname"></label>
      <input type="submit" value="送信">
    </form>

このようなフォームで入力欄に入れた名前(myname)を取得するのに、params[‘myname’]で、取得していました。

今回のparams[:id]は何を取得しているのでしょうか?

これはparams[:id]で、URLにidに相当する値が含まれているハズなんです。

そういうURLのときは:idで取得することができるんですね。

例えば http://hogehoge.com/person/1 の「1」の部分が該当します。

なので①フォームから送信された情報を取る、②URLに書かれているモデルのIDを取る のに使えると思えばよいです。

なるほどですねー。

親クラスのメソッドとインスタンスどこで使える?

親クラスを継承した子クラス内で、親クラスのprivateなメソッドを使えるのは理解しているのですが、そのメソッド内で定義された変数はどこまで使えるのでしょうか?

例えば以下のようなイメージです。

ApplicationController #親
	private

	def person_count(persons)
	 @aiueo = persons.count
	end

end
class childA < ApplicationController
	person_count(@persons)
end

これだと親クラスのメソッドperson_countは子クラス内で使えるけど、中にある@aiueoという変数は使えないように思うのですが、間違えてますか?

親クラスのメソッドperson_countを呼んで、@aiueoをセットしていますよね。

これは親クラスのインスタンスじゃなくて、子クラスのインスタンスになるんですよ。なので子クラス内でも使えるし、VIEW側でも同じ変数を扱うことができます。

マジですか。なんだか違和感があるけど了解しました~

いま主流の開発手法

ところで今の開発の現場ってどうなってるんですか?

僕が10年前に辞めた会社ではウォーターフォールという開発手法を使ってたんですよ。仕様書→基本設計→詳細設計と書いていく。それに画面イメージ図、画面遷移図、データベース設計書、テスト設計書、なんかを作ってやってたんですけど。

いまの開発ってこういう手法やってたりしますか?

いや~いまどきほとんど無いんじゃないでしょうか。

今主流なのはアジャイルを取り入れてるところが多いと思います。

最初に小さく動く単位で開発して、2週間単位で確実に動く単位で進めていくんです。

設計書をガチガチにつくらないのが特徴ですね。

概念的なことを説明するドキュメントは書くけど設計書らしいものは無いかなぁ。

大手とか銀行とか古い資産がある業界は相変わらずウォーターフォール型でしっかり進めていくところもあると聞いてますけど。

はえ~~びっくり。自分が居た頃から大きく変化してきたなぁ。もし自分がこの業界に再就職しようと思っても無理だな‥(; ・`ω・´)

てことで、今日も疑問解決できました。まだレッスン12から先に進めておりません。レッスン12で足止めされてる感じ‥なんとか課題を終わらせて次のレッスンに進みたい。

だんだん苦しくなってきたのは事実。Twitterにプログラミング苦しいツイートしてるのは僕です。

では!今日は以上です。
皆さんも一緒にプログラミングがんばりましょう!

≫テックアカデミー無料体験はこちら