xkeirainx
@xkeirainx
Фулстэк энтерпрайз разной степени кровавости

Как вы организуете JS код в энтерпрайзе?

Пятничный вопрос. Подход многих серверных программистов к написанию фронтэнда весьма небрежен: встроенные стили, куча !important, простыни в $(document).ready() и всё такое.
Что вы используете на старых больших проектах, требующих разумной поддержки браузеров, чтобы минимизировать нэймспэйс полюшн? Что использовали раньше, как впечатления? Пробовали ли вы структурировать код таких проектов, что для этого делали?

UPD: вопрос не про то как подойти к задаче, несколько раз я такое проделывал c разной степенью успеха. Интересно, что вы думаете о стратегиях, о своём опыте, не о инструментах.
  • Вопрос задан
  • 210 просмотров
Решения вопроса 3
@bromzh
Drugs-driven development
requirejs

PS ответ к комменту:

>Но весь js размазан по сотне тысяч строк html-файлов
Нет, у нас ангуляр, только 1 html. Но если код так размазан - то это плохая архитектура всего приложения, надо что-то менять. Например, не стоит писать часть js в html, а часть в файлах. Оставить только отдельные js-файлы. Серверные вставки заменить на обращение к АПИ. Разбивать всё на компоненты так, чтобы каждый компонент был в своей папке вместе с его стилями, скриптами и статикой (картинки, шрифты). Собирать всё каким-нибудь сборщиком (Gulp, например). Тогда бардак уменьшится на порядки.

>Как поддерживать работоспособность, когда часть кода уже в модулях, а часть — нет?
Очень просто, надо описывать не amd-файлы в блоке shim в настройках requirejs. За подробностями - в доки.
Ответ написан
@lyeskin
Отвечая на вопрос "разумной поддержки браузеров" - если это энтерпрайз, то сотрудникам может быть приказано использовать определенный браузер. Это зачастую более простое решение ,чем оптимизация.
Ответ написан
k12th
@k12th
console.log(`You're pulling my leg, right?`);
Стили пишутся в каком-нибудь препроцессоре, less/stylus/sass здорово помогают структурировать код за счет миксинов и переменых.
Скрипты -- с какой-нибудь модульной системой, require.js/browserify, плюс фреймворк/либа типа angular/backbone.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы