公共施設でのSaaS製品の構築-アップデート1


この新しいシリーズへようこそ!私は最近、SaaS製品のアイデアを持ってフロントエンドの開発者ですので、私は公に私の開発プロセスを共有するには、このシリーズを書くつもりです.
私は過去にほとんどフロントエンドを行ってきたので、このプロジェクトで働いているときにバックエンドの開発についてもっと学びます.
この最初のポストにはたくさんの書き込みがありますが、次の1つにはより多くのコーディングと実装があります.

考え
アイデアは私のチームが仕事に出くわした問題から来ました-我々のチームを横切って環境変数を同期させる最善の方法は何ですか?誰かが新しい環境変数をプロジェクトに加えるならば、どのように、我々は誰でもその変数を彼らの.env ?
いくつかの研究を行った後、私はチームがENV変数配布サーバーを自己ホストするのを許すオープンソースプロジェクトを見つけました.しかし、それは多くのセットアップと自己ホスティング機能が必要です.Vercel CLIもありますが、プロジェクトごとに1つの環境をサポートしており、Vercelを使用するチームが必要です.このプロジェクトはもっと柔軟になるでしょう.
私の計画は、CLIコマンドとライブラリがローカルと生産システム全体の環境変数の同期を自動化するチームを許可する付属のWebコンソールを作成することです.

アーキテクチャの選択

次.js
続きましたNext.js ほぼ2年間、それに基づいてプロジェクトの束を開発した.フロントエンド開発者として、これは自然のプラットフォームのように感じ始める.これはフロントエンドの反応ページをサポートし、バックエンドAPIルート、私は私のFullStackプロジェクトを作成するために必要なすべてを私に与える.

電撃を試みるjs
認証とバックエンドの統合をどこから始めればいいのかわからなかったのでBlitz.js , 次の拡張として構築された反応アプリのFullstackフレームワーク.jsブリッツ開発者はすぐにデータベースモデルに基づいてフロントエンドとバックエンドのコードを生成することができます.
プロジェクトを生成して、スターターチュートリアルを通過した後に、私はブリッツで前進しないことに決めました.私はまだ必要な作業を減らすことなく、あまりにも多くのboilerplateを生成したように感じた.私はこのプロジェクトを明るく清潔に保ちたかった.(彼らは素晴らしいコミュニティを持っていて、それはまだ開発中です、それはちょうどこのプロジェクトのために正しくありませんでした).

PRISMAとPostgreSQL
ブリッツを見て、私は私が以前に知らなかった1つのテクノロジーに私を導きました:Prisma ! Prismaはフロントエンドの背景と開発者のための素晴らしいツールです.あなたは簡単に理解できるモデルファイルを定義し、その後、自動的にモデルのために必要なすべてのデータベーステーブルを生成し、それはまた、簡単にデータベースと対話する開発者のためのタイプスクリプト型JavaScript関数を生成します.
これはスキーマの例です.もしあなたが今までのところ、Graphqlを使っていたなら、
model User {
  id        Int      @id @default(autoincrement())
  createdAt DateTime @default(now())
  email     String   @unique
  name      String?
}
このスキーマを使用すると、prisma関数はprisma.user.create データベース内のユーザーを作成するにはprisma.user.findMany データベースからユーザをリストするためには、SQLクエリを自分で書く必要はありません.
const newUser = await prisma.user.create({
  data: {
    name: 'Alice',
    email: '[email protected]',
  },
})

const users = await prisma.user.findMany()
これは、フロントエンドの開発者のための超強力なツールは、SQLの専門家、または誰もがFullstackアプリに含まれるボイラープレートのコードを削減したいです.
私はPrismaの推奨データベースの一つであるので、PostgreSQLをデータベースとして選びました.私は過去にnoSQLデータベースを使用しています.これは大きなJSONデータベースに似ていますが、スケーラビリティとスキーマの安全性のためにこのプロジェクトにSQLデータベースを使用することを決めました.

結論
一緒にフォローありがとう!うまくいけば、私が学んでいることから何かを学ぶことができます.
次のポストでは、実装に着手します.
一緒に読んでくれてありがとう!ここで私に従ってください