Levi wrote: > > Thanks for the pointer. In general, I'm firmly in the YAGNI camp. > > [1] http://fishbowl.pastiche.org/2004/03/02/defending_yagni > [2] http://xp.c2.com/YouArentGonnaNeedIt.html >
:-) > I avoid extending anything I don't > a) understand and > b) absolutely have to. > > My main motivation on this is laziness (hopefully it's the good kind). > If I extend controllers.Controller and don't want to be surprised by > unexpected bugs then I have to write extra tests. Since I don't really > know what controllers.Controller does, I can't test it without doing a > fair amount of research first. I think you can trust the existing TG unit tests on this. > > I'm digressing. My real question is "does it really matter?". The > ability to publish plain old python objects is what makes cherrypy so > appealing IMO. Does extending controllers.Controller in class Second > affect CherryPy and/or Turbogears in any way? At the moment no, that's the actual code: Controller(object): pass But if you are sure that every projects is already extending Controller you will be able to push new features (or fixes) without backward compatibility concerns. For example, if TG 0.9/1.0 will adopt positional parameters by default (I don't know this) probably it should be done inside the Controller class (this does not apply for CherryPy 2.2). Ciao Michele

