Описание инструментов разработки

Разработка системы предполагает, что разработчик знаком со следующими инструментами разработки

Серверная часть кода

NGINX. Статические файлы системы отдаются через web-server nginx. Знания в области настройки nginx не являются критическими для выполнения задач по расширению функционала и доработки серверной части приложения. Все что нужно знать о работе nginx - это то, что файлы расположенные в папке static и папках модулей доступны из браузера, а все вызовы начинающиеся с префикса /api/ передаются на обработку в nodejs

NodeJS.Весь серверный код выполняется на сервере nodejs. Для успешной разработки желательно иметь представления о работе библиотеки Express. Для работы с датами нужно знать возможности библиотеки MomentJS. Для оптимизации и сокращения количества кода желательно знать функциональные возможности библиотеки Lodash. Для того, чтобы избежать больших количеств вложенных функций (callback hell) желательно знать библиотеку Async. В системе принципиально не используются Promise (но это может не остановить сторонних разработчиков).

SQL.В системе используется SQL база данных для хранения первичных данных. Знание SQL не нужно для разработки, так как все механизмы взаимодействия с базой данных производятся через специальные процедуры.

MongoDB.Знание механизмов работы - важно. Особенно следует обратить внимание на расширение Mongoose, которое используется в системе

Redis.Достаточно знаний о том, что это быстрая база данных которая хранит информацию в памяти.

Клиентская часть кода

За счет того, что и серверная часть кода и клиентская реализованы на языке программирования java script, желательно знать всё те жеLodash, Moment, Async. При проектировании работы вашего модуля, следует учитывать, что если модуль требует тяжеловесных сторонних библиотек, то их можно подгружать при необходимости с помощьюRequireJS. Хороший пример - модуль построения графиков (chart), который подгружает большие библиотеки C3 и D3 только когда пользователь находится на странице в графиками.

Клиентский код предполагает хорошее знаниеKnockoutJS. Если вы не знаете что-такое custom binding, то следует изучить документацию, расположенную на сайте разработчиков.+

В системе подключается jquery, поэтому знание этой библиотеки так же приветствуется. Но избегайте использование jquery напрямую, особенно с завязыванием на атрибут id элемента. Эти задачи лучше решать через custom binding.

Для понимания верстки системы, следует изучитьBootstrap.

Last updated