はじめにTechnogoly Innovation Group 辻です。 システム間のデータ連携として、他システムが出力した CSV ファイルを Go で読み込んでリレーショナルデータベースにファイルのデータを保存する、という処理がありました。CSV の値をデコードしたあとに共通的な処理を差し込みたいユースケースで Decorator パターンを使って実装をしました。コードベースをシンプルに保ちつつ共通処理をフックできます。実用的なユースケースで Decorator パターンを紹介する記事は少ないと思ったので、本記事を書きました。 まず Decorator パターンが必要になった背景を説明したあとに具体的な Go の実装を見ていきます。 背景他システムが出力した CSV ファイルを Go でデコードして、PostgreSQL にデータを投入するような処理がありました。簡略化したイメージは以
![CSV処理における共通処理をDecoratorパターンで実現する | フューチャー技術ブログ](https://cdn-ak-scissors.b.st-hatena.com/image/square/c642d79a72b4ee5a4331e47c593efab42a4246a4/height=288;version=1;width=512/https%3A%2F%2Ffuture-architect.github.io%2Fimages%2F20221021a%2Fabstract.png)