TL;DR
Clojure の Web フレームワーク Biff の設計思想を説明したページ。制御の反転を最小限にし、分解しやすくし、スコープを絞ることを掲げている。
内容
Biff が生まれた理由
Clojure の Web アプリケーション開発は自由度が高く、Ring や Integrant などのライブラリを組み合わせるのが基本である。Biff はこの組み合わせの手間を減らすために生まれた。主に個人開発者がすばやくプロジェクトを立ち上げ、成長にも対応できる柔軟さを持つことを目指している。小規模なチームでも使えるが、そこには重きを置いていない。
制御の反転を最小限にする
必要なコードはすべてテンプレートの中に置く。プラグインを自動で読み込むようなことはしない。これにより、フレームワークでよく起きる「どう動いているのか分からない」という問題を避けられる。
分解しやすくする
機能をパーツごとに独立させる。開発者は必要に応じてパーツを再利用したり拡張したりできる。
スコープを絞る
個人開発者に最低限必要な機能だけを、デフォルトで提供する。Biff 自体にはなるべくライブラリを足さず、拡張のしかたをドキュメントに書く。使い方が合わなければ、無理に Biff を使わず、最初から別の方法を選んでほしいというスタンスである。