-
Notifications
You must be signed in to change notification settings - Fork 13
Rename and refactor CallSettings #112
Comments
I think this would be a good task to starting up for @landrito. This is for gax-python, but the same discussion must be applied to gax-ruby/nodejs as well (because we ported the python design to them). |
In PHP, we just created CallSettings. I had this same thought about the confusion of CallOptions and CallSettings. In a case where you want both as classes, I might suggest DefaultCallSettings and CallSettings. If you had MethodSettings + CallSettings, I don't think the relationship would be clear. |
I'm afraid that DefaultCallSettings with CallSettings wouldn't suggest the right relationship between them. It sounds like DefaultCallSettings is a subclass of CallSettings -- but they are not. My suggestion is to have MethodSettings (which holds the static properties of methods, such as page-streaming) with CallOptions (which holds updatable values), different prefixes and suffixes, and that would make things clearer. I want to change the prefix because (to me) 'Call-' prefix seems to specify something for per-invocation. But the values for CallSettings are to determine the structure of the API call before the actual invocation happens (such as page-streaming or bundling or not). |
|
I currently like ApiCallableSettings. |
Idea from @bjwatson: simply consolidate them into a single class, and expose the APIs (setter/getter) to operate internal data? |
CallSettings --> _CallOptions (private class) |
The smallest possible action we can take for this quarter is to prepend CallSettings with an underscore: CallSettings -> _CallSettings. That way no one will consider this to be a breakable surface. This also affects Ruby. |
In Ruby, a 'private constant' is a constant which will have to be accessed without prefix. So all entties inside of Google::Gax can still access it as-is, but outside the module it can't be accessed as Google::Gax::CallSettings. This affects the tests, so this patch introduced a renaming to toplevel ::CallSettings in a way to avoid violating access of private constant. updates googleapis/gax-python#112
In Ruby, a 'private constant' is a constant which will have to be accessed without prefix. So all entties inside of Google::Gax can still access it as-is, but outside the module it can't be accessed as Google::Gax::CallSettings. This affects the tests, so this patch introduced a renaming to toplevel ::CallSettings in a way to avoid violating access of private constant. updates googleapis/gax-python#112
Actually, re-open because we still may wish to evaluate a future renaming. But because it is no longer exposed to users, downgrade priority to P3. |
Currently we have CallSettings and CallOptions, and it's hard to say their roles and the differences.
Actually CallSettings is the settings (or configurations) for an API call (or a method), such as the page descriptors or bundling descriptors, retry parameters.
On the other hand, CallOptions is the optional data to modify the behavior of individual invocation of the methods.
To me,
MethodSettings
?merge()
method to create the actual options for the invocation.Thoughts?
The text was updated successfully, but these errors were encountered: