CakePHP には scaffolding という機能があります。これはデータベースのテーブル情報を取得して、レコードの一覧、詳細、追加、変更、削除ができる画面(マスタ管理画面)を自動的に作ることができるというものです。
残念ながら、マスタ管理画面が自動的にできるからといって、それを直接リリースすることはできませんが、 scaffolding には別のメリットがあります。
それは、「システムをコアロジックから開発できるようになる」ということです。
大きなシステムを開発する際、仮にでもデータがないと開発できない部分ができることがよくあります(主にトランザクションに関係する部分)。
たとえば、 EC サイトを作るときは、商品マスタや顧客マスタ、在庫状況などのデータが必要ですが、これらの「購入から決済」というロジックの開発を担当する開発者は、データが投入されない限り動作をテストすることができなくなります。
通常、こういった場合にはテストデータを SQL 文によって投入するのですが、もし、リレーションが複雑なデータの場合、そのテストデータを構築する時間も多く必要になります。
ここで scaffolding の登場です。
scaffolding は、こういったマスタ情報を編集するための画面を自動生成します。しかも、あらかじめリレーションの情報を設定しておくことによって、リレーションを理解したマスタ管理画面を出力するようになります。これにより、他の人の手を借りたり、マスタ管理画面の完成を待たずして、「購入から決済」というロジックを開発するために必要なかなり正確なテストデータを簡単に用意することができるようになります。
特に、設計の期間が短いような開発の場合、最初からデータベースの仕様が固まらないことがよくあります。こういった場合でもコアロジックからの開発というアプローチは有効です。
とりあえず 60% くらいまでデータベースを固めて scaffolidng 。もし、コアロジックを開発する中でカラムの追加が必要になった場合は随時データベースを更新。 scaffolding によって作られたマスタ管理画面は自動的に新しいカラムを認識しますので、不足しているデータを補うだけで開発を再開することができるようになります。
これからの時代に合いそうな便利な機能だと思っています。
残念ながら、マスタ管理画面が自動的にできるからといって、それを直接リリースすることはできませんが、 scaffolding には別のメリットがあります。
それは、「システムをコアロジックから開発できるようになる」ということです。
大きなシステムを開発する際、仮にでもデータがないと開発できない部分ができることがよくあります(主にトランザクションに関係する部分)。
たとえば、 EC サイトを作るときは、商品マスタや顧客マスタ、在庫状況などのデータが必要ですが、これらの「購入から決済」というロジックの開発を担当する開発者は、データが投入されない限り動作をテストすることができなくなります。
通常、こういった場合にはテストデータを SQL 文によって投入するのですが、もし、リレーションが複雑なデータの場合、そのテストデータを構築する時間も多く必要になります。
ここで scaffolding の登場です。
scaffolding は、こういったマスタ情報を編集するための画面を自動生成します。しかも、あらかじめリレーションの情報を設定しておくことによって、リレーションを理解したマスタ管理画面を出力するようになります。これにより、他の人の手を借りたり、マスタ管理画面の完成を待たずして、「購入から決済」というロジックを開発するために必要なかなり正確なテストデータを簡単に用意することができるようになります。
特に、設計の期間が短いような開発の場合、最初からデータベースの仕様が固まらないことがよくあります。こういった場合でもコアロジックからの開発というアプローチは有効です。
とりあえず 60% くらいまでデータベースを固めて scaffolidng 。もし、コアロジックを開発する中でカラムの追加が必要になった場合は随時データベースを更新。 scaffolding によって作られたマスタ管理画面は自動的に新しいカラムを認識しますので、不足しているデータを補うだけで開発を再開することができるようになります。
これからの時代に合いそうな便利な機能だと思っています。