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.


Reply via email to