Denis
Даже без ts ?
Ilya
Я пишу...
Denis
Оно же стреляет каждые 2 секунды в рантайме небось
Ilya
#!
Ayrat
Но я хз, это ж жс
Ilya
Подозрительно.
Ayrat
оно наверное в любом состоянии работает, просто динамически кастит в пустой массив и вперде
Ayrat
:D
Ayrat
Я ниибу, надо разбираться (в ОСОБЕННОСТЯХ жс)
Denis
Работает оно работает, но корректность это уже другой вопрос
Ayrat
Серьезно, кто то пишет бэкенд на js ?
я сам подохуел с этого. Ну типа есть же нормальный язык, делать ничего не надо чтобы оно работало, какого хуя-то
Ayrat
зачем ебашить бек на ноде на ЖС хз
Ilya
Just for fun.
Denis
зачем ебашить бек на ноде на ЖС хз
Чтобы npm рос еще больше
Vasily
Айрат пробивает очередное дно?
Ayrat
Да не, пока не все так плохо. Просто говно жс
Doge
я просто линтер включил и охуел await non-awaitable object runtime cast error и пр
Ну это норма, ts тут бы не спас, был бы такой же хаос, но только с типами.
Doge
Бардак-то в головах
Doge
У нас на работе по некоторым техническим причинам есть один сервис на ноду и про типы некоторых местных библиотек мне страшные вещи рассказывали.
Doge
Типа подобной ереси: interface PDFDocument extends NodeJS.ReadableStream, Mixins.PDFAnnotation, Mixins.PDFColor, Mixins.PDFImage, Mixins.PDFText, Mixins.PDFVector, Mixins.PDFFont
Doge
Где PDFDocument - это и стрим, и цвет, и изображение и всё подряд.
Shub
Но тут просто конструктор вызывается. Ну и пара фабричных методов
Конструирующие методы обязательно должны называться Create, а то ВДРУГ НЕЧИТАЕМО БУДЕТ Все остальное - харам
Shub
В остальном это банальная сборка aggregate root руками, ну в общем, в экосистеме за чертой бедности иначе нельзя. Остается вопрос, как быть, когда таких зависимостей много, но это вопрос для грядущих поколений
Mark
мне тут просто сказали, что я всё время на негативе на митингах и надо что то с этим делать :)
Просто говори: "у нас говнокод, и это круто!", "да здравствует сложный код!", и прочее подобное.
Ilya
зачем ебашить бек на ноде на ЖС хз
дак вы всех бэкендеров ноды уволили что ли?
Ilya
кстати, я её уже забрал)
Ilya
теперь электронная
Ilya
теперь 2 кнопки на госуслугах - и ты человек
Ilya
а не то, что некоторые в каменном веке живут с интернетом за 100 баксов
Ilya
не знаю, я тут второй день
человек второй день на работе, но уже сказал, что всё говно надо срочно переписать)
Ayrat
так что не надо тут
Ilya
ты там типичный человек из восточной европы?))
Ayrat
ты там типичный человек из восточной европы?))
Не, на работе я няшный, инклюзивный, коллаборейтив персон
Ayrat
цена этому - пинта пива в обед?
Согласись, не самое сложное!
Hog
Согласись, не самое сложное!
А ещё меня алкошеймите
Ilya
А ещё меня алкошеймите
Григорий, опять ты?
Sergey
https://waffleironer.medium.com/legalizing-gay-marriage-in-crusader-kings-iii-with-ghidra-2602e6aa8689
Vasily
Мда
Vasily
Сергей
Ayrat
Sir Gay
Не того Элтон Жона Сэргеем назвали!!11
Vasily
Ну вот да
Ayrat
https://i.imgur.com/dTcAHZc.jpg
Ilya
Приятно видеть частичку зелёного чатика здесь.
Tako
тоже сначала думал показалось
Ilya
А чем плохо создание класса для мидлвари?
Roman
соединять довольно большие блоки через контейнер - норм
Но какую проблему решает контейнер? Чем он лучше написания конструкторов вручную?
Roman
А чем плохо создание класса для мидлвари?
Ничем, просто функция под эту абстракцию проходит гораздо лучше
Ilya
Ага, понятно.
Roman
Любую функцию можно представить как объект с одним методом без внутреннего состояния, чем часто и приходится заниматься в сишарпе/жаве
Ilya
Но какую проблему решает контейнер? Чем он лучше написания конструкторов вручную?
ты чего до конструктора докопался? контейнер связывает контракт и реализацию, следит за временем жизни реализации, бьёт тебя по рукам из за циклических зависмостей, имеет детрминированные скоупы
Ilya
а то, что конструкторы вызывать не надо - это не самоцель
Ilya
в общем мысли шире!
Roman
ты чего до конструктора докопался? контейнер связывает контракт и реализацию, следит за временем жизни реализации, бьёт тебя по рукам из за циклических зависмостей, имеет детрминированные скоупы
ну а так тебя компилятор ударит по рукам при попытке инициализировать что-то циклически зависимое, время жизни прозрачно определяется в самом коде, скоупы сами собой определяются
Roman
управлять лайфтаймом, скоупом и прочим нужно только тогда, когда ты все это свалил в одну кучу, а потом хочешь в ней навести хоть какой-то порядок
Ilya
ну а так тебя компилятор ударит по рукам при попытке инициализировать что-то циклически зависимое, время жизни прозрачно определяется в самом коде, скоупы сами собой определяются
когда у тебя калькулятор не от майкрософта - то конечно, если у тебя что то посложнее, то тут уже надо что то думать, и вот придумали контейнеры со скоупами
Ilya
дивлюсь я, что тебе это в новинку
Roman
А так тебе приходит запрос, ты в нем же вызвал конструктор какой-то и передаешь этот объект дальше. Вот тебе внезапно сам собой PerWebRequest
Roman
дивлюсь я, что тебе это в новинку
можешь не дивиться, я тыщу проектов с DI контейнерами видел и разрабатывал
Ilya
и как потом это тестировать
Ilya
а сколько ты видел бизнес проектов без DI?
Roman
и как потом это тестировать
дык так же, ну. Интерфейсы ж никто не отменял
Ilya
а сколько ты видел бизнес проектов без DI?
понятно, что парсить гуиды надо без них
Ilya
и БЦЛ тоже как то не заходит, но Application level надо как то строить
Ilya
дык так же, ну. Интерфейсы ж никто не отменял
а кто выберет реализацию для этого интерфейса?
Roman
а кто выбирает с контейнером?