大田区から発信するゆるゆる日記

主にITエンジニアに関する備忘録日記。たまに趣味も。何か不備があればコメント頂けると幸いです。Twitterアカウント https://twitter.com/ryuzan03

Ruby on Rails

爆速学習のRails編です。

 

※下記の内容に不備がありましたら、コメント頂けると幸いです。また、下記の内容をご使用頂ける場合は自己責任でお願いします。

【目次】

 

Ruby on Railsとは?

Rubyで利用可能なWebアプリケーションフレームワークです。

フルスタックフレームワークとも呼ばれ、Webアプリ開発に必要な機能を一通り揃えているフレームワークです。

 

先人の知恵と努力の結晶です。

 

アプリケーションフレームワーク導入の利点

・アプリの根幹となる設計方針や基盤部分が決まっているので、開発のスピードと質がある程度担保される

・開発ルールが決まっているので、コードに一貫性がありメンテナンス性に優れる

フレームワークの要求に従えばアプリが完成する

・最先端の技術の導入が速く、開発者の負担を軽減してくれる

 

→開発者の負担を軽減し、Webアプリの品質が一定以上担保される

 

設計哲学

DRY(Don't Repeat Yourself)

同じ記述を繰り返さない

 

CoC(Convention over Configuration)

設定よりも規約

Railsがあらかじめ用意している規約を優先する

 

MVCパターン

Model:ビジネスロジック

View:ユーザーインターフェイス

Controller:ModelとViewの制御

 

このModel-View-Controllerの役割を明確に分離しようという設計モデルのことです。

 

メリットは、

プログラマー(バック)とデザイナー(フロント)とで平行作業を行いやすい

・デザインやロジックの修正が相互に影響しない(保守が容易)

・機能単位でテストを実施できる

 

が挙げられます。

 

開発環境設定

開発に必要なソフトフェア

Ruby

・Webサーバ(HTTPサーバ)

・データベース

Ruby on Rails

 

開発環境の設定(Mac/Linux)

Xcodeコマンドラインツールをインストール

・Homebrewをインストール

・Homebrewでrbenvとruby-buildをインストール

bash_profileを読み込み、有効にする

・Homebrewでreadlineをインストール

・rbenvでRubyをインストール(rbenvでバージョン管理を行えるようにするため)

・HomebrewでMySQLをインストールする

MySQLコマンドを実行できるようにする(PATHの環境設定を行う)

・bundlerをインストールする

Ruby on Railsをインストールする

・rehashを実行する

 

用語

コマンドラインツール(command line tool) :

キーボードで画面を操作するためのプログラム。

Xcodeなどでインストールすることができます。

 

Xcode

Apple公式のアプリ開発ツールです。

 

Homebrew:

Mac OS Xオペレーティングシステム上で、ソフトウェアの導入を単純化するパッケージ管理システムのひとつ。

パッケージ(ソフトウェア)同士の依存関係などを管理してくれます。

そして、ターミナルからコマンドを実行するたけで、パッケージ(ソフトウェア)のバージョン管理やインストール・アンインストールを簡単に行うことができます。

ソースディストリビューションとバイナリディストリビューションについてはこちら

 

rbenv(アールベンブ):

Rubyのバージョンを切り替えます。

 

ruby-build(ルビー・ビルド):

Rubyの様々なバージョンをインストールすることができます。

 

シェル:

人間が入力したコマンドラインカーネルに伝えるプログラム。人間は直接カーネルに指示を出すことができないようになっている。

ログイン直後から動き始めます。そして、途中で別のシェルに変更することもできます。

シェルは入力内容によって使用するシェルが変わる。

ログイン時に起動するシェルをログインシェルと言います。

 

bash

シェルの種類の一つで、shをパワーアップしたシェル。

 

sh:

最も基本的なシェル。

 

.bash_profile:

ログインシェルがbashの状態でログインした時に読み込まれる設定ファイル。

場所はホームディレクトリにありますが、隠しファイルなので通常は見えません。

 

gem:

Rubyを便利に扱うためのアプリケーションの総称。

ターミナルからそれぞれのgemが持つコマンドを実行するという形で使用する。

 

Linuxコマンド:

ターミナル内で使用できるコマンド。

 

MySQL

データベースの一種。

ちなみに、Railsでは運用環境(開発・テスト・本番)毎に一つのデータベースを持っています。

 

今後に向けて

 Active Record(詳しくはこちら)や名前付けのルールなど、他にも重要な概念はありますが、それは実践の中で知識の定着をしようと思います。

 

難しい内容は記事にしてみます。

 

あとはデータベースとサーバを学習し直すだけ!