The code should be pretty and the objects should be made easy to use.
Some bad habits that need to be fixed include:
* FIXMEs should be addressed and cleanup of obvious junk code
* POD documentation added for every object/method
* getting rid of passing in the exp_info has into everything and instead parameterize methods
* clearly document all the options in the config file and try not to pull config options outside of the SolexaPipeline object
* I like the style of passing in parameters as anonymous hashes rather than ordered array (lower priority)
* all methods that are called by a run_* script should return an error object that includes:
$error = {
error_count => \d
error_message => 'text describing the error'
}
* system calls and `` should be eliminated in favor of using perl filesystem APIs when possible
* reduce or eliminate calling other scripts from the objects. Instead, these scripts should be migrated into objects and the scripts should then just call the objects.
* look for any hard coded paths (e.g. /home/solexa) in the code and parameterize instead
* all bin/*.pl should be renamed to st_* without the .pl ending. That will make them look more like real commands.
Logged In: YES
user_id=587499
Originator: YES
Just to follow up with this, there are a lot of methods where I pass unused args into them or a hash with a bunch of settings. These are both bad and should be limited/eliminated.