RailsはMVCアーキテクチャを採用しているため、アプリケーションコードは基本的にModel, View, Controllerの3階層に分かれます。この基本となる3階層がそれぞれmodels, views, controllersの3つのディレクトリです。これらにくわえてViewで利用するヘルパースクリプトを格納するhelpersを合わせた4つのディレクトリがRubyで記述するサーバーサイドアプリケーションとしてよく利用することになるディレクトリです。
このように、オブジェクトのクラスが何であろうとそのメソッドが呼び出せればよしとするプログラミングスタイルのことを「ダックタイピング(duck typing)」と呼びます。これは「もしもそれがアヒルのように歩き、アヒルのように鳴くなら、それはアヒルである」という言葉に由来するプログラミング用語です。
インスタンスを初期化するために実行したい処理があれば、このinitializeメソッドでその処理を実装します(とくに必要がなければ定義しなくてもかまいません)。ほかのプログラミング言語の経験者であれば、コンストラクタのようなものと考えるとわかりやすいと思います。
また、テストコードを書いてからデバッグすれば、デバッグの修正と同時にそのロジックのテストコードができあがります。なので、プログラムにほかの修正が入った場合でも、そのテストコードを実行すればそのロジックが壊れていないことを保証できます。デバッグの時間を短縮できる、できないにかかわらずテストコードを書いておくことは非常に良い習慣だと言えるでしょう。
Rubyはオブジェクト指向言語です。文字列や配列はもちろん、数値やnil(ほかのプログラミング言語でいうところのnull)も含めて、すべてがオブジェクトになっています。その証拠に数値やnil、trueやfalseに対してもメソッドを呼び出すことができます。