yaocloud / yao

Yet Another OpenStack API wrapper
MIT License
35 stars 12 forks source link

Deprecate Yao::Resources::RestfullyAccessible.return_resource #126

Closed hiboma closed 5 years ago

hiboma commented 5 years ago

This PR depcates Yao::Resources::RestfullyAccessible.return_resource.

Yao::Resources::RestfullyAccessible.return_resource を廃止することを提案する PR です

1. コードを読む際の複雑さの解消

return_resourceresource_from_json をネストして呼び出す API をとっているが、resource_from_json のみで表現可能であること

2. 結合度を下げる

Yao::Resourece::* の一部のクラスでは OpenStack の API が返すデータ構造の不均一を吸収するために Yao::Resources::RestfullyAccessible` のメソッドをオーバライドしている.

オーバライドする際に return_resourece を用いているモジュールもあるが、 private method として設計されたメソッドがモジュール外に散逸するのは好ましくないと考えます ( private method の露出を下げた方がモジュールの結合度を低くおさえられる )

3. 命名とインタフェースの不一致を解決する

return_resourceYao::Resources::* のインスタンスを返す一方で、resource_from_json は Hash を返すという resource という命名に対するインタフェースの不一致を解消します


というのが諸々の理由です!!

hiboma commented 5 years ago

I will make an another PR to deprecate return_resources ! return_resources は別の PR で直しますね

hiboma commented 5 years ago

Thank you for the quick review !