📣

Resilire Tech News 2025/11/21 — GreptileとPostgres運用知見

に公開

Resilire Tech News 2025/11/21 - GreptileとPostgres周りの運用知見

おはようございます、あるいはこんにちは。今週の社内ミーティングで盛り上がったネタをラジオパーソナリティ風にお届けします。AIレビューツールの話題から、実際に起きたPostgres周りの不具合対応、アーキテクチャ雑談まで、いま社内で関心が高い話題をピックアップしました。

サマリー

  • 「Greptile」など、コードレビューやリポジトリ学習型のAIツールへの注目が高い。社内でワークスペースを作って試用中。
  • ある自社サービスで、開発環境(ローカル)とほか(dev/uat/prod)で使用しているPostgresドライバが異なったために不具合が発生。原因はlib/pqpgxの差分によるエラー判別の差。
  • 対策としてpgxに一本化し、lib/pqをgo.modから削除する方針。エラー判別はpgconn.PgErrorを参照するのが推奨。
  • DBスキーマ周りでは、既存のENUMに値を追加する際のトランザクション制約(特にGENERATEDカラムとの組合せ)に注意。

注目ポイント

  • Greptile(学習型AIレビューツール)
    • リポジトリやFBを学習して、チーム内のコードや規約に馴染ませて「育てる」タイプのツールに興味が集まっている。スタートアップ向けのディスカウントの話題も。
  • Postgresドライバの差分が実害に
    • ローカルでlib/pq、他環境でpgxを使っていたためエラーの判別ロジックに抜けが生じ、バグになった。ドライバを一本化する方針にした。
  • ENUMの運用注意
    • ENUMに値を追加するのは基本的に安全だが、同一トランザクション内での利用(特にGENERATEDカラムに使うケース)ではエラーになることがあるため注意が必要。
  • CIや日付周りの小修正の影響
    • ドライバ移行に伴いCIやテスト周りの日付処理等を見直す必要が出る可能性があるという指摘があった。

社内MTGでの様子

今回のミーティングは和気あいあいとした雰囲気でした。冒頭はGreptileの話題からスタートし、「デッドコード削除」「差分テスト」「学習させて育てる系ツールいいね」などへの期待が上がっていました。実際にワークスペースを作って招待したチームメンバーもおり、試用フェーズに入っています。

一方で、現場での実務的な議論も活発でした。自社サービスの不具合共有では次のようなポイントが出ました。

  • 発生事象
    • dev/uat/prodはpgx/v5、ローカルはlib/pqを使っていたため、エラー型やラップの仕方が異なり判別ロジックに抜けが生じた。
  • 対応方針
    • lib/pqを排除してpgxに統一する(go.modから削除)。
    • エラー判別はpgconn.PgError(pgx側のエラー型)を参照して扱う。

技術的なメモ(早めに押さえておくと便利):

  • psqldefを使用したENUM追加の注意点(Postgres)

    • 単純に値を追加する(ALTER TYPE … ADD VALUE)は一般的に安全だが、以下のケースに注意:
      • 追加した値を同一トランザクション内で新しいGENERATEDカラムや既存の制約に即座に使おうとするとエラーになる。
      • その場合は、トランザクションやマイグレーションの順序を分ける運用が必要な場合がある。
  • Goでのエラー判別(pgx)

    • pgxのエラーはpgconn.PgErrorを確認すると扱いやすい。
      if pgErr, ok := err.(*pgconn.PgError); ok {
          // pgErr.Code, pgErr.Message などで判定
      }
      

ミーティングではアーキテクチャの雑談もありました。モノリス志向や「モジュラモノリスにしたい」という声、BFFからの書き込み設計、read側はクエリ寄せ、write側はバリデーションや状態遷移のレイヤをどう切るか、といった実務的な議論が飛び交いました。
ORM・SQL生成ツール(sqlc、sqlboiler、Bobなど)に関する好みや、bulk insert・on conflict upsertといったパターンについても挙げられてました。

最後に、ツールの話題に戻って、Greptileのような「学習して改善する」ツールを14日間で育て切れるか?という半ば冗談の募集まで出て、笑みの絶えない回でした。

最後に

今週は「新しいツールを試すワクワク」と「既存運用の揺れによる地味だけど致命的な落とし穴」が同居した回でした。
ツール導入は生産性向上の期待が高い一方で、既存環境の差異(ここではドライバ)を埋める必要があるという教訓が改めて共有できました。

Resilireでは技術に情熱を持った仲間を募集しています。興味のある方はぜひ募集情報をチェックしてください:
https://careers.resilire.jp/

次回も社内のホットトピックをラジオ風にお届けします。それではまた来週!

Discussion