Seiya Kunito

Seiya Kunito

Backendの共通ロジックをnpm packageにして公開

Backendの共通ロジックをnpm packageにして公開

こんにちは、バックエンドエンジニアの山浦、國藤です。 こちらの記事では新しく作ったbackendの共通ロジック npm package @plugoinc/commonについて、 * 作った経緯 * 導入の準備 * 実装 * 導入 * 導入後の運用 を紹介できればと思います 作るに至った経緯 現状は、バックエンドの開発がNode.jsがメインで使用されていて、3つあるサーバの開発やcloud functionなどで利用しています。 三つのサーバはすべてNest.jsを使って実装しており、開発進める中で一つのサーバで磨いたノウハウや実装を他のサーバに横展開するのにコピペしていました。しかし、一つのサーバで改修を行うと他のサーバでも同じ修正が必要であり、無駄です。 そこで共通ロジックをまとめたnpm packageを作ることにしました。 導入の準備 Node.jsのバージョンを揃える まず、common packageを作るにおいて、サポートするNode.jsのバージョンを決める部分から始めました。 サーバ側はNode.js v18をメインで使用してい
3 min read
プレビューになったBigQueryの主キー・外部キー制約を使ってみた

プレビューになったBigQueryの主キー・外部キー制約を使ってみた

結論(2023年2月25日時点) * 主キー外部キー制約を強制することはできない。 * 重複データもinsertできてしまう。 * まだ実運用で使うのは厳しそう。 主キー・外部キー制約がプレビュー BigQuery release notes | Google CloudThis page lists the latest release notes for features and updates to BigQuery.Google Cloud 一般的な主キー・外部キー制約とは違う つまり * 主キーと外部キーの値に関する制約は強制しない * 値がそれぞれの制約に一致することを確認しないと正しい結果を得られない Value constraints for primary keys and foreign keys are not enforced. Users need to ensure that values match their
3 min read
複数のCloud Functionsをモノレポ化して1つのリポジトリで管理してみた

複数のCloud Functionsをモノレポ化して1つのリポジトリで管理してみた

はじめに Cloud Functionsを複数作成し運用していると、各Cloud Functionsごとにリポジトリを作成する必要があり、管理が大変になります。 そして、それぞれのCloud Functionsで共通して使うlinter, formatter, ビルドツールなどの周辺ツールの設定はリポジトリが別れているがために共通化することができません。また、CI/CDの設定も各リポジトリごとに作成する必要があります。 そこで今回は、複数のCloud Functionsをモノレポ化し、1つのリポジトリにまとめて、linter, formatter, CI/CDなどの設定を共通化してみます。 ちなみに、Cloud Functions for Firebaseを使っている場合は、モノレポ化する方法が公式ドキュメントに記載されているためこれに従い実装するのが良いと思います。 モノレポ(Monorepo)とは 複数プロジェクトのコードベースを同一レポジトリで管理すること。またはその管理下における開発手法のこと。プロジェクトは相互依存可能で、プロジェクト間のコード共有もでき
5 min read