The suggestion sound very reasonable and actionable, so:

+1

I suggest a JIRA issue is opened for this that references this thread,
accompanied by the necessary sub-tasks (if any, and to be able to keep the
patch files(s) as concise as possible per component [1]) regarding
depending aspects (e.g. documentation). That way we can tie this in to
future releases and not forget the other elements of the bigger picture.

[1] large patch files are very hard to evaluate, and might lead to stale
code improvements when not addressed in an appropriate time span.

Best regards,

Pierre Smits

ORRTIZ.COM <http://www.orrtiz.com>
OFBiz based solutions & services

OFBiz Extensions Marketplace
http://oem.ofbizci.net/oci-2/

On Wed, Jun 29, 2016 at 1:32 PM, Gavin Mabie <kwikst...@gmail.com> wrote:

> +1
>
> On Wed, Jun 29, 2016 at 1:10 PM, Amardeep Singh Jhajj <
> amardeep.jh...@hotwaxsystems.com> wrote:
>
> > Thanks all for approval. I will start work on it.
> >
> > Regards,
> > --
> > Amardeep Singh Jhajj
> > www.hotwaxsystems.com
> >
> > On Tue, Jun 28, 2016 at 11:51 AM, Jacques Le Roux <
> > jacques.le.r...@les7arts.com> wrote:
> >
> > > Fair enough, +1
> > >
> > > Jacques
> > >
> > >
> > >
> > > Le 28/06/2016 à 07:59, Taher Alkhateeb a écrit :
> > >
> > >> +1 on approach
> > >> On Jun 28, 2016 8:53 AM, "Pranay Pandey" <
> > pranay.pan...@hotwaxsystems.com
> > >> >
> > >> wrote:
> > >>
> > >> +1 Amardeep, mentioned approach is looking reasonable to me.
> > >>>
> > >>> Best regards,
> > >>>
> > >>> Pranay Pandey
> > >>> HotWax Systems
> > >>> http://www.hotwaxsystems.com/
> > >>>
> > >>> On Tue, Jun 28, 2016 at 11:21 AM, Amardeep Singh Jhajj <
> > >>> amardeep.jh...@hotwaxsystems.com> wrote:
> > >>>
> > >>> Hello Jacques,
> > >>>>
> > >>>> Making branch is a good idea to handle regressions but I would
> prefer
> > to
> > >>>> work in trunk itself. Here are the things we should consider before
> > >>>> creating new branch:
> > >>>>
> > >>>> 1. Branch can be abandoned, I would prefer to have code changes in
> > trunk
> > >>>>
> > >>> in
> > >>>
> > >>>> proper steps instead of merging the complete branch work later in
> > trunk.
> > >>>> 2. Currently, lot of changes is coming in trunk, so different branch
> > >>>> need
> > >>>> to updated regularly. Its also an additional work.
> > >>>>
> > >>>> To avoid regressions, we can do our work in granular level tasks for
> > >>>> various functionality (wherever needed) and proper testing steps
> will
> > be
> > >>>> there. The code changes will only be committed after thorough
> testing.
> > >>>>
> > >>>> First, I would like to start with cleanup of inline javascripts so
> > that
> > >>>>
> > >>> all
> > >>>
> > >>>> javascript code will only in js files which helps us to follow best
> > >>>> practices of javascript.
> > >>>> Here is the steps can be taken to do it:
> > >>>>
> > >>>> 1. Start with one component. For example: Accounting.
> > >>>> 2. Pick its various functionality one by one where javascript is
> added
> > >>>> inline.
> > >>>> 3. Do cleanup in it.
> > >>>> 4. Do thorough testing for it with testing steps over ticket.
> > >>>>
> > >>>> Once the all cleanup (inline js cleanup) is done, we would have
> > >>>>
> > >>> javascript
> > >>>
> > >>>> files for further work. We can further break the js work by
> > >>>> functionality
> > >>>> (if needed) for improvements.
> > >>>>
> > >>>> The above process will assure us that nothing will break. I will not
> > >>>> work
> > >>>> on this effort alone, the team of developers having two or more year
> > >>>> experience in javascript will work with me.
> > >>>>
> > >>>> I will create the parent ticket for selenium tests as well and we
> will
> > >>>>
> > >>> see
> > >>>
> > >>>> how we can work on it.
> > >>>>
> > >>>> Thanks & Regards
> > >>>> --
> > >>>> Amardeep Singh Jhajj
> > >>>> www.hotwaxsystems.com
> > >>>>
> > >>>> On Sat, Jun 25, 2016 at 1:06 PM, Jacques Le Roux <
> > >>>> jacques.le.r...@les7arts.com> wrote:
> > >>>>
> > >>>> Hi Amardeep,
> > >>>>>
> > >>>>> What I mean is we should be cautious. Hence the suggestion to
> create
> > a
> > >>>>> branch for the refactoring. And to benefit from this opportunity to
> > put
> > >>>>> some Selenium tests related with js (eg: calendar - could also use
> > >>>>>
> > >>>> HTML5
> > >>>
> > >>>> now -, autocompletion, lookups, dependent dropdowns). That would be
> a
> > >>>>>
> > >>>> start
> > >>>>
> > >>>>> for Selenium, no needs to have tons of it. A Jira subtask would be
> > >>>>>
> > >>>> perfect.
> > >>>>
> > >>>>> Hope I'm clearer
> > >>>>>
> > >>>>> Thanks
> > >>>>>
> > >>>>> Jacques
> > >>>>>
> > >>>>>
> > >>>>>
> > >>>>> Le 24/06/2016 à 15:53, Amardeep Singh Jhajj a écrit :
> > >>>>>
> > >>>>> 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