<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<oembed>
  <author_name>kaminashi-developer</author_name>
  <author_url>https://blog.hatena.ne.jp/kaminashi-developer/</author_url>
  <blog_title>カミナシ エンジニアブログ</blog_title>
  <blog_url>https://kaminashi-developer.hatenablog.jp/</blog_url>
  <categories>
    <anon>Go</anon>
  </categories>
  <description>こんにちは。カミナシで「カミナシ 従業員」の開発を行っている nilpoona です。 業務アプリケーションを作っていると、避けて通れないのが CSV インポート機能 です。 最初は「encoding/csv で読んでループ回せば実装できる」と考えて作り始めるのですが、仕様が複雑になるにつれて、以下のような課題に直面することがあります。 バリデーションとパース処理が混在し、エラーの発生箇所が追いづらい。 「文字コードが Shift_JIS だった」など多様なエンコーディングへの対応で、ビジネスロジックが複雑になる。 パースやバリデーションエラーを即座にリターンしてしまうと、ユーザーは一つのエラ…</description>
  <height>190</height>
  <html>&lt;iframe src=&quot;https://hatenablog-parts.com/embed?url=https%3A%2F%2Fkaminashi-developer.hatenablog.jp%2Fentry%2Fgo-csv-import-design&quot; title=&quot;バリデーションとパースの分離。Goで実装する「変更に強い」CSV 処理の設計 - カミナシ エンジニアブログ&quot; class=&quot;embed-card embed-blogcard&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; style=&quot;display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;&quot;&gt;&lt;/iframe&gt;</html>
  <image_url>https://cdn-ak.f.st-hatena.com/images/fotolife/k/kaminashi-developer/20251210/20251210084954.png</image_url>
  <provider_name>Hatena Blog</provider_name>
  <provider_url>https://hatena.blog</provider_url>
  <published>2025-12-11 08:00:00</published>
  <title>バリデーションとパースの分離。Goで実装する「変更に強い」CSV 処理の設計</title>
  <type>rich</type>
  <url>https://kaminashi-developer.hatenablog.jp/entry/go-csv-import-design</url>
  <version>1.0</version>
  <width>100%</width>
</oembed>
