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

Vladimir Ozerov edited comment on IGNITE-8014 at 3/23/18 10:41 AM:
-------------------------------------------------------------------

[~alexey.kosenchuk], in general code looks good. I have several comments 
regarding public API behavior:
1) {{CacheClient}} - what is the purpose of  {{setKeyType}} and 
{{setValueType}} methods from user perspective? In other languages we do not 
have such restriction and cache can store entries of different types (though, 
we tend to think of it as an antipattern). I am not an expert in NodeJS, may be 
this is a consequence of NodeJS type system?
2) {{Errors}} - typically we try to have as least different error types as 
possible. In this specific case:
- {{IllegalArgumentError}} - looks good
- {{OperationError}} - looks good
- {{TypeCastError}}, {{UnsupportedTypeError}} - looks good
- {{IllegalStateError}}, {{LostConnectionError}} - appears to be the same thing 
- client is not connected; I would merge it into a single entity
- {{InternalError}} - I doubt user has any chance to react to this error in any 
way except of logging or rethrowing; I would remove it and use base 
IgniteClientError instead


was (Author: vozerov):
[~alexey.kosenchuk], in general code looks good. I have several comments 
regarding public API behavior:
1) {{CacheClient}} - what is the purpose of  {{setKeyType}} and 
{{setValueType}} methods from user perspective? In other languages we do not 
have such restriction and cache can store entries of different types (though, 
we tend to think of it as an antipattern). I am not an expert in NodeJS, may be 
this is a consequence of NodeJS type system?
2) {{Errors}} - typically we try to have as least different error types as 
possible. In this specific case:
- {{IllegalArgumentError}} - looks good
- {{TypeCastError}}, {{UnsupportedTypeError}} - looks good
- {{IllegalStateError}}, {{LostConnectionError}} - appears to be the same thing 
- client is not connected; I would merge it into a single entity
- {{InternalError}} - I doubt user has any chance to react to this error in any 
way except of logging or rethrowing; I would remove it and use base 
IgniteClientError instead

> Node.js client: basic/minimal version
> -------------------------------------
>
>                 Key: IGNITE-8014
>                 URL: https://issues.apache.org/jira/browse/IGNITE-8014
>             Project: Ignite
>          Issue Type: Sub-task
>          Components: thin client
>            Reporter: Alexey Kosenchuk
>            Assignee: Alexey Kosenchuk
>            Priority: Major
>
> Develop the first basic/minimal version - for initial review/feedback.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to