ignite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dmitriy Setrakyan <dsetrak...@apache.org>
Subject Re: Utility classes
Date Thu, 07 May 2015 16:32:11 GMT
On Thu, May 7, 2015 at 8:54 AM, Sergey Evdokimov <sevdokimov@gridgain.com>
wrote:

> Hello,
>
> I have some suggestions for improvement utility classes.
>
> 1.) We have big class org.apache.ignite.internal.util.lang.GridFunc that
> has a lot of methods in 8000 lines. I propose to split it to several
> classes where utility methods are group by purpose. For example methods to
> work with IgnitePredicate should be in IgnitePredicates class, methods to
> work with Iterator should be in IgniteIterators class, etc... Same grouping
> is used in Guava.
>
> 2.) Methods like GridFunc.not(IgnitePredicate p) must not return anonymous
> class, it should return class with correct name. When I debug code and see
> to value of variable I cannot understand that is "GridFunc$123", something
> like "GridFunc$PredicateNot" looks much better.
>
> 3.) Methods with ugly signature like GridFunc.iterator(Iterable c,
> IgniteClosure trans, boolean readOnly, @Nullable IgnitePredicate<? super
> T1>... p) should be split to simple methods like
> "GridFunc.transform(Iterable itr, IgniteClosure trans)",
>  GridFunc.filter(Iterable itr, IgnitePredicate p),
> GridFunc.readonly(Iterable c)
>
> Thoughts?
>

GridFunc is a legacy class that should be deprecated in my view. It comes
from the previous life when we were adding functional abstracts to Java.
Obviously, with Java 8 it is not needed.

My suggestion would be to start by cleaning up GridFunc and removing all
the methods that are not currently used. Then we can see how we can
refactor the methods that are in use.

D.

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message