Size: a a a

NodeUA - JavaScript and Node.js in Ukraine

2021 February 07

D

Dmitry in NodeUA - JavaScript and Node.js in Ukraine
👍
источник

ГФ

Герман Филатов... in NodeUA - JavaScript and Node.js in Ukraine
Timur Shemsedinov
И мидлвары тоже не стыдно, если повторять это себе ежедневно
битва титанов
источник

AB

Alex Bekhtin in NodeUA - JavaScript and Node.js in Ukraine
Nikita
Всем привет.
Думаю над курсом по "Node.js in Production". Что бы вы хотели видеть в программе?

UPDATE: Речь идет о курсе для MiddleToSenior уровня. Если вам нужен начальный уровень, то такой курс готовит @xanf_ua.
Вопросы безопасности данных, как они решается. Поясню вопрос.
Есть у нас форма для редактирования объекта. Одно из полей ключевое. Запросили по API допустимый список значений для данного поля с чётом объекта и того кто вводит редактирует данные (вот такая сложноа бизнес-логика + безопасность). Далее от клиена прилетает обновлённая сущность на бэкенд, и не факт, что ID поля, что мы ему давали, из списка. Надо ещё раз запрашивать список и проверять там наличие этого ключа. В sattefull системах с GUI мы можем сохранить этот список в сессии, а интерфейс будет выбирать значения из списка, пронумерованные от 1 до n (соответствия сидят в сессии), и никакие первичные ключи из БД не полетят на клиента. Но это для GUI и statefull.
Если мы даём API, то значения этих полей часто вообще могут быть описаны в документации и являются значениями ключей в таблицах-словарях в нашей системе.
Вот и возникает вопрос, как обезопасить API да ещё и в stateless системе?
Надеюсь понятно объяснил.
источник

Г

Глеб in NodeUA - JavaScript and Node.js in Ukraine
Nikita
Всем привет.
Думаю над курсом по "Node.js in Production". Что бы вы хотели видеть в программе?

UPDATE: Речь идет о курсе для MiddleToSenior уровня. Если вам нужен начальный уровень, то такой курс готовит @xanf_ua.
Модуль про валидацию данных: различные подходы/нюансы (вроде обработка в мидлварах vs. use case; DTO-классы); обработку исключений в сервисном слое; переиспользование методов сервисов в рамках одного бизнес-домена (когда стоит добавлять условную логику в метод, в зависимости от того, откуда он будет вызван; когда использовать перегрузку функций/методов (как-никак TS же), когда создавать новые). Плюс интересно было бы послушать про утилити-классы (для операций которые не связаны с доменной логикой)
источник

DD

Dmytro Drachov in NodeUA - JavaScript and Node.js in Ukraine
Nikita
Всем привет.
Думаю над курсом по "Node.js in Production". Что бы вы хотели видеть в программе?

UPDATE: Речь идет о курсе для MiddleToSenior уровня. Если вам нужен начальный уровень, то такой курс готовит @xanf_ua.
- Как экономить косты на проде. Где можно,а где лучше не экономить.
- Что логировать на проде, техники логирования для прода.
- автоматизация поиска ботл нека в системе
- добавление перформанс тестов в ci
- как тестить перформанс ивент бейз систем.
- офлоад задач, что выбрать архитектурное разделение или thread/process/small async tasks.
- основные принципы обновления системы на проде, или как сделать так чтобы девопс не натупил.
- как подготовится к черной пятнице
- "стоп" задачи для ноды, или  когда стоит сказать что ребята это лучше делать используя другие технологии
- как выбрать размера пула конекшынов к чему либо? От балды, научный тык, или есть все возможность вычислить  на основе чего то.
- топ страшных ошибок архитектуры, которые как бомба замедленного действия.
источник

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
Топ стандартных ошибок архитектуры @DmytroDrachov : orm, jwt, rest, middleware, no leyers, stateless only, metadata in decorators
источник

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
Еще забыл born-to-die процессы
источник

KH

Kirill Hmelnitski in NodeUA - JavaScript and Node.js in Ukraine
Timur Shemsedinov
Еще забыл born-to-die процессы
Если приложению надо умереть, чтобы обновится это born-to-die? Речь как я понимаю не только про php.
источник

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
Kirill Hmelnitski
Если приложению надо умереть, чтобы обновится это born-to-die? Речь как я понимаю не только про php.
Только про node.js, чтобы обновиться это еще ок
источник

N

Nikita in NodeUA - JavaScript and Node.js in Ukraine
Alex Bekhtin
Вопросы безопасности данных, как они решается. Поясню вопрос.
Есть у нас форма для редактирования объекта. Одно из полей ключевое. Запросили по API допустимый список значений для данного поля с чётом объекта и того кто вводит редактирует данные (вот такая сложноа бизнес-логика + безопасность). Далее от клиена прилетает обновлённая сущность на бэкенд, и не факт, что ID поля, что мы ему давали, из списка. Надо ещё раз запрашивать список и проверять там наличие этого ключа. В sattefull системах с GUI мы можем сохранить этот список в сессии, а интерфейс будет выбирать значения из списка, пронумерованные от 1 до n (соответствия сидят в сессии), и никакие первичные ключи из БД не полетят на клиента. Но это для GUI и statefull.
Если мы даём API, то значения этих полей часто вообще могут быть описаны в документации и являются значениями ключей в таблицах-словарях в нашей системе.
Вот и возникает вопрос, как обезопасить API да ещё и в stateless системе?
Надеюсь понятно объяснил.
Очень узкий кейс из валидация входящих данных. Возможно, я его использую в качестве примера валидации на уровне кода и на уровне базы даных. На уровне кода кстати там несколько вариантов
источник

