Thanks all for approval.

Thanks Taher and Deepak for valuable suggestions. I will think on them.

Jacques,

I am bit confused by your reply, could you please elaborate your point.

Regards,
--
Amardeep Singh Jhajj


On Fri, Jun 24, 2016 at 4:17 PM, Jacques Le Roux <
jacques.le.r...@les7arts.com> wrote:

> Amardeep,
>
> I agree with your points, I'd just request that we do that in a branch
> with a load of UI tests (good occasion to use Selenium).
> Our js code is complex and fragile, I think notably at the global
> variables in fieldlookup.js and selectall.js which are maybe hard to avoid.
> IMO those files are the main pains.
>
> Thanks
>
> Jacques
>
>
>
> Le 24/06/2016 à 09:20, Amardeep Singh Jhajj a écrit :
>
>> Hello everyone,
>>
>> Currently, OFBiz javascript code (except third party libraries) is not
>> written with the best practices which can cause following problems -
>>
>> 1. Increases the code maintenance effort.
>> 2. Impact page performance.
>> 3. Present not good examples to new contributors which leads to C/P to
>> various areas of js code.
>>
>> Here are things we should do for cleanup and improvements in js code.
>>
>> 1. Remove unused javascript code and files if any.
>> 2. Use best practices for javascript coding to improve performance (I have
>> listed some of it below).
>> 3. Move utility js functions to one js file.
>> 4. Remove deprecated code and use latest. For ex: We are still using
>> "language='javascript'" attribute at script tag which is deprecated a
>> years
>> ago.
>> 5. js should be loaded at bottom of the page, currently its in Header. Its
>> a tedious task now to move it into footer because we have lot of js code
>> inline in ftls.
>> 6. js should not be written inline, it should be enough generic to be in
>> minimum number of files and have generic code for doing the common set of
>> operations over DOM.
>> 7. Currently our macros of rendering pages has inline scripts, they can be
>> moved to one macrorenderer.js with generic code as we can use classes, ids
>> and data-attributes for doing any operation over html DOM.
>> 8. After all cleanup work, we can think of build tool (like grunt) for
>> various javascript build tasks (minification, concatenation of files) if
>> needed. Its just a thought.
>>
>> I know its a huge effort and need to be done carefully. So before doing
>> any
>> major changes, I would like to start work with first 4 points.
>>
>> Here is the list of some best practices to start with:
>>
>> 1. Use [] Instead of New Array()
>> 2. Long list of variables? Omit the "Var" keyword and use commas instead.
>> 3. Reduce global variables
>> 4. Use explicit blocks
>> 5. Start blocks on the same line
>> 6. Always, Always Use Semicolons - Having said that, this is a very bad
>> practice that can potentially lead to much bigger, and harder to find,
>> issues.
>> 7. Optimize loops. Avoid calculating the length of array in for loop
>> iteration.
>> 8. Avoid multiple redundant jQuery DOM manupulation by saving reference to
>> any object.
>> 9. Try to use meaningful comments.
>> 10. Many more.
>>
>> Here are some links of best practices information-
>>
>> https://www.w3.org/wiki/JavaScript_best_practices
>> http://www.codeproject.com/Articles/580165/JavaScript-Best-Practices
>> https://developer.yahoo.com/performance/rules.html
>>
>> If everyone agrees, I would like to start on this work.
>>
>> Please let me know your thoughts on it.
>>
>> Thanks and Regards
>> --
>> Amardeep Singh Jhajj
>>
>>
>

Reply via email to