Thanks Taher for sharing your experience and thoughts. I am up for the help where ever possible.
Regards -- Divesh Dutta. On Sun, Jun 5, 2016 at 8:06 PM, Taher Alkhateeb <slidingfilame...@gmail.com> wrote: > Hello Folks, > > Over the past couple of months I was working heavily on refactoring the > start component of the framework and we changed almost every single line of > code in it. > > I learned a lot and I would like to share some of the experiences and > findings: > > The good > -------------- > - OFBiz works, the code executes and runs. > - There is an insane amount of functionality. > - Lots of great ideas and initiatives. > - People love and care for OFBiz. > > The Bad > ------------ > - The code _barely_ works (very brittle), break one thing and the whole > thing goes down. > - Dependency nightmares and spaghetti code. > - Remember that spaghetti code? They poured cement on it and built even > more spaghetti code! > - Many abandoned and half-cooked ideas in the code base. > > Some conclusions > --------------------------- > - Without a shred of doubt, I believe OFBiz needs code cleaning more than > anything else. > - We should probably not add more features or functionality. For at least a > year we should just clean and clean and clean and clean and clean and clean > and clean. > - If refactoring is done right, OFBiz can be much faster, much smaller, and > much much more robust. > - We need help from people; we can within a year's time create something > amazing if people pitch in. > > ideas for refactoring > ---------------------------- > - The base component needs to be completely refactored with fundamental > design changes. > - The system containers require heavy, heavy refactoring. > - Replace manual multi-threading with the executors framework from > java.util.concurrent > - Many libraries are sitting there and unused. We need to delete those. > - OSGi can transform OFBiz into a different beast, with many of the > "component" problems resolved > - Many functionalities are much better implemented with 3rd party libraries > that did not exist back in 2001 > - libraries should not ship with OFBiz, but downloaded through the build > script (which only declares dependencies). This would make the size of > OFBiz MUCH smaller > - ANT, Maven and Ivy need to go away, and replaced with Gradle and the > plethora of build scripts all replaced with just one. > - if we implement gradle, probably the /tools folder would go away as well. > - SVN should probably be replaced with Git. Git was the tool that I used to > do the refactoring and I cannot imagine doing the refactoring exercise > without it. > > Sorry for the long post, but I needed to get this out of my head, and maybe > help trigger thoughts for other people. > > Cheers! > > Taher Alkhateeb >