finallyの挙動を正しく理解する、returnとリソース解放の交差点
finallyとは、try/catchで例外の有無にかかわらず必ず実行されるブロックです。リソースの後始末に使…
finallyとは、try/catchで例外の有無にかかわらず必ず実行されるブロックです。リソースの後始末に使…
カスタム例外とは、ドメイン固有の失敗を専用の例外クラスとして定義する手法です。失敗の種類を型で表し、catch…
例外の握りつぶしとは、catchで例外を捕らえながら何もせず失敗を隠してしまうことです。痕跡が消えてデバッグ不…
遅延静的束縛(late static binding)とは、static::が実際に呼び出されたクラスに解決さ…
__getと__setとは、存在しないプロパティにアクセスしたとき呼ばれるマジックメソッドです。動的なプロパテ…
静的メソッドとはインスタンス不要で呼べる便利なメソッドですが、外部状態を隠すと差し替えできずテストしづらくなる…
値オブジェクトとは、メールアドレスや金額のような概念を専用の型に閉じ込め、生成時に検証し不変に保つ設計です。生…
依存性注入(DI)とは、クラスが必要とする部品を内部でnewせず外から受け取る設計です。実装の差し替えやテスト…
インターフェースはメソッドの契約だけを定める型、抽象クラスは共通の実装を持ちつつ一部を子に強制する型です。ca…
トレイトとは、メソッドやプロパティの断片を複数のクラスに横断的に混ぜ込む(useする)ための仕組みです。単一継…