Один из "Ага!" моментов произошел тогда, когда я понял что наилучших результатов в JavaScript можно достичь если не пытаться копировать методы написания кода не присущие JS , а использовать особенности языка выгодно отличающие его от других (литералы объектов ,функций, массивов; динамическая типизация; функции-данные, замыкания, прототипы и т.д.). Для повтрного использования кода использовать копирование и смешивание объектов, "применять" функции, отказаться от классического наследования.
Именование. Для имен функций camel case:
thisIsFunction();
Для имен модулей и классов:
Module.some_prop;
new SomeMagicClass();
Для данных:
some_piece_of_data = 100;