[Twisted-Python] Plugin Example - review appreciated
    exarkun at twistedmatrix.com 
    exarkun at twistedmatrix.com
       
    Fri Jun 24 10:23:36 MDT 2011
    
    
  
On 03:41 pm, robert.waters at gmail.com wrote:
>On Tue, Jun 21, 2011 at 5:32 PM, <exarkun at twistedmatrix.com> wrote:
>>
>>Don't define Options or makeService in the dropin file.
The system will perform better if there is less code in the dropin file 
(or imported by the dropin file).  There are some ideas to add an 
optimization which will make this irrelevant, but someone needs to 
implement them before they'll matter.
>>Use twisted.application.service.ServiceMaker instead of implementing
>>your own.
It's just less code to use `ServiceMaker`.  It should be flexible enough 
for any twistd plugin.  This interacts with the previous point as well, 
ServiceMaker avoids loading your Options and makeService implementation 
until someone actually invokes your twistd plugin.
>>  Don't use the global reactor in SetupService.
Using the global reactor makes code less easily testable.  This isn't 
specific to plugins, you should avoid the global reactor in all your 
Twisted-using code.  Accept it as a parameter instead.
>>
>Would you please elaborate on the three items above?
>Most of the plugin code that I've used as examples for my own have all
>violated at least two of those.
Hope that helps!
Jean-Paul
    
    
More information about the Twisted-Python
mailing list