Size: a a a

NodeUA - JavaScript and Node.js in Ukraine

2021 August 07

AK

Alexandr Kazakov in NodeUA - JavaScript and Node.js in Ukraine
Видео Тимура крутые, я вот смотрю все эти видео и все эти примеры кода на гитхабе, и понимаю, какая же огромная работа здесь проделана.
источник

АП

Алексей Попов... in NodeUA - JavaScript and Node.js in Ukraine
кроме очевидного - выноса в дочерние процессы cpu intensive задач,  есть специальные кейсы, например я как-то подсистему плагинов реализовывал в дочерних процессах, каждый плагин в своём процессе
источник

˸A

˸̧̨ ͅBlack Akula˸̧̨ ... in NodeUA - JavaScript and Node.js in Ukraine
У нас билд происходит через child_process. Свой велосипед писал, чтоб это в параллельных процессах делать. Там кода - пару десятков строчек всего лишь)))
const parallelShell = (commands, settings = {}) => {
   const enrichedSettings = {
       stopOnError: false,
       threads: 10,
       logLevel: 'warning',
       ...settings
   }
   const log = (level, message) => {
       if (message && LogLevels.indexOf(enrichedSettings.logLevel) >= LogLevels.indexOf(level))
           level === 'error' || level === 'warning'
               ? console.error(message)
               : console.log(message)
   }
   let lazyPromises = commands.reduce((result, command, index) => ({...result,
       [index]: () => {
           const start = new Date().getTime()
           const shellCommand = Array.isArray(command) ? command[0] : command
           const infoCommand = Array.isArray(command) && command[1] ? command[1] : shellCommand
           log('info', `${infoCommand} - Started...`)
           delete lazyPromises[index]
           return new Promise((res, rej) => {
               exec(shellCommand, (err, out, stderr) => {
                   log('debug', out)
                   log('warning', stderr)
                   log('error', err)
                   if (err && enrichedSettings.stopOnError) return rej(err)

                   log('info', `${infoCommand} - Done in ${(new Date().getTime() - start)/1000}s`)
                   if (Object.keys(lazyPromises).length === 0) {
                       return res()
                   }
                   return lazyPromises[Object.keys(lazyPromises)[0]]()
               })
           })
       }
   }), {})
   return Promise.all(Object.values(lazyPromises).slice(0, enrichedSettings.threads).map(f => f()))
}
источник

F

Fitz in NodeUA - JavaScript and Node.js in Ukraine
Guys, все привет! Такой вопрос от совсем новичка, правда ли что свитчнуться (вАйти ) проще на ноду?
Есть ли тут такие, кто изначально свитчнулся на нод разработчика?
источник

АМ

Андрей Москаленко... in NodeUA - JavaScript and Node.js in Ukraine
Отвечает... Тимур Шемсединов :D
источник

F

Fitz in NodeUA - JavaScript and Node.js in Ukraine
Пожалуйста не нужно. Мне кажется, он мне сейчас люлей выпишет в стиле: если это не ваше то нефиг тут говнокодить!
источник

VL

Vanya Leyn in NodeUA - JavaScript and Node.js in Ukraine
проще на реакт
источник

F

Fitz in NodeUA - JavaScript and Node.js in Ukraine
Это какая-то рекурсия!! Я только что оттуда и мне сказали, что проще на ноду )))
источник

Т

Тёмыч in NodeUA - JavaScript and Node.js in Ukraine
Я свичнулся на ноду
источник

Т

Тёмыч in NodeUA - JavaScript and Node.js in Ukraine
Из своего опыта не могу рекомендовать
источник

АМ

Андрей Москаленко... in NodeUA - JavaScript and Node.js in Ukraine
из-за того что код низкого качества (экспресс, логика прям в мидлварах и все такое) или из-за чего ?
источник

ES

Elena Sharovar in NodeUA - JavaScript and Node.js in Ukraine
Тут такой интересный вопрос в другом чате задали.

“Есть следующее:
- nodejs
- sequlelize models (много таблиц описаны)
- serverless framework
- lambda (+lambda-proxy)
- api gateway

Я хочу сгенерировать нормальную документацию (openapi, swagger, postman, не важно), чтоб было видно, какие входящие параметры принимает API (это есть) и какой результат вернется (обычно это json, типа 'success': true, data: ' модель таблицы sequelize').

Я вообще не смог найти вариантов это сделать. Кто-то сталкивался, как решили?”

вы встречали что-то что по Sequelize моделям сгенерит swagger итп?
источник

˸A

˸̧̨ ͅBlack Akula˸̧̨ ... in NodeUA - JavaScript and Node.js in Ukraine
Имхо, проще с php начать. Хотя я начинал вообще с калькулятора
https://images.app.goo.gl/WsbZfHqrRNxLYgfT9
источник

АМ

Андрей Москаленко... in NodeUA - JavaScript and Node.js in Ukraine
"по Sequelize моделям сгенерит swagger итп?"
или я не понял или это совсем какой-то бред
источник

N

Nikita in NodeUA - JavaScript and Node.js in Ukraine
чесно говоря я не нашел нормального способа сгенерировать такую документацию даже не учитывая aws stack (lambda + gateway)

сваггер я так и не понял как получить в результате нормальный обычный html который я могу загрузить как статику на сервер
источник

Т

Тёмыч in NodeUA - JavaScript and Node.js in Ukraine
Вакансий чистой ноды мало. Имхо соизмеримо с каким-нибудь руби.
Нулевых джунов берут не охотно, часто хотят опыт в другом яп, например с Java (меня это ни раз спасало на собесах)
Очень много фулстак вакансий, где нужен тот же реакт. Реакт вакансий со знанием ноды мастхев куда меньше.
90% всратый стек Mongo/Express/React/Node.
+ нужно знать TypeScript.
источник

ES

Elena Sharovar in NodeUA - JavaScript and Node.js in Ukraine
у человека обычное CRUD приложение на Express и там есть sequelize модели. он хочет сгенерить swagger файл минимальными усилиями (чтоб какой-то скрипт ему сгенерил)
источник

Т

Тёмыч in NodeUA - JavaScript and Node.js in Ukraine
Но это сугубо моё имхо, из моего опыта поиска работы полтора года назад
источник

ES

Elena Sharovar in NodeUA - JavaScript and Node.js in Ukraine
я пользовалась этими пакетами "swagger-jsdoc" и “swagger-ui-express"

но к сожалению они магию не делают - сначала ты руками берешь и описываешь вход/выход API эндпоинтов (в формате swagger) в Jsdoc комментах в коде над каждым контроллером

а потом просто swagger-jsdoc собирает все эти jsdoc кусочки в один большой swagger файл и swagger-ui-express позволяет сгенерить удобный UI.

трудозатраты в итоге такие же как просто сидеть писать swagger файл, просто за счет того что пишешь части swaggerа в комментах в коде - потом больше вероятность не забыть поправить когда поменялось API
источник

N

Nikita in NodeUA - JavaScript and Node.js in Ukraine
+ формат который вы описали  в виде "success: true, data: {...}" - я не нашел удобного способа описать это в сваггер, без дублирования этого ответа по всем эндпоинтам
источник