読みにくいコードがあれば、そこで行われているタスクをすべて列挙する。そこには別の関数(やクラス)に分割できるタスクがあるだろう。それ以外は、関数の論理的な「段落」になる。タスクをどのように分割するかよりも、分割するということが大変なのだ。
StrongParametersとは、Mass Assignment機能を利用する際に起こり得る脆弱性へ対抗する手段の1つです。Mass Assignmentとはモデルの生成や更新の際に、以下のようにRubyのハッシュを使って一括で属性を設定できる非常に便利な仕組みです。
Active Jobは非同期実行処理機能を提供するライブラリで、Rails4.2で追加されました。Active Jobを使うことでさまざまなバックエンド(ジョブを管理実行するインフラ)上で実行する非同期処理を統一的に利用できます。
RailsはMVCアーキテクチャを採用しているため、アプリケーションコードは基本的にModel, View, Controllerの3階層に分かれます。この基本となる3階層がそれぞれmodels, views, controllersの3つのディレクトリです。これらにくわえてViewで利用するヘルパースクリプトを格納するhelpersを合わせた4つのディレクトリがRubyで記述するサーバーサイドアプリケーションとしてよく利用することになるディレクトリです。
このように、オブジェクトのクラスが何であろうとそのメソッドが呼び出せればよしとするプログラミングスタイルのことを「ダックタイピング(duck typing)」と呼びます。これは「もしもそれがアヒルのように歩き、アヒルのように鳴くなら、それはアヒルである」という言葉に由来するプログラミング用語です。
インスタンスを初期化するために実行したい処理があれば、このinitializeメソッドでその処理を実装します(とくに必要がなければ定義しなくてもかまいません)。ほかのプログラミング言語の経験者であれば、コンストラクタのようなものと考えるとわかりやすいと思います。
Rubyはオブジェクト指向言語です。文字列や配列はもちろん、数値やnil(ほかのプログラミング言語でいうところのnull)も含めて、すべてがオブジェクトになっています。その証拠に数値やnil、trueやfalseに対してもメソッドを呼び出すことができます。