situated-program-challenge Ruby on Rails版
by
Fumitaka Tokumitsu
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
situated-program-challenge Ruby on Rails版 ● https://github.com/toku345/situated-program-challenge/tree ● clj-nakano #4 2018/02/13 ● Classi株式会社 徳光史考(@toku345)
Slide 2
Slide 2 text
Who am I ? toku 3 4 5 徳 光 史 考 Classi 株式会社のRailsエンジニアです Clojure 修行中です!
Slide 3
Slide 3 text
アジェンダ ● Rubyって何? ● Railsって何? ● version1 実装についてざっくり説明 ● まとめ
Slide 4
Slide 4 text
Ruby って何?
Slide 5
Slide 5 text
Ruby って何? まつもとゆきひろ(Matz)氏によって開発された動的型 付けオブジェクト指向スクリプト言語。 https://www.ruby-lang.org/ja/
Slide 6
Slide 6 text
Railsって何?
Slide 7
Slide 7 text
Rails って? David Heinemeier Hanssonによって開発されたRuby製 Webアプリケーションフレームワーク。 ● http://rubyonrails.org/ ● https://railsguides.jp/getting_started.html#rails%E3%8 1%A8%E3%81%AF%E4%BD%95%E3%81%8B
Slide 8
Slide 8 text
Rails の特徴 ● MVC ● CoC ● DRY
Slide 9
Slide 9 text
Rails MVC
Slide 10
Slide 10 text
CoC って? Convention over Configuration → 設定より規約を重視する
Slide 11
Slide 11 text
DRY って? Don't Repeat Yourself → 同じことを繰り返さない
Slide 12
Slide 12 text
version1 実装 ざっくり説明
Slide 13
Slide 13 text
version1 実装ざっくり説明 1. プロジェクトの生成 2. 既存DBからschemaファイル生成 3. Model 追加 4. Rails router 追加 5. Controller 追加 6. View 追加
Slide 14
Slide 14 text
1. プロジェクトの生成 $ gem install rails $ rails new rest-server --api -d postgresql ※ 実際に事項したのはこちら↓ $ rails new rest-server --api -T --skip-turbolinks -C -S -B \ -d postgresql --skip-yarn
Slide 15
Slide 15 text
1. プロジェクトの生成 $ ls ./rest-server Gemfile README.md Rakefile app/ bin/ config/ config.ru db/ lib/ log/ public/ tmp/ vendor/
Slide 16
Slide 16 text
1. プロジェクトの生成 Gemfile → gem を記述 (project.clj の dependencies) app/ → model / view / controller などの置き場 config/ → app設定、database 接続設定、route.rb等 の設定ファイル db/ → schemaファイル、migrationファイル等
Slide 17
Slide 17 text
2. 既存DBからschemaファイル生成 よくあるRailsアプリではDBのschemaの管理を Active Record の migration という機能で管理する ↓ しかし、今回はDBのschema管理はRailsアプリ側で管 理できない...
Slide 18
Slide 18 text
2. 既存DBからschemaファイル生成 DB から schema ファイルを作成しよう!
Slide 19
Slide 19 text
2. 既存DBからschemaファイル生成 DBの設定を config/database.yml に記述して
Slide 20
Slide 20 text
2. 既存DBからschemaファイル生成 $ bundle exec rails db:schema:dump → db/schema.rb が生成される
Slide 21
Slide 21 text
3. Model 追加
Slide 22
Slide 22 text
3. Model 追加 Model → ビジネスデータとビジネスロジックを表すシステムの 階層。 ※ Active Record のおかげで、DBに恒久的に保存され る必要のあるビジネスオブジェクトの作成と利用を円 滑に行なえる。
Slide 23
Slide 23 text
3. Model 追加 例) Memberモデル
Slide 24
Slide 24 text
3. Model 追加 例) Memberモデル
Slide 25
Slide 25 text
3. Model 追加 多対多のリレーション
Slide 26
Slide 26 text
3. Model 追加 多対多のリレーション groups -* groups_members *- members
Slide 27
Slide 27 text
3. Model 追加 多対多のリレーション groups -* groups_members *- members
Slide 28
Slide 28 text
3. Model 追加 多対多のリレーション groups -* groups_members *- members
Slide 29
Slide 29 text
4. Rails router 追加
Slide 30
Slide 30 text
4. Rails router 追加 Rails router → 受け取ったURLを認識し、適切なコントローラ内アク ションに割り当てる階層。
Slide 31
Slide 31 text
↓ 4. Rails router 追加
Slide 32
Slide 32 text
4. Rails router 追加
Slide 33
Slide 33 text
↓ 4. Rails router 追加
Slide 34
Slide 34 text
5. Controller 追加
Slide 35
Slide 35 text
5. Controller 追加 Controller → リクエストを受け取り、データをモデルから取得したり モデルに保存するなどの作業を行い、最後にビュー を使用してHTML / JSON出力を生成する階層。
Slide 36
Slide 36 text
5. Controller 追加
Slide 37
Slide 37 text
5. Controller 追加 ※ ↑ ruby / rails では kebab-case は扱い辛いので snake_case として扱えるようにする
Slide 38
Slide 38 text
6. View 追加
Slide 39
Slide 39 text
6. View 追加 View → Controller で準備された情報をHTML / JSON などのレレ スポンスデータとして生成する階層。
Slide 40
Slide 40 text
6. View 追加 GET /members → MembersController の #index アクション → app/views/members/index.json.jbuilder
Slide 41
Slide 41 text
6. View 追加
Slide 42
Slide 42 text
6. View 追加
Slide 43
Slide 43 text
6. View 追加 POST /members → MembersController の #create アクション → app/views/members/create.json.jbuilder
Slide 44
Slide 44 text
6. View 追加
Slide 45
Slide 45 text
6. View 追加
Slide 46
Slide 46 text
まとめ
Slide 47
Slide 47 text
まとめ ● CoCやDRYといった哲学に基づいたRailsのおかげ で、よくあるWebアプリはサクサクっと作れちゃいま す!
Slide 48
Slide 48 text
まとめ ● ただ、簡単そうな見かけに騙されて、Railsにあまり なれていない方や、経験者でもテキトーに作った り、Railsのレールから外れよとするととたんに悪夢 がはじまります...