「コードファースト」の版間の差分

提供: MonoBook
ナビゲーションに移動 検索に移動
2行目: 2行目:
  
 
==概要==
 
==概要==
一般的にRDBを使用するプロジェクトでは、テーブル定義を書いた紙の仕様書、CREATE TABLEなどを記述したSQL文、[[データ]]を受け取るクラスなど同じような物が乱立する。これらのうちひとつでも記載忘れなどが発生すれば[[バグ]]の温床となる。
+
一般的に[[RDB]]を使用するプロジェクトでは以下のようなものが乱立する。
 +
*テーブル定義を書いた紙の仕様書
 +
*CREATE TABLEなどを記述したSQL文
 +
*[[データ]]を受け取るクラス
 +
これらのうちひとつでも記載忘れなどが発生すれば[[バグ]]の温床となる。
  
そこで考えられたのが全部[[ソースコード]]で一本化しようという思想である。
+
そこで考えられたのが全てを主となる[[プログラミング言語]]の[[ソースコード]]で一本化しようという思想である。ひとつのクラスがひとつのテーブルとして定義される。いわゆる[[ORM]]で「SELECT」の結果を受け取るのに使用されるクラスを流用して、実行時などに「CREATE TABLE」までやってしまおうという発想であり、通常は[[ORM]]の機能として提供される。
ひとつのクラスがひとつのテーブルとして定義される。
 
いわゆる[[ORM]]で「SELECT」の結果を受け取るのに使用されるクラスを流用して、実行時に「CREATE TABLE」までやってしまおうという発想であり、通常は[[ORM]]の機能として提供される。
 
  
 
「仕様書はソースコードの中に」という思想のもと、いきなり[[ソースコード]]から書き起こすことからコードファーストと呼ばれる。全世界で議論を呼んだ「[[ソース読め]]」の発展系であるといえる。
 
「仕様書はソースコードの中に」という思想のもと、いきなり[[ソースコード]]から書き起こすことからコードファーストと呼ばれる。全世界で議論を呼んだ「[[ソース読め]]」の発展系であるといえる。

2015年9月3日 (木) 06:35時点における版

コードファースト英語:code first)とは、リレーショナルデータベースのテーブル定義などをプログラミング言語で記述することをいう。

概要

一般的にRDBを使用するプロジェクトでは以下のようなものが乱立する。

  • テーブル定義を書いた紙の仕様書
  • CREATE TABLEなどを記述したSQL文
  • データを受け取るクラス

これらのうちひとつでも記載忘れなどが発生すればバグの温床となる。

そこで考えられたのが全てを主となるプログラミング言語ソースコードで一本化しようという思想である。ひとつのクラスがひとつのテーブルとして定義される。いわゆるORMで「SELECT」の結果を受け取るのに使用されるクラスを流用して、実行時などに「CREATE TABLE」までやってしまおうという発想であり、通常はORMの機能として提供される。

「仕様書はソースコードの中に」という思想のもと、いきなりソースコードから書き起こすことからコードファーストと呼ばれる。全世界で議論を呼んだ「ソース読め」の発展系であるといえる。

主なコードファースト対応ORM

.NET Framework

関連項目

参考文献