Closed hiboma closed 5 years ago
This PR depcates Yao::Resources::RestfullyAccessible.return_resource.
Yao::Resources::RestfullyAccessible.return_resource
return_resource と resource_from_json をネストして呼び出す API をとっているが、resource_from_json のみで表現可能であること
return_resource
resource_from_json
Yao::Resourece::* の一部のクラスでは OpenStack の API が返すデータ構造の不均一を吸収するために Yao::Resources::RestfullyAccessible` のメソッドをオーバライドしている.
オーバライドする際に return_resourece を用いているモジュールもあるが、 private method として設計されたメソッドがモジュール外に散逸するのは好ましくないと考えます ( private method の露出を下げた方がモジュールの結合度を低くおさえられる )
return_resourece
return_resource が Yao::Resources::* のインスタンスを返す一方で、resource_from_json は Hash を返すという resource という命名に対するインタフェースの不一致を解消します
Yao::Resources::*
resource
というのが諸々の理由です!!
I will make an another PR to deprecate return_resources ! return_resources は別の PR で直しますね
return_resources
Thank you for the quick review !
This PR depcates
Yao::Resources::RestfullyAccessible.return_resource
.Yao::Resources::RestfullyAccessible.return_resource を廃止することを提案する PR です
1. コードを読む際の複雑さの解消
return_resource
とresource_from_json
をネストして呼び出す API をとっているが、resource_from_json
のみで表現可能であること2. 結合度を下げる
Yao::Resourece::* の一部のクラスでは OpenStack の API が返すデータ構造の不均一を吸収するために Yao::Resources::RestfullyAccessible` のメソッドをオーバライドしている.
オーバライドする際に
return_resourece
を用いているモジュールもあるが、 private method として設計されたメソッドがモジュール外に散逸するのは好ましくないと考えます ( private method の露出を下げた方がモジュールの結合度を低くおさえられる )3. 命名とインタフェースの不一致を解決する
return_resource
がYao::Resources::*
のインスタンスを返す一方で、resource_from_json
は Hash を返すというresource
という命名に対するインタフェースの不一致を解消しますというのが諸々の理由です!!