とまとの成長日記

ぴよぴよエンジニアの日々学んだとこを投稿。時々、ゆるーくすきなもの・趣味について語ってます。

たくさんのファイル 改

私は、はじめてRailsを触った時に
なんでこんなにたくさんファイルがあるのー!と驚いたので、
改めて一つ一つがどんな役割をしているのか、私の認識をざっと書いていこうかと思います!
正直、全然わからないファイルもあるのでそこは飛ばします!笑
※追記しています。(2019/07/04)

毎度のことですが誤りなどあればご指摘、ご指導お願いいたします。
このファイルはこういう動きだよとか教えていただけると大変嬉しいです!!!!

私が以前作ったアプリがそのままあるのでその中を見ていきたいと思います。
とにかくたくさんのファイルがあるのがわかると思います!
f:id:toomeeto:20190703004844p:plain

tomeetoアプリの中身

1.app
→conntroller、viewなどがあって一番使うファイル

2.bin
触ったことない!飛ばし!
 アプリケーションを起動・アップデート・デプロイするためのRailsスクリプトファイルを置いておく場所だそうです。
 スクリプトというのは簡易的なプログラムといった意味なので、
 多分、アプリケーションを起動・アップデート・デプロイするために必要なコードが書いてあって、
 人間側で行う操作を簡単にしてくれてるイメージかな?

3.config
→このアプリにおける様々な環境設定をしているファイルがたくさんある。
 例えば、ルーティングの設定や、データベースの設定など
 ここの設定を変えたりすると必ずサーバー再起動が必要になる!

4.db
データベース関連のファイルです。
 現時点のデータベーススキーマと、データベースマイグレーションファイルを置く場所だそうです。
 そもそもマイグレーションファイルというのが、モデルを作る時に使うコマンドをRubyが解釈できる状態で保存しておくファイル

5.lib
触ったことない!飛ばし!
 アプリケーションで使う拡張モジュールを置く場所。
 拡張モジュールとは、ある一連の振る舞いの設計図を1箇所にまとめておくことができるもの
 クラスみたいにオブジェクトは生成できない。
 
6.log
→アプリを起動させているときのターミナルで見れるlogを保存しておく場所。

7.public
→このフォルダの下にあるファイルは外部 (インターネット) からそのまま参照できます。
 投稿した画像ファイルとかを保存する場所に使う事が多い。

8.test
使ったことあるけど、よくわかってないから飛ばし!
 ミニテストというRuby標準のテストがあって、それに関するファイルを置いておく場所。
 よくチュートリアルとかで使うやつ。

9.tmp
触ったことない!飛ばし!
 キャッシュ、pidなどの一時ファイルを置く場所。
 キャッシュというのは、データを一時的に保存することで、データの処理速度を速める考え方、仕組みのこと。
 pidは、プロセスに割り振られた管理用の番号。
この説明がわかりやすい→
https://wa3.i-3-i.info/word11040.html


10.vendor
→直接は触ることないが、ダウンロード系をなんかいい感じにしてくれるやつ。
 ようはよくわかってないやつ…飛ばし!

11.その他ファイル
→結構大事なファイルがたくさんいる。わかるのだけ取り上げます!
 ・.gitignore →Gitのファイル管理から除外したいデータなどを保存しておく場所。ex)セキュリティ上知られたくないものを置く場所
 ・Gemfile →ここでたくさんのGemを管理します。
 ・README.md → このアプリの仕様等を書き込む場所です。

ざっと見て行きましたが、
使ってないファイルが沢山あって、ちょっと自分でも改めて驚愕。
基本的に使ってるのappファイルディレクトリしかないじゃん。

ということでappファイルディレクトリの中身を見ていきます。

appファイルの中身

1.assets
この中にはアプリの装飾をしてくれるのが入っているイメージです。
色を付けてくれたり、画像を貼り付けてくれたり、画面のボタンに動きをつけてくれるもののコードを書く場所です。

2.chanels
全く触ったことない…飛ばし!

3.controller
ここがアプリの司令塔みたいな感じです。
どういう流れでアプリが動くのかを指示していきます。

def new
    @user = User.new
  end

この例だと、ざっくりと説明になりますが、
newアクションでユーザーを作ってくださいということになります。

4.helper
viewのちょっとした補助の役割をしているイメージです。
正直まだあまり理解ができてないです…
viewをスッキリさせたい時に大活躍するそうです。

5.jobs
触ったことなし!飛ばし!

6.mailers
そのままの意味で、メールを飛ばすことができます。

7.models
データベースに保存したいデータに関することを書く場所です。
例えば、ユーザー情報は、必ず、emailやpasswordが必要といったことを書きます。

8.view
私達が普段目にしているwebの画面の大元の場所になります。
ここにこのボタンにはこの文字を表示させるとか、どの順番で表示させるとか
そういった役割があります。




はい。ざっくりですが、こんなイメージです。
知識不足が大変露呈しておりますが、こんな浅い知識でも動いちゃうRubyって優秀!すごい!
と褒め称え、今日はこの辺でおやすみします。
ああ、明日も頑張ろ。

参考資料
railsguides.jp