Yaji_S’s diary

プログラミング学習のアウトプットブログ

学習の振り返り(2) 設計とテスト

1. 今週の学習内容

 今週も先週に引き続き、スクールでのカリキュラムを進めました。

  (1)アプリケーションのサービス設計について

   ・企画→ 要件定義→ DB設計→ 開発→ 保守/運用 の順に実施されていく

   ・DB設計ではNOT NULL制約など扱うカラムに対して様々な制約を施す。

   ・DBは情報が混在するエンティティを分離する(第三正規形)

 

  (2)RSpecを用いたテストの実施

   ・FactoryBotを使用しインスタンスをまとめる。

    またFakerを使ってランダム値を入力させる。

   ・開発者が意図した動作挙動である「正常系」、

    意図していない挙動である「異常形」に分けてテストを行う。

   ・機能単位でのテストである「単体テスト」と

    ユーザーが使う状態を再現してテストする「結合テスト」がある。

   ・「結合テスト」はユーザーが目的の動作を実施する過程を洗い出し、

     各過程に対応したテストコードをコーディングする。

     →動作過程の洗い出しはテストするアプリケーションの仕様設計の理解度と

      網羅力、想定力が問われる。

 

   (3)GitHubの使い方について

   ・各種操作の実施

    (commit, push, pull, pull request作成と回答, branchの作成, margin)

   ・コンフリクト対応

    →Resolve conflictsで複数のファイルを目的の内容に修正する。

 

2. まとめ、所見

 今週はどちらかというとアプリケーションを作るような内容ではないですが、

 いづれの内容も基礎的な技術であるので、疎かにせず、今のうちにおさえて

 おきたいです。

 また、テストや設計思想で問われる「網羅力」、「想定力」はソフトスキルだと

 思いますので、現在の環境でも必要ですし、トレーニングできるものであるので、

 今の内からでも鍛えていきたいです。