Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Link to https://refactoring.com/

Based on the feedback raised in on the mailing list discussion. http://ofbiz.135035.n4.nabble.com/Framework-Cleanup-Options-Tidy-Up-amp-Refactor-tt4676797.html#none . We would like to start some refactoring work to tidy and clean up areas of the framework.

What is the overall goal and what do we want to achieve?

Our overall goal is to tidy up the existing code to make it easier for us to maintain and improve.

What is re-factoring?

Refactoring is the cleaning, tidying or improving the existing code yet keeping the same functionality. If you want to know more, here you go!

Why do we want to do this re-factoring?

Refactoring is something that tends to happen naturally over time as code evolves. We have identified some key areas that could really benefit from an refactoring effort so would like to promote these areas for active clean up and refactor.

The key benefits of any refactor is cleaner, neater and simpler code.

...

  • Some of the classes have been extended from external libraries into the Core APs
  • Some of the files are too long
  • Different levels of abstractions are mixed together
  • Poor test coverage, lack of Test Driven Development
  • Implicit (hidden) dependencies

Planning and Approach

The re-factor covers the whole OFBiz code base so we need a simple approach that makes it easy for people to pick up, re-factor and improve an area. This means that we probably wont be able to run it as a traditional linear project. Instead we will look to highlight areas of work where the community can help.

Main Approach

  • Identify a list of 5 possible key re-factoring areas
  • Ask the Community for volunteers to help re-factor in these 5 selected areas
  • As one area is completed, top up the list of 5 with another area
  • Use of JIRA for tracking work (e.g open a master issue for each area identified and include individual sub-tasks)

Reasoning

  • A short list of 5 is good number to highlight the key areas
  • A  list will help focus the community

 

People Available to Help

Jacques, Taher, Nicolas, Julien, Gil, Sharan,  Hotwax team??

 

 

  • Include ideas for design philosophy (note from Taher)
  • need to document our design philosophy for others to consider when writing code. I don't mean just formatting conventions but also things like writing to interfaces, TDD, design rules specific to OFBiz, and so on.
  • Use of JIRA for tracking work - can use subtasks linked to one overall task ? Open a master issue with macro sub-task, linked to wiki for each conception detai

 

Current Top 5 Re-factoring Focus Areas

...

It looks like a lot of work - is it worth it?

Yes, it will be a lot of work . There are a lot of areas that could do with re-factoring but if we can engage the community to help then this workload can be shared.

Yes, we do believe that it is worth the effort. The main benefit will be a cleaner, tidier code base that will allow us a lot the flexibility to grow and interface to a range of technologies easily. 

Want to help?

Add your coordinates to the Current Team.

Take a look at:

If you see a task that someone has taken on that you would like to work on, contact the person to see how you can help.

If you see a task that is not assigned that you want to start, put your name down and create a JIRA to start the task if one has not already been created.

If you see a task from the list of other things that need doing, that you want to work on, add it to the table of activities, create a JIRA and assign it to yourself.

If you decide to get involved

If after you've taken a look at what we want to do and you are keen to help then please read the section on coding practices. One of the goals of the re-factoring is to improve the quality of the design and code.

The application of modern coding practices and design patterns is the key to achieving  these goals.

Not sure where to start? Need more information?

 If you'd like to help out but are not sure where to start then please contact our development mailing list or leave a comment on this page.

...