X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/0b7d760a5cde7fc6efa6fe2cfa49b29df0386dab..f7672781a51e8a21ccbd48ce53a72ad61f5d5e7e:/doc/RULES diff --git a/doc/RULES b/doc/RULES index a6283633..55aa4bf4 100644 --- a/doc/RULES +++ b/doc/RULES @@ -94,7 +94,33 @@ An ascii file ends with \n, and preferrable not with other empty lines. That means: make sure the last line doesn't contain any characters, thanks. -5.-99.) Threads are bad. +5.) usage of 'print' + +While it's great to dump out debug stuff, especially if your code can crash, +expect your code to be stable at some point. + +At that point, others might get annoyed by the debug output created by your +code. That's no problem, they can remove it, but they have to find them +first. + +Using "print obj" with obj being some object, preferably a complex one, is a +good way to ensure that nobody is able to remove your debug output - because +nobody finds it! + +Please, always prepend something before which can be grepped. Anything, just +not nothing. Going trough all prints to find the offending one is definitely +no fun. Something like "print 'obj', obj" is fine. Something like "print +'mySpecialPlugin actionmap is', actionMap" is even better. + +6.) usage of 'import' + +Please avoid 'import *'. +Use "from foo import bar" only if bar is clearly identifiable to belong to +foo (e.g.: it's ok to "from Screens.MessageBox import MessageBox", but it's +not ok to do "from os import path". Use "import os.path", then os.path.fnc. +Of course "from os.path import *" is even worse.) + +7.-99.) Threads are bad. (Unless they are worker threads. And sleep()ing is definitely not working. So if you every having a thread which sleeps, you did something wrong. There