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

Доброго времени суток Только пробую для себя язык В данный момент пишу

java + Spring
Подскажите, есть ли востребованные (популярные) веб фреймворки для Rust?

73 ответов

12 просмотров

Может не нада

Из востребованного и популярного actix

Вопрос зачем? Spring нормальный фреймворк для разработки. Какие качества нужны, что востребован переход на низкоуровневый язык

Johannes Klimakus
Вопрос зачем? Spring нормальный фреймворк для разр...

С каких пор толсто намазанный DI поверх фабрик стало нормальным?

Johannes Klimakus
Вопрос зачем? Spring нормальный фреймворк для разр...

Ява не сильно высокоуровней раста, это не питон/руби/жс

actix-web и все

doc
Ява не сильно высокоуровней раста, это не питон/ру...

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

Dmytro Polunin
actix-web и все

Актикс легаси

Alexander Chichigin
Как будто питон/руби/жс сильно высокоуровневей явы...

А потом память течёт, потому что сохранили замыкание, которое захватывает слишком много

Dmytro Polunin
Всегда?

В спринге всегда.

Dmytro Polunin
На этом моменте давайте в оффтопик)

Забавно, что я-то указал хоть какие-то аргументы для своего заявления. Видимо, аргументированные высказывания — это оффтоп. 😁

Shagit Ziganshin
В спринге всегда.

В любом среднем веб проекте без диая с фабриками будет макаронная каша в определении зависимостей)

doc
Ява не сильно высокоуровней раста, это не питон/ру...

Пора в системное программирование затащить Яву, ага... *sarcasm*

Shagit Ziganshin
С каких пор толсто намазанный DI поверх фабрик ста...

Всегда вопрос для каких задач. Споры в этих вещах всегда упираются в контекст, без контекста спорить не о чем

Dmytro Polunin
В любом среднем веб проекте без диая с фабриками б...

Как раз таки DI и вызывает макароны Тонский это хорошо описал

Антон 🇦🇲
А потом память течёт, потому что сохранили замыкан...

Что значит "течёт"? Чем это отличается от ручного Box::leak?

Dmitriy [Отпуск]
Пора в системное программирование затащить Яву, аг...

Мой ответ был в контексте веб разработки, а не в целом

Shagit Ziganshin
Как раз таки DI и вызывает макароны Тонский это х...

Кстати, где? Любопытно почитать его мнение по этому поводу. 😊

Alexander Chichigin
Что значит "течёт"? Чем это отличается от ручного ...

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

Dmitriy [Отпуск]
Куда?))

А что Вы считаете системным программированием? Распределённые системы? ✅ Сетевые службы? ✅ Файловые системы? ✅ ОС? ✅ Управление роботами? ✅

Антон 🇦🇲
Ну что память выделяется, но не освобождается, пот...

Т.е. от Box::leak отличается тем, что про ссылку знает GC. 👌😊

Shagit Ziganshin
https://t.me/nikitonsky_pub/141

>dependency injection, он же ioc. Почему названия два? Наверное два лидера было. Вы всерьез считаете авторитетным такой источник? 😂

Антон 🇦🇲
А потом память течёт, потому что сохранили замыкан...

можно еще вспомнить что в означенных языках у захватываемых переменных indefinite extent, да

Dmytro Polunin
>dependency injection, он же ioc. Почему названия ...

Потому что он авторитетный источник с большим количеством статей, проектов и в целом известен по индустрии

Dmytro Polunin
Ссылок на тонского мы давать не будем?

Могу дать другую ссылку: https://blog.ploeh.dk/2017/01/27/from-dependency-injection-to-dependency-rejection/ Не то, чтобы я был строго против DI и считал, что он превращает код в лапшу, но, с другой стороны, кажется, при нормальной hexagonal architecture DI действительно особо не нужен, ни в ООП, ни в ФП. Ни в Rust. 😊

Dmitriy [Отпуск]
Пора в системное программирование затащить Яву, аг...

будто раст в системном программировании используют!

Shagit Ziganshin
https://t.me/nikitonsky_pub/141

Он описывает DI 15 лет назад. Вы всерьез считаете что за 15 лет ничего не поменялось?) Из увиденных мною фреймворков наиболее правильным считаю C# Dependency Injection Framework. На нем и основан к слову https://github.com/p0lunin/teloc

Alexander Chichigin
Могу дать другую ссылку: https://blog.ploeh.dk/201...

Ну DI это буквально опухоль, как и паттерны

Dmytro Polunin
Он описывает DI 15 лет назад. Вы всерьез считаете ...

IoC это паттерн, а они с годами не меняются

Shagit Ziganshin
Потому что он авторитетный источник с большим коли...

С каких пор показатель много статей говорит о каждая статья правильная и авторитетная

Shagit Ziganshin
IoC это паттерн, а они с годами не меняются

