第04回: DIコンテナ入門 — 依存関係の「手動管理」から解放される
DIを使い始めると、こんな問題が起きます。
Author
クラス内部で new DBConnection() を書いたとき、そのクラスは特定のDB実装と密結合します。テストのたびに本物のDBが必要になり、実行が遅く、不安定になります。
修正のたびに既存テストが壊れ、バグが混入するリスクが高まります。 SOLID原則は理論として読むだけでは意味がありません。実際のクラス設計で適用して初めて力を発揮します。
「このコード、手を入れるたびに予期しない場所が壊れる」——チームで共有した経験ではないでしょうか。 原因のほとんどは、クラスが複数の責務を抱え込んでいるか、依存関係が複雑に絡み合っていることにあります。
Gitにはコミット履歴がありますが、それだけでは「どの時点をリリースしたのか」が一目でわからないことがあります。
ブランチの基本操作はすでに見てきました。しかし実務では、「ブランチを作れる」だけでは足りません。
Gitでよく怖がられるのがコンフリクトです。確かに画面に見慣れない印が出るので、最初は身構えやすいです。
実務では、今触っている作業を最後まで終えてから次に進めるとは限りません。
Gitでは通常、別ブランチの変更を取り込むときに merge や rebase を使います。これはブランチ全体の流れを前提にした操作です。