Hi Amardeep,

In my opinion, the absolute best thing you can do for JavaScript is to run
it through jslint. If you are serious about the work, I would suggest you
take all the JavaScript files and snippets inside FTL files and run them
inside jslint and fix the issues one by one. That would automatically
include best practices from what I consider the king of JavaScript: Douglas
Crockford.

my 2 cents

Taher Alkhateeb

On Friday, 24 June 2016, Amardeep Singh Jhajj <
amardeep.jh...@hotwaxsystems.com> wrote:

> 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