Так вы гляньте мой пример из ридми - все что вам необходимо в моем случае, это добавить макрос #[inject] и создать контейнер, куда занести типы необходимых зависимостей) Никакой каши не надо, у нас тут Раст а не джава)

Dmytro Polunin
Так вы гляньте мой пример из ридми - все что вам н...

В джаве тоже каши нету, там вообще компайл тайм инъекторы есть. Кашу можно сделать везде

Dmytro Polunin
Так вы гляньте мой пример из ридми - все что вам н...

Окей, а потом ты нагородишь десятки контейнеров и сотни зависимостей. Как будешь интроспекцию делать? У меня интерес грепать слова по коду пропал во времена Spring 4.2 Извини, IoC это дичь

Dmytro Polunin
Так вы гляньте мой пример из ридми - все что вам н...

А в случае C# Dependency Injection Framework, вам и вовсе необходимо лишь добавить .add_lifetime метод, даже макрос создавать не надо, рефлексия сама разберётся как конструировать ваш объект😉 Так что по джаве ровняться уж точно не стоит)

Shagit Ziganshin
Окей, а потом ты нагородишь десятки контейнеров и ...

Когда у тебя сотни зависимостей - вы будете каждую зависимость создавать через new() и все будет читабельно и удобно?

Shagit Ziganshin
Go to definition тоже удобно :)

Ну и, на самом деле, у телока в планах создавать изображение графа зависимостей, пока что руки не дошли.

Dmytro Polunin
Когда у тебя сотни зависимостей - вы будете каждую...

Там же самое интересное начинается, когда создаваемые объекты нужно по-разному конфигурировать для разных деплоев. Хорошо, если через конфиг-файл при старте. А то бывает, прямо в рантайме из Зукипера надо тащить! 😃

Alexander Chichigin
Там же самое интересное начинается, когда создавае...

Если вам конфигурацию объектов нужно тащить в рантайме из Zookeeper, то у вас что-то не в порядке с архитектурой

Антон 🇦🇲
Если вам конфигурацию объектов нужно тащить в рант...

Oh really?! Распределённый деплоймент, постепенное выкатывание новых фич, тестирование под нагрузкой, разная конфигурация под разных клиентов? Не, это всё неправильная архитектура! 😂

Alexander Chichigin
Oh really?! Распределённый деплоймент, постепенное...

Да. Пусть отдельное приложение вынимает инфу и прокидывает конечному через флаги. В самом приложении этого быть не должно

Антон 🇦🇲
Да. Пусть отдельное приложение вынимает инфу и про...

Да хоть через переменные среды! Главное — руками прокидывать до каждого new — вот это правильная архитектура! И перезапускать всю ноду при изменении конфига — иначе зачем нам k8s, правда же? 😃

Alexander Chichigin
Да хоть через переменные среды! Главное — руками п...

Я не видел примера, где использование DI даёт хоть что-то положительное

Антон 🇦🇲
Я не видел примера, где использование DI даёт хоть...

Хотите сказать, Вы посмотрели вообще на все приложения в мире? Или это утверждение говорит только об ограниченности Вашего личного опыта? 😉

Антон 🇦🇲
Я не видел примера, где использование DI даёт хоть...

Как говорится "посчитайте сколько у вас интерфейсов, а потом посчитайте сколько интерфейсов имеют более одной реализации"

Shagit Ziganshin
Как говорится "посчитайте сколько у вас интерфейсо...

Это не есть требование DI/IoC, лишь опциональная возможность, и на примере teloc/C# Dependency Injection Framework это показано.

Shagit Ziganshin
Как говорится "посчитайте сколько у вас интерфейсо...

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

Shagit Ziganshin
Ну DI это буквально опухоль, как и паттерны

ну да, ведь все нужно с нуля переизопретать. Втопку https://rust-unofficial.github.io/patterns/ заодно

Shagit Ziganshin
IoC это паттерн, а они с годами не меняются

паттерн это DI, а IoC это либы которые офк меняютс и становятся лучше

Αλεχ Zhukovsky
паттерн это DI, а IoC это либы которые офк меняютс...

Наоборот. DI это один из способов реализовать IoC

Shagit Ziganshin
Так и что? Это другие паттерны буквально

ну я вот считаю что паттерны полезные, их знать не повредит

Johannes Klimakus
В джаве тоже каши нету, там вообще компайл тайм ин...

я кашу видел в dagger, правда это не совсем жаба, а котлин

Alexander Chichigin
Там же самое интересное начинается, когда создавае...

А что в этом интересного? Вместо IService приходится передавать IServiceProvider и на месте инстанцировать, все классически решается

Shagit Ziganshin
Токсичное знание

ну да, меньше знаешь - крепче спишь, так ведь. Джун идеальный разраб

Αλεχ Zhukovsky
А что в этом интересного? Вместо IService приходит...

В смысле "классически"? Там выше утверждалось, что ни DI, ни фабрики не нужны — достаточно просто везде создавать объекты по месту оператором new. Ваше предложение в схему с new не укладывается.

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта