HackerNews

コードをシンプルにする:関数型コアと命令型シェル

Simplify your code: Functional core, imperative shell

https://testing.googleblog.com/2025/10/simplify-your-code-functional-core.html


この記事では、ビジネスロジックと副作用が混在したコードを改善するために、「関数型コア」と「命令型シェル」の分離を提案しています。データベースの呼び出しや外部とのインタラクションをコアロジックに直接組み込むことは、テストや再利用、理解を難しくします。関数型コアは副作用を持たない純粋なビジネスロジックを含み、命令型シェルは副作用を担当します。このアプローチにより、コアロジックは単独でテスト可能になり、必要に応じてシェルの部分だけを変更することができます。具体例として、ユーザーへの期限通知メールを送信するロジックが示され、関数型コアと命令型シェルを適切に分けることで、コードの可読性や保守性が向上することが説明されています。新機能の追加も純粋な関数を作成するだけで簡単になります。