Size: a a a

NodeUA - JavaScript and Node.js in Ukraine

2020 November 29

АП

Алексей Попов... in NodeUA - JavaScript and Node.js in Ukraine
Сергей
Т. е. если у класса четырехугольник написать на лбу,  что он имутабелен,  то от него можно наследовать иммутабельный прямоугольник, а от того иммутабельный квадрат. А если завтра кто захочет программно поменять размер стороны,  послать его к чертовой бабушке?
Yagni какое-то, доведённое до абсолюта :)
Но я полностью согласен с тем, что в реальной жизни не бывает так, что проект замораживается настолько, что предметка фиксируется
Такие ситуации - это смерть
источник

АП

Алексей Попов... in NodeUA - JavaScript and Node.js in Ukraine
Yaroslav
Вообще solid это тема собеседований и прогона чсв. В проектах за архитектурные промахи бьют по рукам. Или на ревью или на этапе принятия.
Так и формируются патерны работы.
Вот чтобы выстроить хорошие, логичные и устойчивые паттерны нужно понять/выработать базовые принципы, которые лежат в основе паттернов
Solid - это как раз про эти базовые принципы
источник

ДД

Димон Дурак... in NodeUA - JavaScript and Node.js in Ukraine
Доброе утро всем
Наконец-то появились свободные выходные попробовать сервер от Metarhia. Вот только чот не пошло (

Заметил такое поведение: при вызове с клиента методов API долгое время ничего не происходит, если только не изменить что-нибудь в коде сервера, чтоб спровоцировать hot reload.

Также, штатно не удается завершить работу сервера - после Ctrl+C он начинает выключаться, но вот полностью выключится сможет только после, внезапно, hot reload'a

Есличо, сервер запускается в WSL2 (ubuntu server 20.04), но такое же поведение наблюдается и на виртуалке с такой же убунтой.


скринкастики прилагаю и прошу помощи:
- работа после волшебного пендаля имени hot reload https://youtu.be/FcwZd6OjbAs
- завершение работы сервера https://youtu.be/HIMCSkjesOg
источник

Г

Георгий in NodeUA - JavaScript and Node.js in Ukraine
Всем привет. Не очень понятно с авторизацией jwt websocket. Взял ws либу и с авторизацией клиента на ноде все понятно. А как передавать логин пароль и потом токен при общении с браузером?
источник

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
Димон Дурак
Доброе утро всем
Наконец-то появились свободные выходные попробовать сервер от Metarhia. Вот только чот не пошло (

Заметил такое поведение: при вызове с клиента методов API долгое время ничего не происходит, если только не изменить что-нибудь в коде сервера, чтоб спровоцировать hot reload.

Также, штатно не удается завершить работу сервера - после Ctrl+C он начинает выключаться, но вот полностью выключится сможет только после, внезапно, hot reload'a

Есличо, сервер запускается в WSL2 (ubuntu server 20.04), но такое же поведение наблюдается и на виртуалке с такой же убунтой.


скринкастики прилагаю и прошу помощи:
- работа после волшебного пендаля имени hot reload https://youtu.be/FcwZd6OjbAs
- завершение работы сервера https://youtu.be/HIMCSkjesOg
Базу дропни и пересоздай из скрипта как в тестах на тревисе делается
psql -f application/db/install.sql -U postgres
PGPASSWORD=marcus psql -d application -f application/db/structure.sql -U marcus
PGPASSWORD=marcus psql -d application -f application/db/data.sql -U marcus
источник

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
возможно, старая структура была, еще возможно, что фаервол у тебя что-то не так пробрасывает в убунту. Тесты проходят на убунте, кстати.
источник

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
Сейчас добавлю в тесты еще 15 ноду
источник

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
Точно, на 15 ноде не работает, спасибо за репорт @dimon_durak
А вообще, для этого лучше группа https://t.me/metaserverless
Как исправлю, там будет новость
источник

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
Хотя 15 еще далеко не стабильна
источник

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
На 15 даже запуска не проходит, должно писать для каждого воркера:
09:10:50  W1   system   Application started in worker 1
источник

ДД

Димон Дурак... in NodeUA - JavaScript and Node.js in Ukraine
Timur Shemsedinov
Базу дропни и пересоздай из скрипта как в тестах на тревисе делается
psql -f application/db/install.sql -U postgres
PGPASSWORD=marcus psql -d application -f application/db/structure.sql -U marcus
PGPASSWORD=marcus psql -d application -f application/db/data.sql -U marcus
Дропнул не только лишь базу, а вообще всё заново сделал, с установкой 14.15.1 ноды. Результат тот же (

Пруф с музычкой: https://www.youtube.com/watch?v=FOt3wzJnXrg

И эта... Вопрос: всякое про Метархию слать в группу metaserverless. А вопросы про NodeStarterKit сюда? У мну там тоже грабли, но другие...
источник

A

Alexander in NodeUA - JavaScript and Node.js in Ukraine
ID:0
Долгожданное видео выйдет в воскресенье в 6:00
https://youtu.be/RS8x73z4csI
YouTube
"Node.js Middleware – никогда больше!" Тимур Шемсединов
Видео с онлайн-конференции JavaScript fwdays'20 autumn, которая прошла 22 сентября 2020 года.

Описание доклада:
Почему приложение работает нестабильно, происходит утечка памяти и процесс часто вылетает? Почему вам сложно найти ошибку и нужно долго делать откладку? Почему правки занимают все больше и больше времени, а модули трудно свести вместе? Вы уже догадывались, что с мидлварами что-то не так, но не знаете как без них? Решение есть!

Страница доклада и презентации:
https://fwdays.com/event/javascript-fwdays-2020/review/nodejs-middleware

Больше докладов и видео по теме конференции:
https://fwdays.com/event/javascript-fwdays-2020

Fwdays более 10 лет занимается организацией масштабных конференций для разработчиков таких направлений: JavaScript, .Net, Python, Data Science, PHP, QA, Highload, Architecture, DevOps, Databases.

Больше информации про актуальные события:
https://fwdays.com/events

Подписывайтесь, чтобы первыми узнавать про старт продаж билетов по самой выгодной цене:
Facebook: https://www.fa…
Да-да, пришло на почту уведомление, жду :)
источник

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
Димон Дурак
Дропнул не только лишь базу, а вообще всё заново сделал, с установкой 14.15.1 ноды. Результат тот же (

Пруф с музычкой: https://www.youtube.com/watch?v=FOt3wzJnXrg

И эта... Вопрос: всякое про Метархию слать в группу metaserverless. А вопросы про NodeStarterKit сюда? У мну там тоже грабли, но другие...
Версию ноды перепроверь все же
источник

С

Сергей in NodeUA - JavaScript and Node.js in Ukraine
Vitaliy
Такий кейс по різному зробити можна)
Наприклад не робити клас "квадрат", а робити конфіг поведінки "квадрат", і сетити його в конструктор "геометричної фігури"
Говорят, что солид вообще не про ооп. Ок, зачем что-то сетить через конструктор. Допустим, теперь нужно, чтоб при нажатии ctrl с мышью квадрат расширялся не во все стороны равномерно, а только захваченный край, как прямоугольник, а при ctrl+shift еще и размыкался в ломанную. Может выкинем вообще класс "Геометрическая фигура", а вместо него будет протокол поведения IFigureBehavior, с методами... drow() врядли, т.к. по разделению ответственностей этим должен занимать кто-то другой: сегодня на канвас, завтра в svg и т.д.  Допустим с методом move(). А вместо конфигов фигур - классы, которые это поведение реализуют. Отдельно заделывается класс конвертерер, со статичными методами, типа squareToRectangle(Square): Rectangle, которые вызываются по событиям... и т.д.
источник

С

Сергей in NodeUA - JavaScript and Node.js in Ukraine
Elena Sharovar
но Прямоугольник это частный случай Четырехуголника точно так же как Мужчина частный случай Human.
у первых еще более высокий класс - ГеомФигура, у Human еще более высокий класс - Млекопитающее
А вот интересно, кто от кого должен наследовать: у приматов же тоже есть самки и самцы. Человек наследует от примата, женщина от человека, а мужчина напрямую от самца, подходит? 🙂
источник

AA

Anna Alimova 👩‍💻... in NodeUA - JavaScript and Node.js in Ukraine
В тринадцатом, кажется, веке, были религиозные споры на тему "человек ли женщина" 😸
источник

АП

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

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
Алексей Попов
Вы забываете, что наследование это всего лишь один из вариантов
И композиция предпочтительнее
Особенно если речь идёт о таких сложных иерархиях
👍 наследование - самое плохое, что есть в ооп. Нужно максимально все делать на реализации интерфейсов, а объединять через композицию и фасады
источник

С

Сергей in NodeUA - JavaScript and Node.js in Ukraine
Сергей
Говорят, что солид вообще не про ооп. Ок, зачем что-то сетить через конструктор. Допустим, теперь нужно, чтоб при нажатии ctrl с мышью квадрат расширялся не во все стороны равномерно, а только захваченный край, как прямоугольник, а при ctrl+shift еще и размыкался в ломанную. Может выкинем вообще класс "Геометрическая фигура", а вместо него будет протокол поведения IFigureBehavior, с методами... drow() врядли, т.к. по разделению ответственностей этим должен занимать кто-то другой: сегодня на канвас, завтра в svg и т.д.  Допустим с методом move(). А вместо конфигов фигур - классы, которые это поведение реализуют. Отдельно заделывается класс конвертерер, со статичными методами, типа squareToRectangle(Square): Rectangle, которые вызываются по событиям... и т.д.
Хорошо, но не все так просто. У каждого многоугольника есть метод расчета площади. У квадрата и прямоугольника это оптимизированные варианты, чтоб сэкономить вычислительные ресурсы: сторона в квадрате и длина на ширину. А вот для пятиугольника и выше хотелось бы использовать универсальную формулу и что может быть лучше, чем просто унаследовать метод от базового класса "многоугольник" ?
источник

ДД

Димон Дурак... in NodeUA - JavaScript and Node.js in Ukraine
Timur Shemsedinov
Версию ноды перепроверь все же
Немножко поисследовал вопрос и выяснил, что в ноде версии v14.5.0 работает, а вот в  v14.6.0 и далее, всё ломается

Надеюсь, это поможет
источник