見出し画像

Ruby on Rails6習得編 Ruby on Rails 6 実践ガイド Chapter1 イントロダクション

こちらの書籍について学んだことです。


はじめに

旧著ではVirtualBoxとVagrantを用いて開発環境を構築した
本書ではDockerを採用。
JavaScriptプログラムのビルドシステムはWebPackerを利用し、CoffeeScriptは削除
テストフレームワークにRSpecやCapybaraを採用

本書の表記
長いコマンドラインは行末に\を入れて開業してる
行番号の+は追加行
行番号の-は削除行
注目すべき箇所は太字

本書で使用するコード
下記URLから入手可能
https://github.com/kuroda/baukis2

読者サポートページ
https://www.oiax.jp/jissen_rails6

本書で使用した実行環境
[OS]
macOS 10.15(Catalina)
自分のは10.15.2

以下はWindows用?
Ubuntu 18.04

Windows10(May 2019 Update 1903)

[仮想環境]
Docker CE 19.03
Docker Composer 1.24
Docker Desktop for Macintosh

以下はWindows用?
Oracle VirtualBox 6.0 (for Windows)

[開発環境]
ruby 2.6
ruby on rails 6.0
PostgreSQL 11

ここで、ローカル環境のそれぞれのバージョンを確認する

ruby 2.6.3
rails なし
git 2.21.1
docker なし
docker-compose
mysql なし
postgresql なし


----------------------------------------
Part1

Chapter1 イントロダクション

Baukis2という顧客管理システムを作る。
段階的にBaukis2を構築しながらrailsアプリケーションの開発プロセスを体験する。
Chapter1は、Baukis2の概要と開発の流れの説明。

1.1 Ruby on Railsで業務システムを開発する

システムの概要

1.1.1 顧客管理システム Baukis2

Baukisはギリシャ神話の登場人物の名前。
貧しい身なりの旅人を装い、神々を親切にもてなした老女

1.1.2 Baukis2の動作環境

Ruby 2.6
Ruby on Rails 6.0
PostgreSQL 11
Linux系OS

本書ではDockerを用いて開発環境を整える

1.1.3 システムの利用者と主な機能

システムの利用者は3つに分類
職員 staff menbers
管理者 administrators
顧客 customers

職員は顧客から電話やメールを通じて毎日さまざまな問い合わせや苦情を受け取り、店頭あるいは営業先で顧客と向き合っている。

職員は顧客の一覧を表示したり、特定の条件で顧客を抽出したりする。
そして、顧客の情報を追加・更新・削除できる必要がある。

管理者は職員を管理する。
職員の登録・更新・削除をする。
職員のログイン・ログアウト履歴を閲覧する。

実際は職員と管理者は同じ人が兼ねる場合もあるが、システムの観点では別物

顧客はログイン用のアカウントが発行されている。
彼らは主に企業への問い合わせ機能を利用する。
職員とのやり取りを一覧表示したり、検索したりできる。また、自分自身の個人情報(指名、メールアドレス、住所、電話番号など)を閲覧・修正することもできる。

副次的な機能としてプログラム参加者管理機能がある。プログラムとはセミナー、説明会、相談会などの名目で開催される顧客向けのプログラムのこと。
職員はタイトル、申込み開始日時、最大参加者数などを指定してプログラムを登録する。
顧客は一覧からプログラムを選択して参加を申し込む。

1.1.4 利用者別トップページ

顧客管理システムBaukis2にはもう一つ重要な仕様がある。
Baukis2を導入する企業は、利用者別にトップページのURLを設定できる。

職員
https://baukis.example.com/

管理者
https://baukis.example.com/admin

顧客
http://example.com/mypage

URLの各部分はアプリケーションの設定ファイルで変更できるようにする。
httpsをhttpにしたり
職員・管理者向けトップページのドメインをbaukis2.example.comからcrm.example.comに変更したり
顧客むけトップページのURLパスを/mypageから/customerに変更したりできる。

1.2 本書の構成

Part1 目標設定と開発環境構築
1.開発環境構築 chapter2
Dockerを利用してrailsアプリケーションの開発環境構築

2.railsアプリケーションの新規作成 chapter3
利用者別の仮設トップページを作成

Part2 Railsアプリケーションの土台作り

3.テスト環境の構築 chapter4
Rspecというソフトウェアライブラリを紹介し、これらによってrailsアプリケーションのテストを自動化する仕組みを導入する

4.仮設トップページの作成 chapter5
仮設トップページを作成しながら、ERBテンプレート、SCSSといったビジュアルデザイン関連の基本概念について学習する。

5.エラー画面の作成 chapter6
実運用環境でユーザーに表示するエラーページを作成しながら、例外処理について学ぶ

Part3 ユーザー認証とDB処理の基本

6.ログイン・ログアウト機能の実装 chapter7,8
ユーザー認証の仕組みを作成する。
マイグレーション、モデル、セッション、フラッシュなどのrailsの基礎知識を復習しつつ、フォームオブジェクトやサービスオブジェクトという新たな概念を学ぶことになる。

7.ルーティング chapter9
ルーティングに関するやや高度な内容を扱う。
URLのホスト名やパスによって名前空間を切り替える仕組みについて解説する。

8.管理者が職員のアカウント情報を変更する機能の実装 chapter10
rails流の標準的なコントローラの作り方を一通り学ぶ

9.StrongParametersによるセキュリティ強化 chapter11
セキュリティ強化策StrongParametersについて学習する

10.アクセス制御の仕組み導入 chapter12
コントローラごとにアクセス可能なユーザーを限定する方法を解説する

11,管理者が職員のログイン・ログアウト記録を閲覧する機能の実装 chapter13
モデル間の関連付け、外部キー制約、ネストされたリソースなどについて学ぶ

12.職員が自分のパスワードを変更する機能の実装 chapter14
データベースに無効な値が格納されるのをどのように防ぐかを考察する

13.フォームプレゼンターを用いたソースコードの改善 chapter15
ERBテンプレートのソースコードを整理整頓する方法の解説

Part5

14.職員が顧客アカウントを追加・編集・削除する機能の実装 chapter16,17
単一テーブル継承の仕組みを用いて効率的なデータ管理のやり方を学習する
また、Capybaraを利用したテストの書き方を解説する

15.職員が顧客の電話番号を追加・編集・削除する機能の実装 chapter18
フォームオブジェクトの発展的な使い方を学ぶ

ruby on rails6実践ガイド 機能拡張編
・職員が顧客を検索する機能
・管理者が職員のパスワードを変更する機能
・顧客がBaukis2にログイン・ログアウトする機能
・顧客が自分自身の個人情報を閲覧・修正する機能
・職員がプログラム(各種イベント)およびその参加者を管理する機能
・顧客がプログラムに申し込む機能
・顧客が企業に問い合わせを行う機能
・職員が顧客からの問い合わせに答える機能
・顧客が職員とのやりとりを一覧表示・検索する機能
・接続元のIPアドレスによりアクセスを制限する機能


この記事が気に入ったらサポートをしてみませんか?