Skip to content
This repository has been archived by the owner on Dec 6, 2021. It is now read-only.

Home ja

Tetsuya Mori edited this page Sep 11, 2018 · 2 revisions

Welcome CAFU 🎉

CAFU が解決すること

皆さんは、Unity でスクリプティングを行うに当たって、以下のような悩みを抱えたことはありませんか?

  • 古代遺跡を発掘するかのように、膨れあがった MonoBehaviour.Update()GameManager を読み解かなければならない
  • コードの影響範囲が見えづらく、改修・改良が難航する
  • チームでコードレビューを実施したいが、何が何処に書かれているのかが分かり辛くレビュワーが疲弊しがち
  • テストを導入したいが、各クラスが密結合になっているため難しい

CAFU はこのような Unity プロダクト開発に於ける「あるある」を解決するために生まれました。

導入メリット・デメリット

CAFU を導入すると以下のようなメリットを享受できます。

  • 各クラス間が疎結合になる
  • 見通しの良いプロジェクトになる
  • テスタビリティが高くなる
  • 改修・改良が行いやすくなる

一方で、以下のようなデメリットが発生し得ます。

  • クラス・インタフェースの数が増える

デメリットについては @umm/cafu_generator によりある程度緩和されています。 現在、 @umm/cafu_generator は CAFU Core v3 に対応していません。

相性の良いプロダクト・悪いプロダクト

CAFU と相性の良いプロダクトは以下のような特徴を持つプロダクトです。

  • 中長期的にメンテナンスを実施する必要があるプロダクト
  • 複数人が関わり、各々の担当範囲が極端に細分化していないプロダクト

一方で、相性の悪いプロダクトは以下のようなプロダクトです。

  • GameJam などの極めて早いスピードでの開発を求められるプロダクト