You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Vladimir Ozerov (JIRA)" <ji...@apache.org> on 2018/03/23 10:42:00 UTC

[jira] [Comment Edited] (IGNITE-8014) Node.js client: basic/minimal version

    [ 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)