+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