Алимжан
Ну так pm2 проще чем elk stack
Таймураз
пм2 и елк стэк- разные вещи:)
Алимжан
И совсем не обязательно использовать pm2 как балансировщик и тд
Алимжан
пм2 и елк стэк- разные вещи:)
Ок, тогда посоветуй легкую альтернативу возможностям профилирования, метрики и уведомлений от keymetrics
Алимжан
Может действительно есть что-то удобнее чем pm2
Таймураз
Но это изменение архитектуры сильное Возможно, keymetrics можно правильно приготовить
Таймураз
Если у тебя маленький проект- смысла мучиться мало
Алимжан
sentry это же вроде просто по крашам только
Таймураз
Обычные мессаги тоже слать можно
Алимжан
Профилирование? Там есть классная штука сбор метрики по всем фронтам что дает поиск узких мест в приложении
Алимжан
Не знаю, мне кажется pm2 + keymetrics очень крутая штука. Все просто, удобно и многофункционально. И нет ничего плохого использования его в докере - никаких минусов не вижу
Таймураз
Покажи Dockerfile
Алимжан
Бро, его нет) Только compose, стоковый node image
Алимжан
Только команда pm2-docker start вместо node
Алимжан
Пока этого достаточно, но присматриваюсь к kubernetes
Таймураз
Только команда pm2-docker start вместо node
Глянул на docker-pm2 Именно так нормально использовать Я же слышал и видел, как запускают образ убунту, на него ставят pm2 и вручную запускают проект
Nurik
Всем привет. Ребят подскажите, если устанавливать swagger не глобально, то где его бинарник искать ? Обычно это ./node_modules/.bin/ Но что-то его там нет.
Алексей
Всем привет, парни, кто может скинуть какой нибудь пример сервера на nodejs(express), который отдает json на запросы. Среднего размера (50 -100 endpoints). Хочу посмотреть на нормальную архитектуру и как правильно оформлять роуты, спасибо большое)
Алексей
Держись там, счастья, здоровья
спасибо за содержательный ответ, продолжай в том же духе
Timofey
倫太郎
倫太郎
Что ещё может js программист?
Алексей
𝓖0𝓹43𝓡
Тогда вопрос в чем? У них на главной странице примеры роутов и отдачи данных
Алексей
Тогда вопрос в чем? У них на главной странице примеры роутов и отдачи данных
Перечитай вопрос, пожалуйста, примеры у них совсем примитивные, я попроси пример реального большого проекта, что бы посмотреть, как делают правильно
𝓖0𝓹43𝓡
У тебя роуты - входная точка
𝓖0𝓹43𝓡
Остальное бьешь по модулям
Timofey
не плохая абстракция для архитектуры, возьму на вооружение)
𝓖0𝓹43𝓡
Я могу ошибаться, но что Вы хотите увидеть от архитектуры? У вас нода, которая любит модули. У вас рест, который любит описание маршрутов в точке входа.
Алексей
Я могу ошибаться, но что Вы хотите увидеть от архитектуры? У вас нода, которая любит модули. У вас рест, который любит описание маршрутов в точке входа.
я хочу увидеть много вещей, как выносить абстракцию с работами с бд(как правильно оформить жти сервисы), как правильно задать абстракцию для схожий роутов, куда положить эту абстракцию, как правильно наладить ответы серверу, если много однообразных
Алимжан
Глянул на docker-pm2 Именно так нормально использовать Я же слышал и видел, как запускают образ убунту, на него ставят pm2 и вручную запускают проект
Так это проблема не в pm2)) А в непонимании философии docker. Хотя если проекту не нужны частые билды и тд, то вполне допустимо ведь
Алексей
Max
кто гит лаб с CI/CD и со "стендами" организовывал ?
Max
для ноды и для вебпак сборщиков ?
Nurik
я хочу увидеть много вещей, как выносить абстракцию с работами с бд(как правильно оформить жти сервисы), как правильно задать абстракцию для схожий роутов, куда положить эту абстракцию, как правильно наладить ответы серверу, если много однообразных
Это архитектура проекта. Этому не учат. Это нужно читать. Потому что архитектура, делается под каждый проект отдельно. Можно забить в гугл express boilerplate production но это не архитектура, а просто шаблон, как приблизительно можно хранить код. Взаимодействие и абстракции — никто не отменяет.
Dmitry
будут вопросы - могу поотвечать
Dmitry
Ну и заодно - если есть хантеры/проекты - готов поговорить, но дорого) Москва и прям дорого)
Anonymous
Лучше не совмещать сервер и клиент. Если будешь использовать graphql и реакт то ты будешь постоянно путаться. Ну и естественно для продуктивности отдельно rest, отдельно client. Ну и совет: откажись от редакса
Anonymous
В крупных приложениях он очень сильно тормозит
Anonymous
Точнее из за него приложение тормозит
Timofey
а в качестве замены redux что использовать?
Eldar
Чет я не очень понял как связан редакс и тормоза
Eldar
Вы в большом приложении через жопу триггерите/прокидываете данные, а плохая - технология хранения данных
Dmitry
В крупных приложениях он очень сильно тормозит
Все умеет тормозить, если его неправильно готовить - есть пара паттернов, которые спасут тебя от этого) Не готов в этом чате дискутировать про redux) - но если его правильно приготовить, то не тормозит
Eldar
Зато наверное MobX не тормозит, или ручное прокидывание данные из компонента в компонент
Eldar
со стейтом в Root/Index
Eldar
Точно
Dmitry
могу показать свое тестовое задание оно на фронта, но там есть минимальный сервак с апи https://github.com/dbalakov-other/test-contacts/
блин - там еще на промисах все написано, вообщем все тоже самое, только с async await, на клиенте thunk в /dev/null и вместо него saga Надо будет актуализировать, как будет время, или не надо)
Andrey
Ребят, добрый день! Для человека, знакомым с JS, что нибудь ясно будет из этой книги - " Веб-разработка с применением Node и Express. Полноценное использование стека JavaScript " от Итана Брауна. Или другую литературу можете посоветовать?
Alexander
всем привет. подскажите, пожалуйста, есть ли возможность реализовать такую штуку: есть класс: class Project extends Model{ _id; _name; _description; constructor(id, name, description) { super(); this._id = id; this._name = name; this._description = description; } }есть родительский класс: class Model { static inflectCamelCaseKeys(object) { return camelcaseKeys(object); } static inflectSnakeCaseKeys(object) { return snakecaseKeys(object); } static fromObject(data) { return new this(/*...Model.inflectCamelCaseKeys(data)*/); // Как? } }как заставить работать метод fromObject родителя? суть: надо распаковать объект data и подставить его параметры в качестве аргументов. притом, что значения в data могут идти в разном порядке. это реализуемо?
Maxim
Всем привет! Чтоб использовать async / await нужно подключать либу async.js?
Dmitry
Всем привет! Чтоб использовать async / await нужно подключать либу async.js?
в последней версии ноды - без костылей, а так (вроде до 7 версии nodejs + клиент) через babel плагины
Maxim
спасибо
Alexander
просто пока только вот такой грязный хак на ум приходит: class Model { static inflectCamelCaseKeys(object) { return camelcaseKeys(object); } static inflectSnakeCaseKeys(object) { return snakecaseKeys(object); } static fromObject(data) { let model = new this(); const inflected = Model.inflectCamelCaseKeys(data); for (let key in inflected) { if (inflected.hasOwnProperty(key)) { model['_' + key] = inflected[key]; } } return model; } }
arts
зачем ручное есть же контекст - все складываем в него!)
Можно сразу в глобальных переменных всё хранить :-)
Dmitry
Можно сразу в глобальных переменных всё хранить :-)
Ну да, но чтобы перед пацанами стыдно не было - подключим декларативный DI - введем нормальные подписки на события, а ну да - сделаем нормальный шаблонизатор и получим angular 1)
Eldar
Вы там не Vue описываете?
Dmitry
Вы там не Vue описываете?
тьфу - по описанию получился он - целился в angular)
Alexander
https://jsfiddle.net/rd7225L7/
немного не то
Eldar
Мне кажется Angular 1 == Vue.js
Alexander
как из потомка до родителя добраться я и так знаю)
Alexander
мне нужно из родителя с помощью статической фабрики создать потомка, заполненного данными из входного параметра этой фабрики
Eldar
Понял, но кажется ты не можешь родительским методом вызвать дочерний конструктор ;D
Eldar
А тебе точно нужно this?
Eldar
Не хочешь передавать целевой класс
Eldar
типа fromObject(data, Model)
Alexander
неа, я в конечном итоге буду вызывать не Model.fromObject(data) а Project.fromObject(data)