2022-09-01から1ヶ月間の記事一覧

テスト駆動開発の基本

テスト駆動開発(Test Driven Development:TDD)とは TDDのゴール TDDが指す『テスト』の意味 TDDの目的 TDDの基本サイクル TDDのスキル 参考 テスト駆動開発(Test Driven Development:TDD)とは テストファーストによって開発を進める開発手法。 TDDのゴ…

テスト技法

ソフトウェアテストの概要 ソフトウェアテストの目的 ソフトウェアテストの種類 ホワイトボックステスト ブラックボックステスト 同値分割 境界値分割 デシジョンテーブル 参考 ソフトウェアテストの概要 ソフトウェアテストの目的 ソフトウェアテストの目的…

Ruby on Rails:save と save! メソッドの違い

save と save! は、インスタンスを生成した後に使う。どちらもデータのバリデーション(データベースに保存する前に、データ自体の妥当性を検証する仕組み)と、データベースへの保存を行うメソッド。 def create @report = current_user.reports.new(report_p…

Ruby on Rails:ポリモーフィック関連付け

ポリモーフィック関連づけ ポリモーフィックなモデルを生成する 参考 下記のようなモデルを実装するとする。 上記は、bookモデルとreportモデルはそれぞれcommentモデルと関連があり(本と報告書に対してコメントする機能)、commentは共通モデルで対応する…

Ruby on Rails:belongs_to, has_many で関連付けを行う

ターゲットするER図 belongs_to, has_many で関連付けを行う 参考 ターゲットするER図 belongs_to, has_many で関連付けを行う 上記のER図において、『日報は投稿者しか更新削除できない』というようにしたい。そのためには日報にユーザ情報が必要なので、日…

Ruby on Rails:belongs_to, has_many で関連付けを行う

ターゲットするER図 belongs_to, has_many で関連付けを行う 参考 ターゲットするER図 belongs_to, has_many で関連付けを行う 上記のER図において、『日報は投稿者しか更新削除できない』というようにしたい。そのためには日報にユーザ情報が必要なので、日…

Ruby on Rails:N+1問題とは

N+1問題は、SQLクエリを大量に発行してしまう事象のことを言う。例えば下のようなWebサイトがあるとする。Webサイトのデータは、ユーザ情報のテーブルと、ユーザIDと画像を紐づけた画像テーブルの2つから構成される。 上記のサイトにアクセスすると、下記の…