Helps are useful to prevent duplicated code (in models, templates, ...) and sometime they are just necessary.

 - for checking if you custom module is enabled, you can place something like `Mage::getStoreConfigFlag('my/module/enabled')` to every file where you want to check this, __or__ you use `Mage::helper('my_module')->isEnabled()` with benefits:
  - if ie the config path changes for some reason, you just have to adjust one file
  - you can rewrite helpers `isEnabled()` method and it will affect all classes that use it, instead of rewriting several files
 - [13th @ How to write a custom extension?][1]: *Do not rewrite classes unless is necessary. Use observers and if it's not possible to use helper methods that receive as parameter and instance of a class that you wanted to override. __Wrong:__ Override `Mage_Catalog_Model_Product` to add the method `getProductArticles()`. __Right__. In your helper add `getProductArticles(Mage_Catalog_Model_Product $product)`*
 - make layout updates more flexible using `<action method="someMethod"><var helper="module/method" /></action>`

> You can just create a helper called `Data.php` in each module and __leave it empty__.

When using PHPUnit you should add [one single line][2]: `protected $_moduleName = 'My_Module';`


  [1]: https://magento.stackexchange.com/questions/8344/how-to-write-a-custom-extension/186054#186054
  [2]: https://magento.stackexchange.com/questions/46255/ecomdev-phpunit-translation-not-working-with-mocked-helper/46256#46256