170 похожих чатов

Не ну я с нуля планирую писать, на чем удбнее?

пробовал экспрес както не полноценно

53 ответов

37 просмотров

Попробуй выбрать другой язык, может зайдет

Построй приложение так чтобы можно было любой хттп фреймворк подставить в качестве транспорта и будет не важно что там экспресс или ещё что

Anton K.
Построй приложение так чтобы можно было любой хттп...

В Nest можно любой транспорт использовать. Даже Koa есть и Fastify

Максим
А голый http можно?

Теоретически можно, но не будет никаких Middleware, Роутеров и прочих фич фраемворка.

Feanorx
В Nest можно любой транспорт использовать. Даже Ko...

Фишка в том что я не хочу зависеть от нестовых решений и подходов. Нест интересен (если интерсен вообще) исключительно в качестве транспорта.

Feanorx
В Nest можно любой транспорт использовать. Даже Ko...

Транспорт там скорее http, а этот библиотеки для маршрутизации

Я бы сейчас новые проекты начинал на молекулере, как по мне, намного менее громоздкая штука, чем nest, и куда более независимая от различного рода транспортных решений.

Danil Kincharov
Я бы сейчас новые проекты начинал на молекулере, к...

Там, вроде как, один из основных разработчиков, русскоговорящий, можно легко получить ответ на интересующий вопрос/внести предложение по улучшению.

Danil Kincharov
Я бы сейчас новые проекты начинал на молекулере, к...

У молекулера даже мажорной версии нету, а бенчи под 8 версию ноды на офф сайте)

Антон Горбачёв
У молекулера даже мажорной версии нету, а бенчи по...

А каков выбор, nest не предлагать, тонны бестолковых абстракций, ради абстракций меня не устраивают, какие альтернативы?

Danil Kincharov
Я бы сейчас новые проекты начинал на молекулере, к...

Но он не диктует архитектуру, а это может быть важно. С одной стороны сделать на нём совсем плохо всё же проще, чем сделать совсем плохо в несте. С другой, сделать хорошо тоже проще, чем в несте А ещё его выбор снимает необходимость тратить много времени на инфраструктурные задачи (кеш, транспорт, валидация), но зато придётся больше тратить времени на архитектурные

Danil Kincharov
А каков выбор, nest не предлагать, тонны бестолков...

Если не нужны абстракции, то может тогда проще взять го?

Антон Горбачёв
Если не нужны абстракции, то может тогда проще взя...

Ты неправильно понял мысль, у меня нужды в бестолковых абстракциях, где модуль сидит на модуле и интерсаптором с пайпами сервисом погоняет

Danil Kincharov
Ты неправильно понял мысль, у меня нужды в бестолк...

Это как раз разделение ответственности, а не когда все всю логику по мидлварам рассовывают

Danil Kincharov
Ты неправильно понял мысль, у меня нужды в бестолк...

Причем все эти абсракции не зависят от транспорта и применимы в разных видах приложений

Антон Горбачёв
Причем все эти абсракции не зависят от транспорта ...

Транспорт в nest http, какой там есть еще из коробки?

Danil Kincharov
Транспорт в nest http, какой там есть еще из короб...

Это не претензия, я просто давно не смотрел на него и сужу по давней памяти.

Danil Kincharov
Транспорт в nest http, какой там есть еще из короб...

Там их куча, http, rabbitmq, kafka, nats, redis, tcp и тд. А так же можно просто сделать консольное приложение (Сохранив все абстракции), ботов для тг, дискорда и ещё кучи чего. Если возможность писать свои транспорты, которые будут легко интегрироваться с абстракциями неста

Антон Горбачёв
Там их куча, http, rabbitmq, kafka, nats, redis, t...

И все это можно сделать , просто поменяв конфигурацию?

Мне тут кажется всё логичным и удобным, и нету привязки к транспорту Route handler может от куда угодно ожидать ввод

Антон Горбачёв
Мне тут кажется всё логичным и удобным, и нету при...

Мне не нравится, что проверку параметров нужно пихать в какие-то классы с декораторами

Danil Kincharov
Мне не нравится, что проверку параметров нужно пих...

Там есть и альтернативные решения, на замену класс валидатору и класс трансформеру, но мне они кажутся менее удобными

Антон Горбачёв
Там есть и альтернативные решения, на замену класс...

Мне более удобной всегда будет казаться, простая схема, которую я положу рядом с методом, который вызывается

Danil Kincharov
Мне не нравится, что проверку параметров нужно пих...

