← Back to team overview

launchpad-dev team mailing list archive

Re: API issue moving branches

 

I don't think Bjorn and you are agreeing.

From my understanding what you call 'internal model', I would call 
'implementation details'. Put another way, I think everything you describe as 
internal model should have _ in front of their name. In other word, these API 
shouldn't be called outside the class. (And much less exported as webservice).

API have versioning support now, which makes some form of transition possible.


-- 
Francis J. Lacoste
francis.lacoste@xxxxxxxxxxxxx

On May 12, 2010, Julian Edwards wrote:
> On Wednesday 12 May 2010 09:21:24 Bjorn Tillenius wrote:
> > On Wed, May 12, 2010 at 08:55:51AM +0100, Julian Edwards wrote:
> > > On Monday 10 May 2010 11:39:24 Leonard Richardson wrote:
> > > > I take Francis's general point that we should think about the API
> > > > that will feel most natural to the end-user, rather than publishing
> > > > our internal API directly.
> > > 
> > > I find this quite hard to do since the API exposes our model objects.
> > 
> > So, does our interal model API feel natural to us, but not to our users?
> > I doubt it. If our model API isn't good, we should take the opportunity
> > to improve it. When Francis said that distribution and product
> > attributes are implementation details, I'd interpret that as they are
> > *storage* implementation details.
> > 
> > Even our internal API shouldn't expose those
> > attributes as being writable. These should be written only inside the
> > model object itself. If something outside the model object sets it, it
> > should use the target attribute/method, which takes care of all the
> > logic.
> 
> I guess what I am driving at, and I think you're in violent agreement, is
> that the internal model should be abstracted from the webservice users. 
> We can currently only do this in a half-hearted way with the things you
> mention above, but I also find this frustrating as I end up with massive
> and bloated model objects that contain both internal and webservice
> methods.
> 
> But the major issue is when we want to do quite large model changes (as
> we're doing with the build farm right now).  Backwards compatibility for
> webservice users is going to be somewhat challenging.
> 
> J
> 
> _______________________________________________
> Mailing list: https://launchpad.net/~launchpad-dev
> Post to     : launchpad-dev@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~launchpad-dev
> More help   : https://help.launchpad.net/ListHelp

Attachment: signature.asc
Description: This is a digitally signed message part.


Follow ups

References