On Tue, Oct 13, 2015 at 10:56:15AM +0200, Josef Reidinger wrote:
> On Tue, 13 Oct 2015 10:43:09 +0200
> Arvin Schnell <[email protected]> wrote:
> 
> > On Tue, Oct 13, 2015 at 08:55:48AM +0200, Ancor Gonzalez Sosa wrote:
> > 
> > > Yes. And it should be fairly easy to implement. But I still wonder
> > > about how flexible and future-proof is to keep adding find_by_xx on
> > > demand to the API.
> > > 
> > > More flexible solutions would also be more complex to use for sure.
> > > I just wonder if they are worth exploring. One obvious solution
> > > (that would need refinement, of course) if having a search object
> > > that accepts any number of key-pair filters. The most primitive
> > > form just to expose the idea would be something like (in
> > > pseudocode):
> > > 
> > > s = Storage.search(device_graph, "filesystem")
> > > s.add_filter("mountpoint", "/")
> > > s.first()
> > 
> > 1. This API converts compile-time checks to runtime errors,
> >    e.g. if you search for a flag that does not exist.
> 
> agreed. It should be what kind you search for. So it is better to have
> something like search_filesystem

So Filesystem::find_by_mountpoint(): Type-safe and in the class
Filesystem where it belongs.

> > The set of classes is not fixed. On research already people
> > requested to have plugins to support new storage types so any
> > design that has a central search function like above looks
> > inappropriate.
> 
> Basically for plugins the best design is to have good concept base
> class like filesystem, container that have methods that allows them
> to connect to rest of graph
> 
> In general I think we should follow already know principles of good OO
> design like open/closed principle
> https://en.wikipedia.org/wiki/Open/closed_principle ,
> SOLID or KISS

Good, so I expect that all "improvement ideas" show that they
follow those principles. So far that was unfortunately not the
case.

ciao Arvin

-- 
Arvin Schnell, <[email protected]>
Senior Software Engineer, Research & Development
SUSE Linux GmbH, GF: Felix Imendörffer, Jane Smithard, Graham Norton, HRB 21284 
(AG Nürnberg)
Maxfeldstraße 5
90409 Nürnberg
Germany
-- 
To unsubscribe, e-mail: [email protected]
To contact the owner, e-mail: [email protected]

Reply via email to