学習の振り返り(2) 設計とテスト
1. 今週の学習内容
今週も先週に引き続き、スクールでのカリキュラムを進めました。
(1)アプリケーションのサービス設計について
・企画→ 要件定義→ DB設計→ 開発→ 保守/運用 の順に実施されていく
・DB設計ではNOT NULL制約など扱うカラムに対して様々な制約を施す。
・DBは情報が混在するエンティティを分離する(第三正規形)
(2)RSpecを用いたテストの実施
・FactoryBotを使用しインスタンスをまとめる。
またFakerを使ってランダム値を入力させる。
・開発者が意図した動作挙動である「正常系」、
意図していない挙動である「異常形」に分けてテストを行う。
・機能単位でのテストである「単体テスト」と
ユーザーが使う状態を再現してテストする「結合テスト」がある。
・「結合テスト」はユーザーが目的の動作を実施する過程を洗い出し、
各過程に対応したテストコードをコーディングする。
→動作過程の洗い出しはテストするアプリケーションの仕様設計の理解度と
網羅力、想定力が問われる。
(3)GitHubの使い方について
・各種操作の実施
(commit, push, pull, pull request作成と回答, branchの作成, margin)
・コンフリクト対応
→Resolve conflictsで複数のファイルを目的の内容に修正する。
2. まとめ、所見
今週はどちらかというとアプリケーションを作るような内容ではないですが、
いづれの内容も基礎的な技術であるので、疎かにせず、今のうちにおさえて
おきたいです。
また、テストや設計思想で問われる「網羅力」、「想定力」はソフトスキルだと
思いますので、現在の環境でも必要ですし、トレーニングできるものであるので、
今の内からでも鍛えていきたいです。