Если использовать typia, то можно вот так описывать валидацию interface CommentTag { /** * @type int */ type : number ; /** * @exclusiveMinimum 19 * @maximum 100 */ number ?: number ; /** * @minLength 3 */ string : string ; /** * @pattern ^[a-z]+$ */ pattern : string ; /** * @format date-time */ format : string | null ; /** * In the Array case, possible to restrict its elements. * * @minItems 3 * @maxItems 100 * @format uuid */ array : string []; }

Danil Kincharov
Мне более удобной всегда будет казаться, простая с...

Причем метод будет абстрагирован от REST и прочих протоколов

Антон Горбачёв
Это как раз разделение ответственности, а не когда...

Есть большее число вариантов, чем две крайности И я согласен с Данилом, что в молекулере неплохо сделана скучная инфраструктурная часть. По крайней мере нестовые пайпы, гарды, интерцепторы и фильтры для меня мучение. Каждый раз расстраиваюсь если надо туда лезть

Антон Горбачёв
Чаще всего да

Ну нет. Ещё написав кучу контроллеров и декораторов

Алексей Попов
Ну нет. Ещё написав кучу контроллеров и декораторо...

Это зависит от реализации транспорта. Например для переключения между rabbitmq, kafka, nats, redis не нужно ничего менять, кроме конфига самого модуля, если платформозависимые фичи в своём коде не юзались

Антон Горбачёв
Мне тут кажется всё логичным и удобным, и нету при...

То есть client request и response Могут быть сообщениями из брокера и в брокер и ничего не сломается?

Антон Горбачёв
Если использовать typia, то можно вот так описыват...

А вот пример из молекулера. Валидаторы легко меняются, и так же легко пишутся кастомные. Если нужно, то прямо на месте

Антон Горбачёв
Да

Зачем только целый нест тащить если можно без него обойтись ну да ладно Может и может

Алексей Попов
screenshot А вот пример из молекулера. Валидаторы легко меняю...

Там через Template Literal Types это сделано или просто нужно знать что вписывать? Если второе, то мне такой подход не нравится

Антон Горбачёв
Там через Template Literal Types это сделано или п...

Конкретно этот пример - дефолтный https://github.com/icebob/fastest-validator

Антон Горбачёв
Там через Template Literal Types это сделано или п...

Если ты про валидацию параметров, то в зависимости от библиотеки валидации

Danil Kincharov
Если ты про валидацию параметров, то в зависимости...

Я к тому, что в примере вот например написано from: "string|optional", если я напишу "stringg|optionall" тайпскрипт будет ругаться до запуска приложения на этапе статического анализа?

Антон Горбачёв
Это зависит от реализации транспорта. Например для...

Ещё пока у меня не получалось обойтись без написания кода для смены Кафки на кролика. Хотя допускаю, что из-за специфики проекта Но в молекулере, кажется, что это была бы правка одной строки в конфиге даже с учётом специфики

Антон Горбачёв
Я к тому, что в примере вот например написано from...

Вряд ли Я вообще не тащил тс в молекулер. Это ж микросервисы. Они небольшие, со скромной кодовой базой, хорошо если пару тысяч строк кода суммарно. Зачем там тс

Danil Kincharov
Ну так не пиши так

Так можно сказать про любую проблему)

Антон Горбачёв
Я к тому, что в примере вот например написано from...

Если ты не запускаешь код с hot reload во время разработки, то такая ошибка у тебя может остаться незамеченной, но если ты пишешь код, как любой адекватный человек и запускаешь его для проверки, то при перезапуске у тебя вывалится ошибка о некорректной схеме.

Антон Горбачёв
Так можно сказать про любую проблему)

Так можно выдумать любую проблему и притянуть тайпскрипт, как ее решение, но по факту если вы льёте код на сервера, даже не проверив его работоспособность тестами или простым запуском, то у вас проблемы, используете вы тс иди нет.

Fastify/Express + Koa (неофициальный)

И платформо-зависимые части. Обычно в документации явно пишется, что фича зависит от платформы.

Feanorx
И платформо-зависимые части. Обычно в документации...

что такое платформа в данном контексте?

Feanorx
Fastify/Express + Koa (неофициальный)

Это всё http транспорт, ты перечисляешь библиотека для маршрутизации. Про остальное мне уже пояснили, что есть ws и mq

..
что такое платформа в данном контексте?

Термин из их документации. Та библиотека, средствами которой они навешивают функционал на HTTP сервер, короче Express/Fastify/...

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

Обсуждают сегодня

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Oh sorry did you want it in Gunter's chains?
Martin Rys
15
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Карта сайта