はじめに
本記事では、railsの基本理念について、まとめてみました。
基本理念
DRY
railsでコードを書く時には、
同じ情報を繰り返し記述することは、コード的にも、見る人にも良くはありません。
DRY
とは、Don't Repeat Yourselfの略
同じ情報を繰り返し記述しない
というものです。
スマブラのドンキーコング
を想像してください。
(ちょっと強引ですので、ご容赦)
DRYを意識していない
ドンキーコング
ジャブ = ドンキーのAボタン
パンチを溜める = ドンキーのBボタン
ジャンプする = ドンキーのYボタン
- 「ドンキー」を修正する場合、3箇所もあるので、工数がかかる
- 一つだけ「ドンキー」のまま未修正に気づかなかった場合のリスク有
DRYを意識した
ドンキーコング
fighter = ドンキー
ジャブ = fighter の Aボタン
パンチを溜める = fighter の Bボタン
ジャンプする = fighter の Yボタン
- 変更点が1つだけなので、修正工数が少ない
- 修正点が少ないので、修正漏れも少ない
DRYのメリット
- 可読性の向上
- コード量を減らすことによりアプリケーションの動作が早くなること
CoC
Convention Over Configuration
の略
設定よりも規約を優先する
という考え方です。
例えば、rails g model
などコマンドを入力すると、
ファイルが自動で作られておりましたが、
このようにrailsの決められているルール
を活用し、アプリケーションを作成することが保どんどです。
つまり、自分自身で0から設定するのではなく、
そのルールに則り作業していたということ
=設定よりも規約を優先していること
になります。
CoCのメリット
- 決められているルールを利用することで
開発スピードが上がり、質も担保
できる - 規約は開発者同士の共通認識であるため、
可読性が向上
することなどが挙げられます。
railsのディレクトリ階層について
ディレクトリ階層も規約に則って整理されています。
私自身、理解できているか確認したいので改めて記述します。
app...MVCに関するファイルなどを格納している、アプリケーションの主要ディレクトリ。
bin...Binary Codeの略。コマンドなどで実行するファイルが格納。
config...アプリケーションの設定関係のファイルが格納。
db...データベースに関するファイルが格納。
lib...libraryの略で、基本的なライブラリが格納。
log...アプリケーションが動いている間の記録などのファイルが格納。
node_modules...nodeのパッケージが格納。
public...デフォルトで表示される画面の情報などが格納。
storage...画像などをアプリケーション自体に保存する際に使用するディレクトリ。
test...アプリケーションのテストを行う際に使用するファイルを格納するディレクトリ。
tmp...アプリケーションが起動している際の一時的な情報を格納するディレクトリ。
vendor...ライブラリ(Gem)などをアプリケーション自体にインストールする際に使用するディレクトリ。
.browserslistrc
.ruby-version
babel.config.js
config.ru
Gemfile
Gemfile.lock
package.json
postcss.config.js
Rakefile
README.md
yarn.lock
オブジェクト指向について
過去に、スマッシュブラザーズのドンキーコング(またかよ)で、
例えている記事がありますので、こちらを参照ください。
以上です。
終わりに
プログラミングを始めて2ヶ月程経ち、railsのことをもっと詳しく知りたいと思いました。
rubyやrailsに限らず、今後は、もっと多くの言語を学びたいと考えておりますが、
オブジェクト指向などに関しては、他の言語にも通づるものがありますので、
ここで、今自分が知っている言語を深ぼるのは、良いのではと思っています。
まだまだ学びたいことが多いので、楽しみだなー!
明日も頑張ります!