.NET のクラスライブラリ設計 改訂新版

「.NET のクラスライブラリ設計」が 12 年ぶりに大改訂された。本書は、.NET の BCL 開発チーム直伝、BCL のようなクラスライブラリを設計する際のガイダンス集だ。

自分の場合、仕事ではアプリケーションよりも、内製フレームワークやクラスライブラリを開発することが多かった。それらは C# 向けなので、API は BCL に似た設計にし、あたかも BCL で提供されているかのように使えることを目指してきた。参考にできそうな API が BCL に無い場合は、.NET Foundation 傘下にある OSS を研究したりも。

クラスライブラリを新規に作成するときは、まずエディタを開いて、どんな感じで使用するかサンプルコードを書きながら、API を練ることが多い。巷では README 駆動開発なんて呼ばれる手法に近い。本書の中に出てきた「フレームワークの設計原則」も同じだ。

フレームワークは、使い方のシナリオのセットと、それらのシナリオを実装するコードサンプルから設計を始めなければならない。

自分がそうやって調べたり、試行錯誤して身につけてきた内容が、既に本書にまとまっている。まさに .NET クラスライブラリ開発者のバイブル。

本書のガイダンスは BCL が基準なので、だいぶ保守的。中には同意しかねるものもちらほら。自分は var 使いまくるなぁ。あと、非同期関連で IValueTaskSource に触れてなかったりするので、最新に完全に追いついたガイダンスというわけでもない。次の改訂で追加されるだろうか。C# は毎年進化しているので、次の改訂が 10 年とかだったら、ガイダンスはまた大きく様変わりしてそうだ。