Ch.2 Ruby on Railsでの開発①|『Webエンジニアの教科書』まとめ #2

f:id:lib-arts:20190119230646p:plain

#1では連載の経緯と課題本とした『Webエンジニアの教科書』の1章についてまとめました。

詳細は#1を読んでいただければと思いますが、技術開発系の仕事をするにあたってはこだわりや尖ったスキル(例えば機械学習やる上での数学やWebデザインやる上でのデザインスキルなど)がない場合はWeb開発者のキャリアパスを目指すのが良いと思います。この連載では未経験者・初心者向けにWeb技術の入門にあたる内容をまとめていきます。スクールに通うかどうか迷っている方などをメインの想定読者として考えています。

#2では課題本の2章のRuby on RailsのSection-07のMVCまで取り扱えればと思います。08も入れようかと考えたのですが、08がRailsでの実際の開発についてで若干情報が多いので#3で取り扱おうと思います。(本はさほど高価ではないし購入の上読んでいくことを推奨します。何も知らない前提であれば学ぶ内容が非常に多いと思います)

 

以下目次になります。
1. Section_05~07までの内容に関して(Rubyの概要とMVCフレームワークに関して)
1.1 Rubyの概要(005)
1.2 Ruby on Railsの登場(006)
1.3 Model View Controller(007)
2. まとめ


1. Section_05~07までの内容に関して(Rubyの概要とMVCフレームワークに関して)
1.1 Rubyの概要(005)

Section_05ではRubyの概要についてまとまっています。詳しくは本に書いてありますので抜粋すると、1993年に開発されたオブジェクト指向プログラミング言語です。

 

↓以下は私見なので参考程度にご覧ください。
周りの話を色々と聞く感じだと開発者が日本人なので日本語のコミュニティが強いのと、この章のメイントピックであるRuby on Railsがベーシックかつフルスタックで学習コストの低いフレームワークとしてよく用いられるというのがRubyの利点だと思います。
個人的にはPython中心のためRubyはほとんど触らないのですが、初心者向けにWeb開発を説明する際にはDjangoだとあまりに日本語のチュートリアルや本が少ないので、チュートリアルの充実しているRubyを最近では勧めています。実際に案件数も多いし、JavaPHPと違って大外れの職場が少ないのでWebに入る際はRubyからが良いのではと思います。JavaPHPをメインで使っている方であまり楽しそうに仕事をしている方を見ません。(PHPはLaravelなどは違う印象も受けますが、Webに特化しているので他の用途に生かしづらいというデメリットもありやはりRubyが最初は良いのではと思います。Javaはお堅い系の職場が多く、人月的な管理が多い印象です。)

また、Rubyの良い点はオーソドックスなオブジェクト指向の言語で様々な方向に伸ばしやすいのと、開発がほぼRails一択なので最初の内は一点突破をはかりやすいというのもあると思います。


1.2 Ruby on Railsの登場(006)

Section_06ではRubyを用いたWebフレームワークとしてよく用いられるRuby on Railsについてまとめられています。詳しくは本に記載されていますが、Railsは2004年にRubyをベースとして構築されたWebフレームワークです。ここで基本理念として触れられているDRY(Don't Repeat Yourself)や、CoC(Convention over Configuration)は最初の内は何となく見たな程度で良いので抑えておくようにしてください。また、RESTfulについても何となくだけでも良いので抑えておくようにしておくと良いです。操作の対象をURLで表現し、それに対してHTTPメソッドの「GET」、「POST」、「DELETE」、「PUT」を使って操作を行うという考え方です。具体的な理解は実際に動かしながらで十分なのでこういう考え方があるだけ先に知っておけば十分だと思います。


1.3 Model View Controller(007)

Section_07の内容のMVC(Model View Controller)はWebフレームワークの多くのアーキテクチャで用いられている考え方なので言葉だけでも必ず抑えておくようにしてください。前提としてはサーバクライアントシステムを理解しておくと良いです。

クライアントサーバモデル - Wikipedia
上記に詳しくはまとまっていますが、重要部分を抜粋すると『クライアントがサーバに「要求」を送信し、サーバがそれに「応答」を返す形で処理が行われる。』と記述されています。リクエスト(要求)に対し応答を返す際において、応答はHTMLファイルが送信されます。この際のHTMLファイルをリクエストに対し柔軟にさばけるようにということで、MVC的な考え方は組まれています。
それぞれ、Mがデータベースとのやりとり、VがHTMLやJSONの生成、Cが全体の処理の振り分けを担当しています。この辺は実際に動かしながらでないとイメージがつかないので一旦はこのくらいの知識の整理で十分だと思います。


2. まとめ

大体の基礎知識は整理できたので#3では実際にRailsを動かすところについてまとめていければと思います。
あまり難しく考え過ぎずにとにかく動かしてみてわからなければ誰かに聞くというので良いと思います(コメントいただければできる範囲で回答します)。最初から分かる人なんていないですし、しっくり来るまでTry&Errorを繰り返すのが良いと思います。
実際のRailsの動作諸々に関しては#3でまとめますので、そちらをご確認いただけたらと思います。