INTP型のブログ

苦味があるな?

スキーマ駆動開発とてもいいね

あんまりよくわかってないけど、雑に「APIからのレスポンス構造をベースに作っていこうぜ!」という理解でした。

 

そもそもの個人的考え方としてデータが一番最初に有るべきだと思っているので、想定するサイトを作るために必要なデータを考えて、そこからDBを構築してくんですが、その後が微妙なんですよね

 

TDDはスピード重視の開発をしたい自分にとっては少し厳重すぎるかなと思っていますし、DDDに関しては抽象的すぎるなと思ってました。

 

スキーマ駆動開発はDBから作っていた自分にとってはかなり扱いやすいです。

 

行ってしまえばDBを最初に作る上で、じゃあ何を考えるかというと前述した通り想定するサイトを作るために必要なデータなわけで、それはほぼスキーマと同義なんですよね。(内部的に持っていたい値もあるのでニアイコールだと思うけど)

 

なので、

 

  1. 必要ページを定義
  2. ページごとに欲しいデータ構造を定義(スキーマを決める)
  3. typescriptのtypeあたりで型を定義する
  4. 全必要ページの定義が終わったら、スキーマとページ動作からDBを作る

 

っていう動きができるのでめっちゃスマートな気がします。(実際のスキーマ駆動開発のやり方は知らんけど、自分的にはこんな感じで進めたい)

 

DBからだった頃は、DB作った後にページやらAPIの雛形を作って、そこに必要なデータを改めて考えてページとAPIを並行して作ってたんですが、スキーマ駆動開発ならスキーマをもとにAPI作るだけでいいのでめっちゃ楽

 

そういう考えでスキーマ駆動開発めっちゃいいじゃんとか思ってました。

 

……まあ今はvue2の頃のnuxtで開発してるので型定義とか無理なんですけどねー

 

バックエンドpythonのほうが助かるなぁと思うこと多いし、とっととNext.js + Django or Fraskあたりで作るようにしないとなぁとか。単純に気になってるので言うとFastAPIもやりたい…

 

開発速度と新言語や新フレームワークの採用はトレードオフなのが難しいところっすね。とりあえず今作ってるのはnuxt + laravelでやって、それ以後はnext.js + djangoあたりでやってみたいなという所存。そしたらAPI経由でmoviepyや機械学習系動かしやすいだろうし、いいんじゃないかという

 

一番面倒くさそうなのはdockerでいい感じの環境を作るところな気がしますが、まあやるしかないっすね。今年中には前述環境を触り始めるぐらいの想定でやりたいです。