[ 
https://issues.apache.org/jira/browse/CASSANDRA-18193?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17680601#comment-17680601
 ] 

Benedict Elliott Smith edited comment on CASSANDRA-18193 at 1/25/23 12:45 PM:
------------------------------------------------------------------------------

Since this was brought up in the context of review feedback, could you please 
take a bit more time to provide more detailed input, as is typical of this kind 
of review request. If this is however a "nice to have" general target to aim 
for, could you separate any near-term review-like asks into another ticket?

My responses all assume this is to be considered "review feedback":
{quote}all interfaces and all methods in acccord.api have API docs explaining 
the requirements for the implementations
{quote}
I can certainly see some easy minor improvements here that I can make, but 
since the API methods are generally quite simple and mostly documented (and the 
implementation was accomplished successfully based on the existing 
documentation), could you please provide detailed feedback about which 
{{accord.api}} interfaces and methods you think are _inadequately_ documented, 
and as a result ambiguous? I can see for instance that {{{}slice{}}}, 
{{{}merge{}}}, {{apply}} and {{read}} methods are not documented on every 
interface, but are pretty obvious. I will ensure each method has some 
documentation, but since all of the complicated APIs have quite extensive 
documentation, and the others are fairly obvious, I fear that without more 
direction I may not achieve a worthwhile near-term improvement.
{quote}enums and their values across the project are documented
{quote}
Again, could you please point me to enums you find unclear? I am in general 
opposed to cluttering the code with redundant explanations that just say 
broadly the same thing as a thing's name, just using more words.

I can see that {{Status}} (and the related {{{}SaveStatus{}}}) are complex and 
not individually documented, but these states either map directly to the paper 
or are carefully documented, and each of their constituent states are 
documented, so that their semantics are quite clear. I am unconvinced that 
documentation would materially add to their meaning, and would clutter the 
class so that their relative sub-states are not as easily viewed simultaneously 
(which harms interpreting their relative behaviours).

This has all passed review already, with the readers having no difficulty 
understanding their meaning. So, more detail than just "all enums must be 
documented" is very much required.
{quote}interfaces, abstract classes, or classes that do not inherit from 
anything in the project have at least some class level explanation
{quote}
Again, this is undirected and non-specific feedback. Please provide some 
detailed feedback about which classes you think are ambiguous, and that need 
detailed explanations of their functionality or semantics in order to easily 
understand them.
{quote}white paper in a form of an AsciiDoc or Markdown somewhere in the 
project tree
{quote}
I don't think this is necessary. Eventually we may find time to translate it, 
but the paper is likely to be evolved and there is no particular value in 
including the current state when it is available online.
{quote}Eventually, it would really awesome if concepts from the whitepaper are 
somehow referenced in the code (or vice-versa)
{quote}
I agree, and as a long term goal I hope this can be achieved, but it is not a 
priority for the moment. Both the code and the white paper will be evolved in 
time.


was (Author: benedict):
Since this was brought up in the context of review feedback, could you please 
take a bit more time to provide more detailed input, as is typical of this kind 
of review request. If this is however a "nice to have" general target to aim 
for, could you separate any near-term review-like asks into another ticket?

My responses all assume this is to be considered "review feedback":
{quote}all interfaces and all methods in acccord.api have API docs explaining 
the requirements for the implementations
{quote}
I can certainly see some easy minor improvements here that I can make, but 
since the API methods are generally quite simple and mostly documented (and the 
implementation was accomplished successfully based on the existing 
documentation), could you please provide detailed feedback about which 
{{accord.api}} interfaces and methods you think are _inadequately_ documented, 
and as a result ambiguous? I can see for instance that {{{}slice{}}}, 
{{{}merge{}}}, {{apply}} and {{read}} methods are not documented on every 
interface, but are pretty obvious. All of the complicated APIs have quite 
extensive documentation.

I agree a general goal of improvement here is good, but without more direction 
I fear it may not achieve a worthwhile near-term improvement.
{quote}enums and their values across the project are documented
{quote}
Again, could you please point me to enums you find unclear? I am in general 
opposed to cluttering the code with redundant explanations that just say 
broadly the same thing as a thing's name, just using more words.

I can see that {{Status}} (and the related {{{}SaveStatus{}}}) are complex and 
not individually documented, but these states either map directly to the paper 
or are carefully documented, and each of their constituent states are 
documented, so that their semantics are quite clear. I am unconvinced that 
documentation would materially add to their meaning, and would clutter the 
class so that their relative sub-states are not as easily viewed simultaneously 
(which harms interpreting their relative behaviours).

This has all passed review already, with the readers having no difficulty 
understanding their meaning. So, more detail than just "all enums must be 
documented" is very much required.
{quote}interfaces, abstract classes, or classes that do not inherit from 
anything in the project have at least some class level explanation
{quote}
Again, this is undirected and non-specific feedback. Please provide some 
detailed feedback about which classes you think are ambiguous, and that need 
detailed explanations of their functionality or semantics in order to easily 
understand them.
{quote}white paper in a form of an AsciiDoc or Markdown somewhere in the 
project tree
{quote}
I don't think this is necessary. Eventually we may find time to translate it, 
but the paper is likely to be evolved and there is no particular value in 
including the current state when it is available online.
{quote}Eventually, it would really awesome if concepts from the whitepaper are 
somehow referenced in the code (or vice-versa)
{quote}
I agree, and as a long term goal I hope this can be achieved, but it is not a 
priority for the moment. Both the code and the white paper will be evolved in 
time.

> Provide design and API documentation
> ------------------------------------
>
>                 Key: CASSANDRA-18193
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-18193
>             Project: Cassandra
>          Issue Type: Task
>          Components: Accord
>            Reporter: Jacek Lewandowski
>            Priority: Normal
>
> Would be great if we have at minimum:
> - white paper in a form of an AsciiDoc or Markdown somewhere in the project 
> tree
> - all interfaces and all methods in {{acccord.api}} have API docs explaining 
> the requirements for the implementations
> - enums and their values across the project are documented
> - interfaces, abstract classes, or classes that do not inherit from anything 
> in the project have at least some class level explanation
> Eventually, it would really awesome if concepts from the whitepaper are 
> somehow referenced in the code (or vice-versa). It would make it much easier 
> to understand the implementation and I believe it would improve reuse of this 
> project for external applications



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to