Рекомендации по Javascript на стороне сервера?
У нас есть CMS, построенная на Java, и у нее есть Mozilla Rhino для серверной стороны JS. На данный момент база кода JS невелика, но растет. Пока не поздно, и код стал ужасным беспорядком, я хочу представить некоторые лучшие практики и стиль кодирования.
очевидно, что контроль пространства имен довольно важен. Но как насчет других лучших практик, особенно для Java-программистов?
5 ответов
вот несколько советов с линии фронта:
- как Java, используйте docblocks в стиле Doxygen/JsDoc для функций
- испытательные установки. Лично как JsTestDriver, так как он может быть выполнен автоматически с сервера CI тоже.
- Используйте JSLint. Он будет придираться к плохому коду
- рассмотрите возможность использования компилятора закрытия Google. Он будет придираться к коду, такому как JSLint, но он может быть полезен для обнаружения бедных блоков doc и т. д.
- убедитесь, что все на ваша команда понимает, как работает закрытие. В противном случае это приведет к головным болям
- как вы упомянули, пространства имен важны, особенно если вы хотите, чтобы ваш код хорошо работал с другими библиотеками JS (
var myns = myns || {};
) - лично я нахожу использование библиотеки, которая предоставляет помощников ООП, таких как классы и т. д. полезный. Вы можете использовать прототипное наследование, но это часто немного сложнее.
Как любит говорить Дуглас Крокфорд, JavaScript-это самый непонятный язык программирования. Хотя многие этого не знают, есть право способ кодирования в JavaScript. Я не сомневаюсь, что если вы позволите разработчикам Java начать кодирование, прежде чем понять, как писать хороший JavaScript, вы столкнетесь с серьезными проблемами.
первое, что нужно сделать, это убедиться, что все прочитали отличную статью Mozilla, повторное введение в JavaScript (https://developer.mozilla.org/en/a_re-introduction_to_javascript). Одна из самых больших проблем с JavaScript заключается в том, что существует множество способов выполнения наиболее распространенных задач, и эта статья должна получить людей на одной странице. Еще одна важная ссылка-работа Дугласа Крокфорда, включая JavaScript: хорошие части.
еще одна вещь, которая получает много программистов Java / C++, - это то, что JavaScript использует функции область не блокирует область. Это может вызвать некоторые очень сложные проблемы. Существует отличная статья об этой проблеме в списке, называемом привязкой в JavaScript.
Подводя итог основным вопросам, о которых говорилось в вышеуказанных ресурсах, наиболее важные различия, чтобы узнать
- как написать объектно-ориентированный код с использованием прототипного наследования (vs.class на основе наследования)
- как использовать закрытие и lambdas
- как использовать силу динамического объекты
- как написать функциональный код
поскольку у вас есть JS-движок на Java, сделайте привычкой писать модульные тесты для вашего JS-кода. Выберите стиль кодирования и энергично примените его. Если это возможно, используйте инструменты для проверки соответствия кода стилю кодирования.