N

Nikita in NodeUA - JavaScript and Node.js in Ukraine
Глеб
Модуль про валидацию данных: различные подходы/нюансы (вроде обработка в мидлварах vs. use case; DTO-классы); обработку исключений в сервисном слое; переиспользование методов сервисов в рамках одного бизнес-домена (когда стоит добавлять условную логику в метод, в зависимости от того, откуда он будет вызван; когда использовать перегрузку функций/методов (как-никак TS же), когда создавать новые). Плюс интересно было бы послушать про утилити-классы (для операций которые не связаны с доменной логикой)
1) Я не делаю утилити-классы и мне не знаком такой паттерн проектирования кода.
Возожно, то что вы хотите исползовать, проще сделать через или декораторы, или просто чистые фукнции хелперы
2) валидация будет
3) остальное скорее частный случии архитектуры кода в целом
источник

KH

Kirill Hmelnitski in NodeUA - JavaScript and Node.js in Ukraine
Timur Shemsedinov
Топ стандартных ошибок архитектуры @DmytroDrachov : orm, jwt, rest, middleware, no leyers, stateless only, metadata in decorators
Подскажите, а какие проблемы у stateless only? Что хочется хранить в приложении?
источник

N

Nikita in NodeUA - JavaScript and Node.js in Ukraine
Dmytro Drachov
- Как экономить косты на проде. Где можно,а где лучше не экономить.
- Что логировать на проде, техники логирования для прода.
- автоматизация поиска ботл нека в системе
- добавление перформанс тестов в ci
- как тестить перформанс ивент бейз систем.
- офлоад задач, что выбрать архитектурное разделение или thread/process/small async tasks.
- основные принципы обновления системы на проде, или как сделать так чтобы девопс не натупил.
- как подготовится к черной пятнице
- "стоп" задачи для ноды, или  когда стоит сказать что ребята это лучше делать используя другие технологии
- как выбрать размера пула конекшынов к чему либо? От балды, научный тык, или есть все возможность вычислить  на основе чего то.
- топ страшных ошибок архитектуры, которые как бомба замедленного действия.
Дмитрий, отличный список. Мне нравиться
источник

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
Kirill Hmelnitski
Подскажите, а какие проблемы у stateless only? Что хочется хранить в приложении?
Приложение не должно хранить, хранит база, но переинициализировать модель из базы сильно часто - это ужас, это бьет всю идею ооп, сбрасывать на диск время от времени - другое дело
источник
2021 February 08

AB

Alex Bekhtin in NodeUA - JavaScript and Node.js in Ukraine
Nikita
Очень узкий кейс из валидация входящих данных. Возможно, я его использую в качестве примера валидации на уровне кода и на уровне базы даных. На уровне кода кстати там несколько вариантов
С одной стороны да, с другой... сделать это более менее красиво, чтобы вся эта валидация не была больше самого кода.
Ну а на счёт редкости этого кейса, не соглашусь, но это субъективный взгляд.
источник

KH

Kirill Hmelnitski in NodeUA - JavaScript and Node.js in Ukraine
Интересно. Правильно ли я понял, что мы храним модели например пользователей) в памяти приложения и собираем какие-то апдейты моделей, что потом разом обновить это в базе?
источник

KH

Kirill Hmelnitski in NodeUA - JavaScript and Node.js in Ukraine
Timur Shemsedinov
Приложение не должно хранить, хранит база, но переинициализировать модель из базы сильно часто - это ужас, это бьет всю идею ооп, сбрасывать на диск время от времени - другое дело
Прошу прощения, не указал реплай. Вопрос выше.
источник

CM

Chumachenko Mihail in NodeUA - JavaScript and Node.js in Ukraine
Ку. Hbs

const hbs = require('hbs');

hbs.registerHelper("getTime", function(){

   var myDate = new Date();
   var hour = myDate.getHours();
   var minute = myDate.getMinutes();
   var second = myDate.getSeconds();
   if (minute < 10) {
       minute = "0" + minute;
   }
   if (second < 10) {
       second = "0" + second;
   }
   return "Текущее время: " + hour + ":" + minute + ":" + second;
});

И потом  вызываю хелпер на странице:
   <div>{{getTime}}</div>

Вопрос: Сама страница отображается, все корректно. Почему не отображается само время?
источник

О

ОЛЕГ in NodeUA - JavaScript and Node.js in Ukraine
Нужно вызвать функцию
источник

О

ОЛЕГ in NodeUA - JavaScript and Node.js in Ukraine
getTime()
источник