BIND 10 #2309: define ZoneFinder::findAtOrigin()

BIND 10 Development do-not-reply at isc.org
Thu Jan 24 17:02:25 UTC 2013


#2309: define ZoneFinder::findAtOrigin()
-------------------------------------+-------------------------------------
            Reporter:  jinmei        |                        Owner:
                Type:  task          |  jinmei
            Priority:  medium        |                       Status:
           Component:  data source   |  reviewing
            Keywords:                |                    Milestone:
           Sensitive:  0             |  Sprint-20130205
         Sub-Project:  DNS           |                   Resolution:
Estimated Difficulty:  6             |                 CVSS Scoring:
         Total Hours:  2.24          |              Defect Severity:  N/A
                                     |  Feature Depending on Ticket:
                                     |          Add Hours to Ticket:  0
                                     |                    Internal?:  0
-------------------------------------+-------------------------------------
Changes (by vorner):

 * owner:  vorner => jinmei
 * totalhours:  0 => 2.24


Comment:

 Hello

 Replying to [comment:15 jinmei]:
 > Replying to [comment:14 vorner]:
 > > Also, I'm not sure I really like the idea with having a public
 interface just wrapping the `getAtOriginImpl`. Is it really likely the
 interface would change in a way the implementation could stay the same?
 What is special about this case so it is handled exceptionally? I don't
 know if it's worth the added layer of complexity. I'm not worried about
 the speed of produced code, it should be the same, since compiler will
 just inline it and optimise the call out, but the complexity of following
 the code.
 >
 > Okay, it was actually a last minute change (not the original design
 > plan), and if you don't like it I'm okay with reverting it.  And I've
 > done that.

 Thanks.

 > Regarding this design policy, I believe it's a well known practice in
 > C++ and actually suggested in some literature.  The key of the
 > decision point is how likely we'll want to change the interface for
 > the actual implementation, and, IMO, we (people in general) tend to
 > underestimate that possibility.  So, I'm basically convinced about the
 > practice.  But we don't use it in the rest of the code much anyway, so
 > in terms of consistency it may look awkward, and since this interface
 > is not expected or intended to be used by other general applications
 > (although, again, we tend to be too optimistic about such
 > expectation), I'm okay with reverting this particular case as it was
 > questioned.

 Well, the change would have to be large enough to require an interface
 change, but small enough so the wrapper function can easily map the call
 and result to the original, which sounds unlikely to me. Having a need to
 a substantial change is something I could expect, but then, the wrapper is
 useless there, since there's need to change the internal working.

 And I don't like adopting some policy just because it is suggested by some
 literature. If we followed each practice suggested somewhere, our code
 would hardly be readable (there are suggestions like type lists and
 recursive processing of them in templates!) or would take forever to
 compile (libreoffice, webkit). I like to use C++ to make code more
 readable than C, but all these policies make it less so, even when they
 have reasons to exist. Just small explanation of my motivation there.

 Anyway, thanks for the revert.

 So, I believe everything was addressed, so please merge.

-- 
Ticket URL: <http://bind10.isc.org/ticket/2309#comment:17>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development


More information about the bind10-tickets mailing list