学習記録 2020/5/23(土)
RaiseTech AWSフルコース 第4回講義
・講義内容:
①CRUD処理
②DBとSQL
③ドメインモデル
④MVCモデル・(MVVMモデル)
⑤ActiveView・ActiveRecord
⑥外部ライブラリ・構成管理
⑦gemとbundler
⑧次回課題の説明
RailsでCRUDのRead処理を実装
画面描画、DBと繋ぐのも含む
⑨質疑応答
・感想:
今回の講義では、Railsでアプリを実装する際の基本的な型の部分を学習した。CRUD処理・MVCモデルに関しては、以前にSkillHacksでアプリを作った際に学習したので、その時の動画をもう一度見直して復習と課題に取り組もう。
今回でアプリ開発編は終了予定。来週からは遂にAWS編に入る。残り三か月間でどこまでAWSを扱えるようになるのか非常に楽しみ。
それと同時に毎回課題の難易度が上がってきていて、調査や実装に時間がかかるようになってきた。本業も忙しくなってきたので、セルフマネジメントをもっとしっかりしなければ。
あとは学習記録もサボらずにちゃんとつけていかないとなあ・・
RaiseTech AWSフルコース 講義メモ
●第4回(20200523)
アプリケーション編の総まとめ
〇CRUD処理とは
・アプリケーションの基本的な型
Create:生成・登録
Read:読取
Update:更新
Delete:削除
・「マスターメンテナンス」:データベースシステムの保守を行い「データベースを最新の状態に保つための作業
※CRUD処理を作れるなら、ほとんどのアプリケーションは構成可能
(どんな言語・フレームワークでも)
〇DBとSQL
●DB:(膨大な)データを整理して検索しやすくした情報の集まりのこと(データの格納庫・集積所)
→段ボール:データ、DB:集積所(宅配業者のイメージ)
・RDB:リレーショナルデータベース(データの関係性に基づいて設計や定義されるDB)
・RDBMS:RDBの管理システム(Management System)
→MySQL、OrackeDataBase,PostgreSQL...etc
→製品もひとまとめで「DB」ということが多い
●SQL:DBに対してデータの操作を行うための「言語」
・SQLのCRUD処理
→「INSERT]・「SELECT」・「UPDATE」・「DELETE」
・DBとSQLの組み合わせはアプリを作るうえで必須技術
※SQLが出来る人は重宝される
講師オススメ:Progate → Start-SQL(途中まで無料)
(ex.
SELECT ←検索対象のレコードを指定
c_name,
zipcode,
address
FEOM
customers ←テーブルを指定
〇ドメインモデル
・アプリケーション(システム)を構築する際の領域(ドメイン)の関係性を表現(モデリング)したモノ
(考え方のフレームワーク)
どこからどこまでをシステムとして構築するのかを抽象的に表現したもの
・ドメイン:「業務の範囲」「提供されるシステムの領域」
→「何をして・何をしないか」を明確にする
※現段階で深堀しなくてよい(実務で触れる機会が出てくる)
〇MVCモデル・MVVMモデル
→開発するときの具体的な考え方
→「適切な場所に適切なコードを書くため」の考え方
●MVCモデル(Rails):担当部署に電話でつなぐイメージ
Model:業務処理を書く場所
View:表示とか入出力について書く場所 「見た目の部分」
Controller:ユーザー処理(リクエスト)によってMとVを制御する場所 「司令塔」
に分割してプログラムを書くモデル
●MVVMモデル(他のフレームワーク)
Model:業務処理を書く場所
View:表示とか入出力について書く場所 「見た目の部分」
ViewModel:MとVの伝達役。Viewのための状態を保持する場所
に分割してプログラムを書くモデル
「まずはMVCモデルを理解しよう!!」
〇Ruby on Rails(ActionViewとActionRecord:アプリケーションを作るうえでの必須技術)
●ActionView:画面描画を扱う仕組み
・ERBテンプレートと呼ばれるHTML(ERB)形式で記述するものを利用して、動的な画面描画処理を実現。
・ベースがHTML
※HTMLにRubyを埋め込む
cf.Builderテンプレート
●ActionRecord:
・O/Rマッパーと呼ばれるDBとアプリケーションを紐づける為のもの
・プログラム上で扱われるデータをDBのデータに変換したり、その逆を行ったりします
〇外部ライブラリと構成管理の重要性
●外部ライブラリ
・他の誰かが作った便利機能
・gemファイル:外部ライブラリーをリストアップしたファイル
●構成管理ツール(Bundler)
・関係性を定義(依存関係を定義)しておけば、自動的に外部ライブラリで追加され、利用できる
・リモートレポジトリ:ネット上にファイルをアップロードした状態でファイル管理するもの
→必要なライブラリを自動でダウンロードしてローカルに保存してくれる
〇gemとbundler
●gem:Rubyで使われるパッケージングされたアプリケーション、モジュールの事
→決まったフォーマットで提供されるRuby言語用のライブラリ
●bundler:gem同士の互換性を保ちながら各gemの導入、管理を行ってくれる
→構成管理ツール。このBundlerを利用する事でアプリケーションに必要なライブラリを
バージョンも含めて、他の開発者と同一のものをダウンロードしてくれるようになります
参考URL:
https://qiita.com/oshou/items/6283c2315dc7dd244aef
〇課題
RailsでCRUDのRead処理を実装
画面描画、DBと繋ぐのも含む
参考URL:
https://qiita.com/kazukimatsumoto/items/14bdff681ec5ddac26d1
Users#Show
〇質疑応答
・DBソフトの導入
SQL扱える人がいないなら、パッケージ購入が楽かも
→ただ問い合わせで追加料金とか係ることもあるので、SQLの知識あると重宝されるのでは?
・Railsサーバーの立ち上げ
→排熱がすごい(メモリをめちゃめちゃ使う)
・MacbookProに入れたほうが良いツール(ウシジマさんが入れているツール)
→slack、zoom、google chrome、iterm2、1Password、
Trello、Sequel Pro、Skitch、postman、just forcus、docker desktop、Alfred
・sqlite → mysqlの変更方法
①アプリを一から作り直す
→rails new XXX -d mysql
rails new application_name --database=mysql
②途中から直す
参考URL:
https://qiita.com/h4n24w4/items/7974bef03b20d8d7b6f6
以上