Hi Sajith,

Thank you for your reply. Please find my responses inline.

On Mon, Jun 13, 2016 at 1:26 AM, SajithAR Ariyarathna <sajit...@wso2.com>
wrote:

> Hi Tanya,
>
> I like to express few suggestions regarding the gadget structure.
>
> *Generated gadget structure*
>>
>> └── test_gadget
>>     ├── conf.json
>>     ├── gadget-controller.jag
>>     ├── gadget.json
>>     ├── index.png
>>     ├── index.xml
>>     ├── libs
>>     │   └── vendorName_version
>>     │       └── [ js_css_images_etc_as_same_as_vendor_ships ]
>>     ├── css
>>     │   └── line-chart.css
>>     └── js
>>         ├── core
>>         │   ├── gadget-core.js
>>         │   ├── line-chart-api.js
>>         │   └── provider-api.js
>>         └── line-chart.js
>>
>
> Self-descriptive names.
>
> File names should reflect their role, task & purpose in the gadget. It
> makes the learning curve very short & easy for a new comer (support dev).
> For example; "conf.json" clearly indicates that it is a configuration file.
> In contrast "index.png", "index.xml" are not good descriptive name. IMO
> their names should be changed to be more descriptive.
>
> +1 We can rename index.png to thumbnail.png and index.xml to gadget.xml to
reflect their functionality.


> Less generic names & more unique names.
>
> Files with generic names can impair the developer experience. For example;
> if the developers has opened 10 gadgets in his IDE project, then there will
> be 10 "gadget-controller.jag" files. Working with 10 files that has the
> same name is a tedious task. Instead of generic "gadget-controller.jag"
> name, we can use a unique name like "<gadget_name>-controller.jag". With
> that name, 10 gadgets will have controller JAGs with 10 different names.
>
> -1 Apart from common third party libraries, gadget is a self contained
entity. So all the files that require for a particular gadget to render is
inside its <gadget-name> folder. So IMO renaming gadget-controller.jag file
is unnecessary as it clearly reflects the usage of the file.

> Clear separation between configuration files, executing files (server-side
> & client-side), & resources.
>
> In the above gadget structure, both "index.png" (a resource) &
> "gadget-controller.jag" (a server-side executable) files reside in the same
> directory. Directory structure doesn't separate them clearly. I like to
> propose a structure like this,
>
> └── test_gadget
>
>     ├── conf    *<-- configuration files in here*
>     ├── server *<-- server side files*
>     └── client   *<-- clent-side files*
>               ├── js
>                |       └── core
>               ├── css
>               └── libs
>
> -1 IMO your point is valid for an entity like an application where there
are number of files which we need to identify as server side and client
side. But a gadget is a very light weight entity and IMO introducing client
side and server side separation for a gadget is making simple things
complex.

Thanks,
Tanya

>
> Thanks.
>
> On Thu, Jun 9, 2016 at 4:38 PM, Sinthuja Ragendran <sinth...@wso2.com>
> wrote:
>
>> Hi Manu,
>>
>> On Wed, Jun 8, 2016 at 8:40 PM, Manuranga Perera <m...@wso2.com> wrote:
>>
>>> 1) We had a chat about how we can use gadget parameters instead of
>>>>> generation, have you guys considered that approach?
>>>>>
>>>>> We have cases like database credentials which should not be shown to
>>>> the user and should not be editable from the gadget properties. Further we
>>>> also need a model that gadget should be greeted by some privileged user and
>>>> used by others, so the gadget generation is the appropriate model to handle
>>>> this.
>>>>
>>>  I thought we can come up with a way to attach permissions to the
>>> params, so they can be hidden depending on the user. (this will help us
>>> generally not just for gadget gen case)
>>>
>>
>> Yeah, initially i also thought we can go with such an approach. But then
>> there are some dynamic params that you need to populate based on the
>> previous selection that you have done. Ie, for example if it's batch
>> data/realtime/rdbms then the form params that you need to display is
>> different for each. If we are going to have such capabilities then it's
>> equal to have wizard apporach, and I don't really see much difference.
>>
>> Anyhow our objective was to create a framework, where you can plug any
>> data providers and chart types easily and generate the gadget. With this we
>> also have removed the dependency of analytics gadget generation part from
>> the carbon-dashboards repo, and people can have their own providers and
>> chart types, in their repo and they can include that in the build time to
>> get only into their product.
>>
>> Thanks,
>> Sinthuja.
>>
>> Edit/ Re-generate function is not supported yet.
>>>>>
>>>>> 2) The issues is, with this model it will be harder to support that
>>>>> even in the future. At least we should serialize all the parameters with
>>>>> the generated gadget.
>>>>>
>>>> Editing is something we can achieve with very little effort, if we
>>>> store all the properties that we have passed in the UI in a config file
>>>> within the gadget then we can simply load that to the gadget generation
>>>> wizard when we need to modify the gadget.
>>>>
>>> Ya, that's what I also meant by serialize. But in that case the UX is
>>> broken compared to the parameter method, since the user still has to go
>>> though the wizard again, and you can't see the values from the left panel.
>>>
>>> --
>>> With regards,
>>> *Manu*ranga Perera.
>>>
>>> phone : 071 7 70 20 50
>>> mail : m...@wso2.com
>>>
>>> _______________________________________________
>>> Architecture mailing list
>>> Architecture@wso2.org
>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>
>>>
>>
>>
>> --
>> *Sinthuja Rajendran*
>> Technical Lead
>> WSO2, Inc.:http://wso2.com
>>
>> Blog: http://sinthu-rajan.blogspot.com/
>> Mobile: +94774273955
>>
>>
>>
>> _______________________________________________
>> Architecture mailing list
>> Architecture@wso2.org
>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>
>>
>
>
> --
> Sajith Janaprasad Ariyarathna
> Software Engineer; WSO2, Inc.;  http://wso2.com/
>



-- 
Tanya Madurapperuma

Senior Software Engineer,
WSO2 Inc. : wso2.com
Mobile : +94718184439
Blog : http://tanyamadurapperuma.blogspot.com
_______________________________________________
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to