I'm ready to help on these matters ! Nicolas guess it right !
Gil
On 04/02/2016 09:45, Nicolas Malin wrote:
Le 04/02/2016 07:19, Taher Alkhateeb a écrit :
Hi Sharan and Everyone,
When we lost Adrian in the beginning of the rewrite project I really
felt
lost. His feedback made things simple and I miss having him around for
mentoring and feedback. I think deferring the rewrite project is a good
idea for now.
I agree and in line
I shifted my energy into just playing with the code and dabbling here
and
there and I got surprised by the many problems that exist pretty much
everywhere. This would be things like:
- Extending classes from external libraries into the core APIs
- Writing to implementations instead of interfaces
- Files too long
- Different levels of abstractions mixed together
- Poor test coverage, lack of TDD
- Implicit (hidden) dependencies (I dislike this the most)
I think the above issues indicate that we really do need less energy
on new
features, and much more on refactoring. We should refactor everything
including core API interfaces. Some examples of work we can do:
- EntitySaxReader implements javolution interfaces and looks hideous
- HtmlFormRenderer is 3000 lines of code and the interfaces it
implements
are also huge
- XmlFormRenderer does not implement more than half of the methods
- Lots of dependencies on deprecated classes / constructors (e.g.
HtmlScreenRenderer, FoScreenRenderer)
- Start.java has some problems which I'm trying to tackle in JIRA:
OFBIZ-6783
- Lots of non-parameterized and non type checked declarations.
- Implementations with no interfaces (e.g. TemporalExpression,
GroupModel,
Cache, etc ...)
Yes I started some improvement and we need to continue. Step by step,
slim, clean, increase solidity (ahhhh nice speech)
The list goes on and on. Every one of the SOLID principles for Bob
Martin
is violated in many places and most of the code smells in his book also
exist.
I started a thread a while back suggesting that I would like to start
refactoring without too many JIRAs because it would slow us down.
However,
the feedback from the community I got is that JIRA creation is
preferred.
This, however, would slow down progress especially if I'm just making
minor
one-line changes. We need an efficient way to make continuous daily
improvements to the code base.
One jira per purpose don't wast some time for us and help to follow
all commit
Also, we 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.
To summarize:
- We have a LOT of refactoring work, it's everywhere
Open a master issue with macro sub-task, linked to wiki for each
conception detail
- We need a more efficient workflow for continuous daily refactoring,
the
current workflow is too bureaucratic
it's not a pb, we will not close a jira at each commit but only when
the improvement is completed after 10 - 20 or more commit
- We need help from everyone
Nereide's commiter are available ! :) (enfin je crois Gil, Julien ?)
we just need some code orientation to realize because we aren't high
technical developer.
- We need to expand the coding guidelines to introduce some design
concepts, not just formatting.
Adrian started with the thread safe design, feel free to load your
mind on the wiki :)
Nicolas
Those are my very long 2 cents.
Taher Alkhateeb
On Wed, Feb 3, 2016 at 8:19 PM, Sharan-F <sharan.f...@gmail.com> wrote:
Hi Everyone
A few months ago we started looking at a proposed framework re-write
sub
project with Adrian as our mentor.
https://cwiki.apache.org/confluence/display/OFBIZ/Potential+Framework+Project+for+the+Foundation+Sub+Component
With Adrian gone it makes it hard for us to continue so have decided to
abandon this effort.
We don't want to give up on having a better framework and know that
another
option is to tidy up our existing framework. (So yes – this means
refactoring, and yes it will be a lot of work)
In general we do sometimes tidy up or refactor as we go along and
some work
has already started with movement of entity definitions into a separate
datamodel component. If we really do want to tidy up our framework
then we
will need as many people from the community as possible to help out.
Now here comes the big question – is the community interested in really
doing this and are there people out there willing to help out?
Thanks
Sharan
--
View this message in context:
http://ofbiz.135035.n4.nabble.com/Framework-Cleanup-Options-Tidy-Up-Refactor-tp4676797.html
Sent from the OFBiz - Dev mailing list archive at Nabble.com.