image.png100 Кб, 1050x1050
JS Thread #315 /js/ # OP 3260395 В конец треда | Веб
Предыдущий тред: >>3243924 (OP)

Больше пары строк кода в посте или на скриншоте ведут в ад.

Для программирования на HTML https://codesandbox.io
Для Node.js с консолькой https://repl.it/languages/nodejs

Если рассчитываешь получить дельный ответ, сформулируй правильно вопрос: «что я хочу получить, что я для этого делаю, что я вместо этого получаю». Если/когда самостоятельно найдёшь решение — поделись в треде, мы за тебя переживаем.

Документация - https://developer.mozilla.org
Руководство для вката - https://github.com/acilsd/wrk-fet#javascript
2 3260410
Какая база на этот тред? Постгря? Мускуль? MS SQL? Sqlite? Монга?

Что там по ОРМ? Призма? Дризл? Монгус? Секвелайз?
3 3260412
>>60410
emscripten
4 3260418
>>60410
Фреймворк для фронта - Angular
Бэкенд - чистый Node.js
БД для бэкенда - запись в файл.
5 3260421
>>60418
Это стек палаты номер 6?
6 3260424
>>60410
pg + knex (optionally)
345345.jpg50 Кб, 1073x210
7 3260436
>>3259446 →
Проблема в том, что это нихрена не работает.

И вариант с never тоже не работает.
8 3260439
>>60421
жертва маркетологов, плиз. необоходимость использовать БД ушла с момента когда иметь 128 гб оперативки стало нормой, а капасити жестких дисков может исчислятся сотнями террабайтов. Но хитрые кабаны конечно же не хотят терять клиентов, поэтому продолжают тебе продавать оверхед в виде базы данных.
9 3260442
>>60436
const elementId = props.view === "element" ? props.elementId : null;

И я все же советую тебе решить это разбиением компонента на 2, используяя композицию.
10 3260443
>>60439
Постгрес бесплатный. Мне нужны таблички. Я табличками думаю.
А ноду я бы заменил на петухон
345345.jpg23 Кб, 282x300
11 3260450
>>60442
Я тупанул, проблема здесь не в этом. Проблема здесь в том, что в
<AttributesManager view='element' />
он не требует указывать ещё и elementId

У компонента логика обработки в зависимости от пропсов различается минимально. Делить особо смысла нет.

Не получается выставить корректно ограничения на типы пропсов.
ComponentProps1 - то как есть.
ComponentProps2 - то, что должно быть в идеале, но не работает.
12 3260467
>>60443

>я табличками думаю



Ну так ты не программист, программисты думают массивами, списками, словарями.

>бесплатный



))) потом его купит хитрый кабан, а у тебя уже миллион зависимостей на постгрес и нужно платить этому кабану.
13 3260470
>>60450
Что тебе мешает сделать пропс

ComponentProps1 = {
viewConfig: {view: "overall"} | {view: single, id: ElementId | ComponentId }
}
14 3260487
Делаю простенькое расширение в firefox по тексту. Пишу -

>body=document.body.innerHTML;


>body=body.replace(/зелёный/g, 'синий');


>document.body.innerHTML=body;


- работает, заменяет в большинстве случаев. Но есть 2 нюанса:
1. Иногда не "ловит" текст, который вроде бы и отображается, но в page source браузера не виден.
2. Перестаёт работать интерактив.
15 3260523
>>60487
Держи в курсе
16 3260529
>>3260391 →
Вот я удалил редукс кал и код стал просто проще, а непредсказуемость не появилась.
https://jsfiddle.net/r6ufyh0q/
kekw.jpg63 Кб, 1236x772
17 3260530
>>60529
А вот это я редукс тулкит сделал.
https://jsfiddle.net/8zs6Lnv1/
18 3260534
>>60529
вся индустрия пользуется стейт менеджером, один ты бедный вкатунок не понимаешь зачем ано
19 3260535
>>60487

>[...(function* () {


const txtNodes = document.evaluate(".//text()[normalize-space(.) != '']", document.body);
let node; while (node = txtNodes.iterateNext()) { yield node; }
})()].map(node => node.data = node.data.toUpperCase());
20 3260536
>>60523
Надеюсь, что только ты не понял вопроса. Как исправить это? Нужно, чтобы не слетал интерактив после работы расширения чтобы корректировался весь текст, а не только видимая в source часть.
21 3260537
>>60535
Попытаюсь разобраться, спасибо.
22 3260538
>>60536
[...(function* () {
const txtNodes = document.evaluate(".//text()[normalize-space(.) != '']", document.body);
let node; while (node = txtNodes.iterateNext()) { yield node; }
})()].map(node => node.data = node.data.toUpperCase());
причина слета интеррактива в том, что назначение innerHTML ЗАНОВО пересоздает все блядь елементы на страничке.
тебе нужно все textNode перебрать и в них поменять.
23 3260539
>>60537
там происходит вот что
xpath запрос в функции генераторе
из генератора делаем массив всех текст нодов
потом проходим по массиву и в каждой ноде меняем текст

можно без генератора, проще
{
const
xPath = document.evaluate(".//text()[normalize-space(.) != '']", document.body)
, textNodes = []
;
let node; while (node = xPath.iterateNext()) { textNodes.push(node); }
textNodes.map(node => node.data = node.data.split("").reverse().join(""));
}

а вместо xpath можно юзать
https://developer.mozilla.org/en-US/docs/Web/API/Document/createTreeWalker
24 3260543
>>60529
1) Не ври. Редакс ты каждый раз не пишешь. Упрощения нет
2) От того что ты удалил паттерн код в простом случае стал проще, но не лучше.

Я давно видел на ютубе лекцию с Деном Абрамовым где он одной из фич редакса показывал путешетвие по истории состояний. Икать лень Код писать проще, чем искать
https://jsfiddle.net/sah934jw/
25 3260547
>>60543
Про биндинги забыл https://jsfiddle.net/zujnk5dr/
26 3260549
>>60543

> Разработчик редукскала рассказывает о его нужности


Ясно
27 3260550
>>60534

>вся индустрия


Вся индустрия занимается изображением бурной деятельности и собственной значимости, чтобы кабаныч платил зарплату. Чем больше оверинжиниренной хуйни будет в коде, тем "индустрии" лучше
28 3260551
>>60550
Предположим ты делаешь графический редактор типа попошопа только в баузере. Там будет ебическое состояние у UI. Тебе же проше использовать паттерн глобального состяния кторое меняется акшенами.
29 3260552
>>60534

> не понимаешь зачем ано


Чтобы сделать глобальную переменную и ни для чего больше. Я это второй день доказываю. А ты черт из ада, не умеющий какать.

>1) Не ври. Редакс ты каждый раз не пишешь. Упрощения нет


Пук.

>2) От того что ты удалил паттерн код в простом случае стал проще, но не лучше.


Пук.

>путешетвие по истории состояний


Нахуй не надо. Если нужны путешествия сделайте либу для путешествий. Вернись-ка нахуй к теме предсказуемости, черт.
30 3260553
31 3260554
>>60547
Твой говнокод потерял всякий смысл. Его больше нельзя понимать с первого взгляда, че ты сделать хотел тоже хз. Дефайн предсказуемость.
32 3260556
>>60554
Ты в упор паттерн не видишь? Я же не буду тебе адеквантный по сложности код писать, чтобы преимущества были очевидны. А я этот говнокод написал чтобы пояснить суть паттерна стейт менеджера. Сама суть: у тебя есть одно определенное место где ты коммитишь новое состояние. Туда выносится логика изменения состяния UI
33 3260557
>>60556

> Сама суть: у тебя есть одно определенное место где ты коммитишь новое состояние.


Для этого не нужен редукс. Это просто глобальная переменная.
34 3260559
>>60557
Глобальную переменную может любой хуй изменить в любом порядке. При сложном проекте ты не будешь знать что это за хуй и по какой логике он это делает. Поэтому ты логику выносишь в редьюсер
35 3260560
>>60559

>Глобальную переменную может любой хуй изменить в любом порядке.


Любой хуй в любом порядке твои редюсеры будет вызывать.

>Поэтому ты логику выносишь в редьюсер


Вынес логику в класс.
36 3260561
>>60560

>>Глобальную переменную может любой хуй изменить в любом порядке.


Смысл что редюсеров не много, а компонентов сотни.

>Вынес логику в класс.


Как угодно. Я на реакте тоже не пишу. На ангуляре у меня асинхронный стейт менеджер на rxjs
37 3260562
>>60561

>Смысл что редюсеров не много, а компонентов сотни.


Пук. Дефайл предсказуемость.
38 3260563
>>60561

> ангуляр


> Любитель оверижиниренного кала защищает другой оверинжиниренный кал


Ну кабаныч-то платит? Это главное
39 3260564
>>60562
Вынести состяние на бекенд на питухоне. Верстку генерировать jinja. Динамику на фронте сделать с помошью htmx
40 3260565
41 3260566
А всё я понял, что ты глобальную переменную называешь словом предсказуемость.
17250325880110.jpg124 Кб, 1463x474
42 3260567
>>60566
Я стейт менеджер называю

>the action of thinking about something in a logical, sensible way.

43 3260568
>>60567
У каждого компонента может быть локальная переменная которую они откуда-то копируют. И тогда в них могут различаться значения. А если они все возьмут из одного места, то это будет предсказуемо. Потому что глобально.

>Я стейт менеджер называю


Это глобальная переменная.
44 3260569
Погнали дальше теперь вуе серии объясняют нахуй нужна pinia.
45 3260570
>>60569

> вуе черти

46 3260571
>>60568
Я согласен стакой формулировкой. Только вот подумай почему в vuex сделали отдельно коммит, отдельно акшен, а в комите запретили делать асинхронные запросы. Накой черт они это напридумывали? В сложном коде важна не только глобальная переменная, но и способ доступа к ней. Это часть паттерна.
47 3260583
>>60569
А я вам объясню. Реактодебил уже наученный что глобальная переменная в реакте называется стор гуглит стор для вуе и попадает в вуекс и пинию.
Т.к. чтобы тебе нравился оператор свитч надо быть абсолютно бахнутым сумасшедшим то выбор попадает на пинию.
Глобальная реактивная переменная в вуе создаётся одной функцией export store = reactive({})
В реакте чтобы так сделать надо попердолиться а в вуе искаропки.
>>60571
Могу предположить что когда они писали блоатваре который не нужен и ничего не делает, они создали сами себе проблем и решили их так.

>часть паттерна


Этот паттерн называется глобальная переменная.
48 3260585
Блять. С фронтендерами невозможно паттерны обсуждать. Они возьмут частный пример из своей любимой библиотеки и будут противопоставлять это общему паттерну.
В вуе реактивные объекты под каптом. Реактивность отслеживает изменени зависимых переменнх, т. е по сути является интерфейсом доступа к реактивному состоянию. Это не просто переменная жс, доступ к которой ты вынужден сам контролировать.
49 3260598
>>60583
«Глобальная» переменная в реакте создается с помощью useState, сторокал не нужен
50 3260599
>>60598
пиздец
51 3260601
>>60599
А то. У любителей навернуть энтерпрайзных абстракций случается шок, когда оказывается, что жс можно использовать не наворачивая тонн их привычного говнеца, которое они притащили с собой из прошлого.
52 3260605
>>60601
А useState это не то, о чем речь, когда ты делаешь парент компонент с огромным огромным огромным объектом состояния? Тоже самое. Только кривая лапша из useState и useEffect. Плюс в глубокие дочерние компненты надо колбеки пропихивать через пропсы, количество которых растет лавинообразно
53 3260630
>>60598
А useContext зачем тогда?
54 3260638
>>60630
useContext - для проброса переменной, созданной через useState
55 3260655
>>60534
Не пизди. У нас продукт с более 300к ежедневных пользователей, стейт менеджерами не пользуемся, а из мест в которых они были выпилили. Но у нас ангуляр с DI и rxjs, поэтому можно аккуратно разбивать на сервисы и изолировать состояние, а не прибегать к глобальным переменным в виде стейта. Анон все верно говорит, проблема этих менеджеров в очень хуевой инкапсуляции, ты модешь модифицировать стейт из любого места программы и это считается нормой, поэтому и приводит к багам которые трудно дебажить и говнокоду уровня спаггети
56 3260659
>>60551
Нет, мне проще делать один источник истины, а не пилить костыли вида "ну пусть их будет сотня, я просто сделаю глобальную переменную, которая бужет на UI отображаися после того кск вся сотня заэмитит значение"
57 3260664
Самое нелепое это то что возможность добавления сайд эффектов (мидлвар для обработки экшенов) предоставляется как охуенная фича, а не анти паттерн который делает код еще менее предсказуемым. Ну т.е. все это дерьмо с глобальной переменной в виде стора, с сайд эфыектами в виде мидлвара их создатель может защитить только высером "ну так делать не надо, это плохо, делай хорошо и будет хорошо, хоть это сделать и сложно". Сама концепция целиком состоит из антипаттернов, но макаки съели и молятся на фотку наркомана даньки.
58 3260666
>>60659
Но источник истины ты как-то должен обновляться? Иначе какой в нем смысл? Вот ты из всех виджетов эмитишь в него значение. Заметь слов эмитишь, а не переписываешь его прямо.

У тебя есть сервис в ангуляре инкапсулирующий состояние в BehaviorSubject. Сабжект подписывается на другие измнения или в методах сервиса вызывается next(state) на сабжекте.
59 3260673
>>60664
Бекендеры жуют мидлвары и не возмущаются. Мидлвары это не антипаттерн. Подходит для реализации Cross-cutting concerns. У тебя приложуха на экспресе. Тебе везде в каждой ручке надо авторизоваться - распарсить JWT и проверить его валидность. Это легче сделать в мидваре. Хочешь логировать запросы - в мидваре. И тп
60 3260741
>>60673
Ты бэкендер? Зачем ты это вообще высрал? При чем здесь пайплайн мидлваров в бэкенде и работа со стейтом на фронте? В бэкенде это трансорфмация не стейта, а одного куска данных в единицу времени, например запрос к которому ты добавляешь нужные заголовки, ты не будешь потом этот запрос сохранять и получать к нему доступ из разных мест как в приложении с UI, он уйдет и на его месте появится совершенно другой запрос. В этой цепочке отсутствуют мутации уже существующего стейта, в то время как в твоем говноредаксе это норма, ты можешь по пути мутировать какой-то совсем левый стейты, ну просто потому что тебе так посчиталось удобным, в бэкенде ты просто этого делать не будешь, потому что работаешь с конкретным запросом, а не глобальным стейтом.
61 3260745
>>60666

>Но источник истины ты как-то должен обновляться?



Да, он слушает подписывается на нужные события и обновляет стейт, это и есть инкапсуляция, принцип инверсии зависимостей, сервис знает как работать со стейтом, когда его обновлять, он дает только доступ к его чтению, его запись полностью под контролем этого сервиса.
62 3260748
>>60741
Так не делай такого. Мидлвары для общих действий. В экспресе ты тоже можешь накосячить в реквесте как хочешь. Он не инкапсулированый как и любой обжект в жс.
63 3260749
>>60745
Редюсер тоже знает как работать со стейтом. А стейт обновляется акшенами. Главное что мы вынесли из компонентов как источник истины не только глобальную переменную состояния но и поведение.
64 3260756
>>60748
Ты работаешь с разными видами данных на бэкенде, у тебя на бэкенде нет UI и связанного с ним стейта. Тебе просто в голову не придет обновлять какой-то рандомный счетчик, в ответ на какое-то совсем не относящееся к нему действие, а в реакте со сторами такое сплошь и рядом, просто потому что макаке показалось это удобным в какой-то момент времени, теперь он правда уже сам не помнит почему.
>>60749
Твой редюсер это глобальная переменная которая синхронизирует чтение и запись, всё. Нет сокрытия доступа к записи, нет разделения на сервисы которые знают как и когда делать запись, все упирается в

>Главное что мы вынесли из компонентов как источник истины не только глобальную переменную состояния но и поведение.


и в

>Так не делай такого.


Т. е. в какие-то мантры вида "мы просто делаем все правильно, это же очевидно как надо делать" о чем и писалось выше, по итогу получаем нерасширяемый, неподдерживаемый код макак, которые кнопку добавлять могут месяц, а потом отлаживать связанные баги еще полгода.
65 3260764
Да что тут говорить, проиграл в голос когда на стэковерфлоу увидел ответ, внимание, от самого Дэнчика, который расписал простыню на тему "так делать не надо, предполагается что ты делать будешь вот так, и вот почему ...". Это же один из первых признаков говнодизайна - неочевидность того как пользоваться, возможность пользоваться разными способами, при этом правильный будет только 1 из 100. Самому "дизайнеру" приходится бегать с горшком в одной руке и платочком в другой, ведь пользователи его поделия постоянно срут под себя и пускают слюну.
66 3260765
>>60756
Ну так мидлвары Абрамов сделал, чтобы санки запилить (redux thunks это вроде его мидлвар), а не стейт произвольно менять. Стейт меняется через акшены. Это правило. Причем здесь криворукость макаки? Я в ангуляре тоже могу запутать все стримами как паутиной, без всяких инкапсуляций.
67 3260784
>>60765
Стейт меняется через акшены. А redux thunks с чем работает, не с акшенами? Ой, что тут у нас, неявное изменение стейта? Я не в мидлвар его изменил, это всё экшон!! Супер удобно, спасибо!

> Я в ангуляре тоже могу запутать все стримами как паутиной, без всяких инкапсуляций.


А кто тебе даст? У тебя есть строгая архитектура, у тебя нет глобального стейта и пуканья экшенами из любого места которое тебе приглянется. Это тоже хорошее отличие, без сторов и редаксов ты сразу можешь сказать "'этот чел написал хуйню", с ним ты разве что подумаешь "ну вроде это норма, все так делают", а то что чел напиал хуйню ты узнаешь только когда это до пользователей дойдет и они не по хэппи патс пойдут.
68 3260816
>>60784
То есть ты говоришь что pushActionToGlobalStore({ actionName: "setVariable", variableName: "a", value: 1 }) вместо store.a = 1 снимает у трясунчика анальника тряску. Он сразу видит что это код серьезный и ломает что-то. Я тебя услышал. Так же как dangerouslySetInnerHTML
70 3260827
>>60816
Ну да, другого ведь макакену не дано, он только с глобальным стейтом работать умеет, при этом если его спросить хорошо это или плохо, он скажет плохо (потому что на курсах так сказали).
Для работы со стейтом нужна архитектура, а не глобальные переменные, запомни это, сычушь. Тогда и проблем не будет из-за того что у тебя диспатчится сотня экшенов и разных мест и мутируетсяя весь стейт в разных сагах, потому что они эти экшены слушают.
71 3260882
>>60827
Дефайн архитектура.
72 3260909
Про пыню сам автор пыни писал, что всякие флуксы-хуюксы не нужны. Типа можешь менять переменную состония откуда хочешь без всяких акшынов.
73 3260943
>>60882
Явное направление зависимостей.
74 3260961
>>60943
Направил все зависимости в глобальный суперстейт...
75 3260975
>>60943
Дефайн зависимость.
76 3260977
>>60943

>pushActionToGlobalStore({ actionName: "setVariable", variableName: "a", value: 1 })


>store.a = 1


Ты же понимаешь что направление у этих двух примеров ровно одинаковое. Разница только в том что первое это какашечка которую ты удерживаешь.
77 3260988
>>60909
Так пыня тоже не нужна. Она не делает ничего.
78 3260991
Вам че в субботу заняться нечем что сидите весь день сретесь по этой хуите? Пошли бы отдохнули, погуляли на свежем воздухе, книжку почитали
79 3261010
>>60977
А при чем здесь эти два примера, дауненок? То что ты там с кем то про разновидность глобального стейта переписывался и споришь о вкусах говна, не значит что я делал выбор в пользу какого-то из них. Я в целом сказал, что все эти редаксы-хуяксы сделаны наркоманом на коленке, который не понимает что такое правильная архитектура приложения, а также не знает базовых принципов проектирования.
>>60975
Иди книжки по архитектуре почитай, там тебе все определения дадут и разжуют.
80 3261014
>>60977
В первом случае ты выносишь логику в редусер
Во втором случае у тебя логика изменения store.a по компотентам размазана.

Предположим у тебя в одном компоненте a+=1, а в другом a+=2 и предположим у тебя завелся баг из-за баблинга: из-за первого происходит обновление второго компонента ( ты пока об этом не знаешь, тебе тестировшик отправил баг). Ты ожидаешь a = 1, но видишь что a = 2.

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

Во втором случае ты ставишь брекпоинты в редюсере везде, где обновляется store.a Ты сразу поймаешь какой акшен срабатывает первым, а какой вторым. Мало того у тебя в девтоуле реакта есть возможность в откатится по истории и повторить дебаг
82 3261018
>>61014
слоу фикс

В первом случае ты ставишь брекпоинты в редюсере
Во втором случе ты рыскаешь
83 3261021
>>60991
Девчоку в кафэшку сводили бы. Пробзделись.
84 3261023
>>61021
Пробсдется нужно прямо при девочке в кашешке?
85 3261055
>>61014
Вся суть макак - код строится на попытках предсказать как они будут искать баги, вместо того чтобы предотвращать их появление. При этом о фиксе даже речи не идет, потому что оба случая подразумевают "ну хуй знает, давайте таймаут в одно из мест добавим епта..."
86 3261065
>>61010

>А при чем здесь эти два примера, дауненок?


При том что код делает заведомо одно и то же.

>не понимает что такое правильная архитектура приложения


Ты буквально не можешь дать определение. Потому что в твоем понимании архитектура это сложные названия функций, чтобы ты не трясся.
>>61014

>выносишь логику в редусер


>actionName: "setVariable"


Нет там никакой логики. Это индусский код чтобы больше строчек написать.

>чтобы поставить брейкпоинт в дебагере. Ты даже не знаешь в какой последовательности одно обновление тригерит другое.


Я могу завернуть стор в прокси объект и поставить брейкпойнт там.
87 3261081
>>61055
ебанутся
88 3261090
>>61065

>Нет там никакой логики. Это индусский код чтобы больше строчек написать.


Щас будем отрицать хуевость глобальных переменных?

>Я могу завернуть стор в прокси объект и поставить брейкпойнт там.


И шо? Максимум ты колстек увидишь, а логику продебажить не сможешь.
15547844435090.gif425 Кб, 300x300
89 3261093
Как решить, какие данные положить в стор, а какие в состоние компонента?

Везде пишут два критерия - если данные используются по всему приложению или после размонтирования компонента должны сохраняться, то в стор, иначе в компонент.

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

Или есть ещё критерии, типа сложной логики, централизации управлением и т.д.?

Как?
90 3261110
>>61065

>Ты буквально не можешь дать определение


Я буквально дал определение выше. Ты не способен осилить, не говорю уже книгу по архитектуре, а хотя бы базовые принципы и паттерны разработки приложения, отсюда и непонимание того о чем тебе пытаются сказать. Макака увидела глобальный стейт и теперь нахваливает, потому что толпа других макак подхватила.
91 3261115
>>61093
Изначально наркоман денчик предполагал, что тебе не нужен будет глобальный стор, так как даже он понимал, что это супер хуево. Идея вроде простая, у тебя есть хост компонент, ты в нем используешь useState и дочерним этот стейт устанавливаешь, если нужно что-то от дочернего получить, то оборачиваешь это в функцию и передаешь ее дочернему компоненту, а тот вызывает с нужными данными.
На бумаге вообще заебись, но что на практике? На практике это привело к явлению под названием пропс дриллинг, когда стейт хост компонента нужен не прямому ребенку, а ребенку-ребенка или еще ниже, в итоге ты этот стейт пробрасываешь через n детей для того чтобы использовать только в одном. Вот поэтому пришли костыли в виде редаксов и глобальных переменных (хранилищ).
92 3261131
>>61093
Что здесь непонятного?

Сделал запрос к апи, получил список продуктов например, обработал json, конвертировал, положил в стор. Наоборот создал новый продукт - добавил в стор. Юзаешь сторонний sdk? Например телеграмовский sdk. Ты получил список каналов. Там 100500 разных полей. Тебе нужно только 5 полей. Отфильтровал, сохранил в store.

Стейт нужен когда у тебя что-то простое. Например отправляется форма. Ты ставишь isLoading true. Или у тебя какие-нибудь фильтры например. Юзер выбрал фильтр по цене и это нужно где-то фильтр сохранить.

А без стейта можно обойтись когда у тебя расчёты на лету. Допустим, тебе надо продукты сгруппировать по месяцам и выводить. Тогда можно просто делать products.map(product => ...тут делаем массивы по месяцам и выводим на фронт) не обязательно сохранять куда-то
93 3261153
>>61090

> Щас будем отрицать хуевость глобальных переменных?


Да, в них нет ничего хуевого.

> И шо?


И задача поставить брейкпойнт в месте изменения переменной выполнена.

>Максимум ты колстек увидишь, а логику продебажить не сможешь.


Потому что ты скозал?
>>61110

> >Ты буквально не можешь дать определение


> Я буквально дал определение выше.


Не в силах пояснить за первый базворд ты пукнул вторым.
94 3261176
>>61153

>базворд


Ну да, для селюка который первый раз книгу открыл всё что в ней написано это набор базвордов, что и требовалось доказать, типичная макака.
95 3261245
>>61131

>Сделал запрос к апи, получил список продуктов например, обработал json, конвертировал, положил в стор.


Положил в стейт компонента, который этот список вырисовывает. Размонтировался компонент- списка нет и не надо возиться с очисткой1 стора.

>Наоборот создал новый продукт - добавил в стор.


Создал продукт - отправил запрос на бэк. Обновил список, вернув новые данные с бэка. Иначе можно добавить продукт на фронте, когда на бэке ошибка и ничего не добавилось.
96 3261268
>>61245
Ой бля, там куча тонкостей.

А что если я хочу показывать скелетон во время загрузки?
А что если я хочу сделать пагинацию продуктов?
А что если мне надо добавлять id token к каждому запросу?
А что если мне надо кешировать список продуктов?
А что если я хочу обновлять список каждые 10 секунд?
А что если я хочу конвертировать время из апи в вид "продукт добавлен два часа назад"?
А что если мне надо обновлять подсвойство а-ля "сейчас продукт смотрят два покупателя"?
...

КОРОЧЕ!
В стейте компонента хранить можно!
Но это будет длинная лапша в стиле if (api.status === 400) {showToast('не могу получить товары!')} else {setData(transformResponse(api))}

Весь смысл стора - это убрать нахуй всю логику в редюсер. Чтобы на фронте осталась одна разметка. Я вывел только products.map() и всё.

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

В общем, ничего критичного не будет, просто некрасивое решение, с миллионом стейтов. Лучше просто взять редакс, замутить стор и редюсеры c логикой.
97 3261269
>>61268

>Но это будет длинная лапша в стиле if (api.status === 400)


Что тебе мешает это вынести в отдельную функцию, которая о компоненте ничего не знает, но при этом умеет обрабатывать ответы?
98 3261280
>>61269

>Что тебе мешает это вынести в отдельную функцию


Ну я же говорю в десятый раз, это будет просто 100500 маленьких утилиток смешанных с десятком стейтов. Куча мала. Можно вынести transformResponse, добавить туда setIsLoading, setData и всё прочее и всё это замемоизировать. Но решение будет говно.

Моё решение:
- Данные отдельно
- Логика отдельно
- Презентация - чистый хтмл код не засранный логикой

Твоё решение:
- Смешать логику и данные
- Посадить это всё в useEffect
- Разнести логику в миллион маленьких утилит
- Замеизировать каждый чих, иначе это будет постоянно ререндериться
99 3261291
>>61176
Это у программистов профессиональная привычка сказать какой-нибудь базворд чтобы от него отъебались, подумали что он умный и т.д. Поэтому они их постоянно говорят.
100 3261292
>>61268
>>61280

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


> А что если я хочу сделать пагинацию продуктов?


> А что если мне надо добавлять id token к каждому запросу?


> А что если мне надо кешировать список продуктов?


> А что если я хочу обновлять список каждые 10 секунд?


> А что если я хочу конвертировать время из апи в вид "продукт добавлен два часа назад"?


> А что если мне надо обновлять подсвойство а-ля "сейчас продукт смотрят два покупателя"?


Это все логика или это все отображение?
101 3261293
Логика и отображение это базворды между прочим.
102 3261382
Приходишь на собес, тебя начинают спрашивать про SOLID, паттерны проектирования, системный дизайн, а ты просто отвечаешь "это все базворды, просто складывайте всё в глобальный стейт" - личрали каждый юзер стейт менеджеров.
103 3261392
Где та линия, по которой проходит граница, когда нужно класть в стейт компонента, а когда в стор?
104 3261400
>>61382
Ну солид - реально баззворд. Когда ты в последний раз, крася очередную кнопку, думал: «А не нарушаю ли я принцип подстановки Барбары Лисков?»
105 3261426
>>61392

>Где та линия, по которой проходит граница, когда нужно срать в унитаз, а когда в сортир?

106 3261431
>>61382
С чего бы? Стейт менеджер не идеальная штука, но чисто по SOLIDу
SRP - делегируешь логику стейта из компонента в стейт менеджер. Компонент отвечает только за функцию отображения
DIP - Компонет не зависит от стейт менеджера, только от его интерфейса. Стейт менеджер легко заменить например на инстанс для юнит тестирования.
OCP - Норвую логику ты добавляешь в стейт менеждер, а в компотненты только акшен. Таким образом у тебя код расширяется не приводя к модификации (существенной) частей завищих от этого кода
107 3261452
>>61431

>Компонент отвечает только за функцию отображения


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

>делегируешь логику стейта из компонента в стейт менеджер


Даже в треде появился человек, который не понимает где у него стейт должен быть, сразу пошли какие-то разнотолки уровня "да это же очевидно епту", нет, чел, это не очевидно, потому что SRP нарушен. В компоненте он нарушен потому что компонент может как держать свой стейт, так и изменять глобальный стейт в стейт менеджере. В стейт менеджере он нарушен потому что стейт не только там хранится, но и меняется, при этом что такое стейт? Это стейт какого-то одного компонента? С твоих слов выглядит так, но на деле это глобальный стейт и не только компонентов, а вообще всего что душе угодно, любое место может пукнуть в этот стейт, а он должен знать как его сохранять и обрабатывать, где ты тут SRP видишь? Тут n ответственностей, где n это количество пукающих в твой стейт менеджер ака глобальную переменную.

>только от его интерфейса



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

>OCP - Норвую логику ты добавляешь в стейт менеждер, а в компотненты только акшен


>только акшен


Ну т. е. всё таки не клозед? Всё таки открыть надо? Еще и подебажить, пару костылей вставить в компонент. И почему у тебя новая логика в стейт менеджер добавляется, у него же SRP, какая нахуй логика компонент? Ах, да, ну это не только стейт, это еще всякая бизнес логика, а также юай логика, удобно когда все в одном месте! OCP это когда при добавлении новой логики ты не меняешь старый компонент, а добавляешь новый компонент расширяя старый (наследование), либо используя его в новом компоненте (композиция).
107 3261452
>>61431

>Компонент отвечает только за функцию отображения


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

>делегируешь логику стейта из компонента в стейт менеджер


Даже в треде появился человек, который не понимает где у него стейт должен быть, сразу пошли какие-то разнотолки уровня "да это же очевидно епту", нет, чел, это не очевидно, потому что SRP нарушен. В компоненте он нарушен потому что компонент может как держать свой стейт, так и изменять глобальный стейт в стейт менеджере. В стейт менеджере он нарушен потому что стейт не только там хранится, но и меняется, при этом что такое стейт? Это стейт какого-то одного компонента? С твоих слов выглядит так, но на деле это глобальный стейт и не только компонентов, а вообще всего что душе угодно, любое место может пукнуть в этот стейт, а он должен знать как его сохранять и обрабатывать, где ты тут SRP видишь? Тут n ответственностей, где n это количество пукающих в твой стейт менеджер ака глобальную переменную.

>только от его интерфейса



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

>OCP - Норвую логику ты добавляешь в стейт менеждер, а в компотненты только акшен


>только акшен


Ну т. е. всё таки не клозед? Всё таки открыть надо? Еще и подебажить, пару костылей вставить в компонент. И почему у тебя новая логика в стейт менеджер добавляется, у него же SRP, какая нахуй логика компонент? Ах, да, ну это не только стейт, это еще всякая бизнес логика, а также юай логика, удобно когда все в одном месте! OCP это когда при добавлении новой логики ты не меняешь старый компонент, а добавляешь новый компонент расширяя старый (наследование), либо используя его в новом компоненте (композиция).
108 3261460
>>61452
Да солид это не 9 заповедей.
1) Инпуты буду диспатчить. Инпуты это часть ответственносити UI. А отправка запроса, обработка данных, другая логика - нет
2) Кто тебе мешает интерфей выделить Если помнишь в тайпскрипте структурная типизация. Компонент от этой лабуды не зависит. Это чистая функция с аргументам в виде пропсов. Ты ее можешь из отдельно файла импортировать в файл компонента и в файл теста.
3) Покажи использование OCP где ничего не редактируется. Не надо так глупо трактовать этот принцип. Может только где нибудь спринге ты в хмл конфиге новую зависимоль прописываешь и она подхватывается и что-то там меняет в контейнере. В общем слуае OCP такого не требует. Вот если бы ты размазал логику по нескольким компонентам и каждое изменение затрагивало несколько компонентов, то тогда это нарушение OCP. В простм случает ты добавляешь в редьюсере в свитч еще один бранч с акшеном и обавляешь акшены в компоненты, а не лопатишь их логику useEffect по всем компонентам.
109 3261463
>>61460
И да ты заебал. Я фулстек на ангуляре. На реакте я не пишу давно мне на него насрасрать в высокой колокольни.
110 3261465
111 3261502
>>61463
почитал ваш срачь
нахуй вас и фронтенд ваш
ебанутые
лучше пойду токарем на завод
чем поеду кукухой как вы
112 3261512
>>61502
у
тебя не
было шанса
вкатитсья потому что ты
пишешь как залетный уебан из вконтакта
с 50 iq
113 3261527
>>61512
залетный? т.е. завсегдатай сосача > завсегдатая вкудахте/пикабу? ухахаха
вкатился тебе за щеку, пес.
труЪ пацаны делают лаве и прут тяночек. неважно, чем занимаешься по жизни при этом - точишь детальки или фронтенд пилишь.
никчемные мудачьки спорят о какой то хуете по двое суток, на кой то хер доказывая свою правоту такому же еблану. холиварить - удел бездельников диванных. для всех остальных без задач.
пиздуй кнопочьки рисовать дедлайн горит, а то уволят и наймут индуса на твое место.
image.png29 Кб, 1545x820
114 3261532
>>61392
Нарисовал на схеме. Если переменная относится к контенту и хедер про неё ничего не знает тогда оставляй там. Если это например юзер (ты) который и в хедере и в контенте, то он глобальный.
115 3261535
>>61527
пук
116 3261538
>>61535
слабый аргумент
где же твой iq > 50 ?
117 3261540
>>61538
я даже не
читал
твой высер
потому что
ты продолжаешь
писать как уебан
118 3262034
Есть ли какой-то способ гарантированно узнать, что функция вызвана как тэг строки шаблона? Или только по косвенным признакам определять, типа первый аргумент это массив и т.д.?
119 3262035
>>62034
сделай две функции, додикс
120 3262037
>>62035
Вся суть в том, что нужен один прокси-объект для любых вызовов. Делаю что-то вроде жиквери-хуйни.
121 3262049
>>62034
Что такое тег строки шаблона я должен по кофейной гуще догадаться?
122 3262053
>>62049
ты и не знал про такое, если спрашиваешь
https://wesbos.com/tagged-template-literals
123 3262054
>>62037
ну тогда тебе пизда, потому что жс динамикодрися
Обкручивай то что передаешь в классы, а не передавай в свое апи жс примитивы. Ты можешь раздеть сущности
1) апи что принимает обект и делает полезнуб работу
2) конструкторы обектов, теги для строк возвращаюшие обекты
124 3262057
>>62053
А функции причем?
125 3262058
>>62054

>раздеть


разделить
126 3262061
>>62057
лол

мимо
127 3262065
>>62037
Кому нужен? Чем пользователю будет удобней иметь одну функцию которая может использоваться как тэг и просто как функция, вместо двух функций одну с суффиксом tag другую без него?
128 3262109
>>62065
Чем пользователю будет удобнее просто $ вместо $ и $tag?
129 3262130
>>62109
Тем что он по коду сможет найти место с тегами и место без. В целом код будет читаться лучше, когнитивная нагрузка меньше. Буквально такая же проблема как у того кто это говно сделал - непонятно как отличать. Поэтому чтобы этой проблемы не было, нужно разделять на функцию-тег и просто функцию.
130 3262256
>>62034
Все нормальные популярные библиотеки проверяют так:
if (!Array.isArray(parts.raw) || !Object.isFrozen(parts.raw)) {
throw new InvalidInputError('Function must be called as a template literal.');
}

где parts это первый аргумент твоей функции (TemplateStringsArray)
131 3262258
>>62256
понил! неплохо
132 3262352
Можно стрелочную функцию использовать как ловушку внутри прокси-объекта? Если мне получаемый this не нужен, ничего не сломается?
image.png165 Кб, 1333x989
133 3262498
Ласковый хайр 16 лет назад:
134 3262602
React, next, nest, ts и всякое разное сверху типа orm и либ реакта. Уже можно искать РАБоту, или стоит еще что доучить?

Знаю что один хуй ничего не найду, но не сидеть же без дела. Давайте думать блять, подсказывайте.
135 3262661
>>62602
Пчел, без нейросетей вкат всё.
136 3262711
>>62602
вкат все - разворачивайся. даавай до свидули
137 3262802
>>62661
>>62711
Посмотрите на этих надменных хуесосов сидят ебало воротят, вкатились несколько лет назад когда из требований кабанчика было знание html и css
138 3262813
>>62802
Прежде всего ты знаешь, что:

> когда из требований кабанчика было знание html и css


- это не правда. Пару лет назад вкат был таким же тяжелым. Вкат был легким до 19г. А сейчас все: Ии, школота с уников и АйТи пузырь который лопнет. Вкат закрыт. Au revoir
139 3262860
>>62802
Вкатился в 2к7. Требований, вообще, никаких не было.
Английский со словарём? Вы приняты!
140 3262995
>>62602
Расскажи про макротаски и микротаски и в чём их различие. Стандартный вопрос на собесе.
141 3263055
>>62995
Define макротаски
Define микротаски
142 3263067
>>63055
Макротасков нет, их тасками обычными называют (слово макротаски вроде разрабы ангуляра используют), слово микротаски в стандарте есть (лень там искать). В доке мозилы https://developer.mozilla.org/en-US/docs/Web/API/HTML_DOM_API/Microtask_guide/In_depth

мимо
143 3263107
>>63067
Как ты вообще до этого дошел?

>When greetUser() calls localGreeting(), another context is created to run that function. When this function returns, the context for localGreeting() is removed from the execution stack and destroyed.


Ты это понимаешь? Я английский очень долго дрочил я нихуя не понимаю. Что такое this и что такое that?
144 3263146
>>63107
Шо там понимать челлл

let user = 'Вася'

function greetUser(word) {
__function localGreeting(delimeter) {
____console.log(word + delimiter + user)
__}
__localGreeting(', ')
}

greetUser('Здарова')

// Здарова, Вася

1. Сначала на полочку кладется контекст 1, назовем его GLOBAL.
В нем объявляются 2 переменные, GLOBAL.user и GLOBAL.greetUser.
Потом вызывается greetUser.

2. Создается контекст 2 и кладется сверху на полочку, назовем его GREET_USER
В нем объявляется 2 переменные, GREET_USER.word и GREET_USER.localGreeting
Потом вызывается localGreeting.

3. Создается контекст 3 и еще раз кладется сверху на полочку, назовем его LOCAL_GREETING
У этого контекста объявлена 1 локальная переменная, LOCAL_GREETING.delimiter.

Код этого контекста выполняется по порядку, и сначала ему нужно получить некие переменные word, delimiter, user.

Окей, он смотрит, delimiter - локальная переменная, равная ', '. Берет ее.
Локальной переменной word нет, он проваливается вниз по полочке, где лежат наши контексты, и находит ее там. Это штука, равная 'Здарова'.
Локальной переменной user тоже нет, он проваливается вниз в "родительский" контекст, там тоже нет user. Идет еще ниже - и наконец находит там юзера, равного 'Вася'.

Все, у контекста LOCAL_GREETING есть все переменные. Он делает консоль лог и грохает сам себя.
Контекст GREET_USER тоже все сделал, и грохает сам себя.
И наконец контекст GLOBAL тоже.

Когда GLOBAL себя грохнул, движок V8 получает ивент, мол, полочка пустая. У этого ивента калбек - посмотреть, нет ли микротасок в евент залупе. Если есть - кладет первую в очереди опять на полочку.
144 3263146
>>63107
Шо там понимать челлл

let user = 'Вася'

function greetUser(word) {
__function localGreeting(delimeter) {
____console.log(word + delimiter + user)
__}
__localGreeting(', ')
}

greetUser('Здарова')

// Здарова, Вася

1. Сначала на полочку кладется контекст 1, назовем его GLOBAL.
В нем объявляются 2 переменные, GLOBAL.user и GLOBAL.greetUser.
Потом вызывается greetUser.

2. Создается контекст 2 и кладется сверху на полочку, назовем его GREET_USER
В нем объявляется 2 переменные, GREET_USER.word и GREET_USER.localGreeting
Потом вызывается localGreeting.

3. Создается контекст 3 и еще раз кладется сверху на полочку, назовем его LOCAL_GREETING
У этого контекста объявлена 1 локальная переменная, LOCAL_GREETING.delimiter.

Код этого контекста выполняется по порядку, и сначала ему нужно получить некие переменные word, delimiter, user.

Окей, он смотрит, delimiter - локальная переменная, равная ', '. Берет ее.
Локальной переменной word нет, он проваливается вниз по полочке, где лежат наши контексты, и находит ее там. Это штука, равная 'Здарова'.
Локальной переменной user тоже нет, он проваливается вниз в "родительский" контекст, там тоже нет user. Идет еще ниже - и наконец находит там юзера, равного 'Вася'.

Все, у контекста LOCAL_GREETING есть все переменные. Он делает консоль лог и грохает сам себя.
Контекст GREET_USER тоже все сделал, и грохает сам себя.
И наконец контекст GLOBAL тоже.

Когда GLOBAL себя грохнул, движок V8 получает ивент, мол, полочка пустая. У этого ивента калбек - посмотреть, нет ли микротасок в евент залупе. Если есть - кладет первую в очереди опять на полочку.
image.png147 Кб, 1058x974
145 3263147
>>62995

>макротаски и микротаски


Отвечаю:
- Я досконально изучил движок JavaScript и фактически перенял его принцип работы, и планирую руководствоваться им на рабочем месте.

Middle+ JavaScript Developer
146 3263165
>>63147

>Кантор


Кто такой этот Кантор и каков его вес за пределами ру сектора? Почему на него шликают в ру?
147 3263184
почему undefined вместо нормальных строк при использовании i18next? в консоли ошибок нет
148 3263321
>>63165
не нравится кантор, есть mdn. не нравится mdn наслаждайся ECMAScript® 2025 Language Specification
149 3263370
>>63184
Потому что где-то функция вернула undefined.
150 3263947
>>62602
Перечисленный тобой стек это самая база для фуллстека, с точно таким же и работаю. Хз как сейчас выкатиться не рисуя 3 года опыта. Может через стажёрство в крупных компаниях.
image.png144 Кб, 320x672
151 3264131
Чья мама?
152 3264133
>>64131
Очередное доказательство что фронты пидорасы
153 3264326
>>64131
Не узнал свою?
154 3264353
Почему браузеры не поддерживают дробные значения для размеров? В фигме мне нарисовали рамку толщиной 0.25, и что мне с этим делать?
155 3264505
>>64353
transform: scale(0.25)
156 3264532
>>64133
По моему опыту в айти, самые пидорасы это всегда девопсы.
157 3264533
>>64353
Ты долбоеб?
354354345.jpg46 Кб, 600x449
158 3264571
>>64532
Двачую
159 3264642
>>64532
>>64571
Почему девопсы? По-моему самые пидорасы это не только про специализацию, а ещё и про стек. Повышенное количество пидорасов наблюдается в датасаенсе и машинлёрнинге, среди бекендеров на руби и немейнстрмных языках (скала, эликсир, раст...), среди мобильных разрабов, особенно когда пишут под ios.
160 3264645
>>64642
потому что везде, где я был девопсы были чсвшными красноглазыми чмошниками, которые ставят себя выше других только потому, что знают наизусть команду как посмотреть логи сервиса systemd и умеют тыкаться в гуй кубернетеса или его заменителя.
161 3264661
Напомните плиз либу, которая эмулирует девтулзы (консоль в частности) внутри DOM. Пытаюсь в гугле найти, но не могу. От меня как обычно - тонны нефти.
162 3264662
https://github.com/liriliri/eruda нашел на 7 странице гугла
163 3264783
я фронт. подскажите плз ресурсы по изучению graphql. мне известено: оф сайт graphql, туторы из apollo. этого хватит или стоит прочитать какую-нибудь книгу?
164 3264805
>>64783
graphql это залупа из фейсбука для умственно отсталых, фронтов, да. Какая еще книга?
165 3264808
>>64805
ооо, дай угадаю, наверное ты тот самый человек, который топит за ангуляр и ненавидит реакт?
166 3264810
>>64808
Чини детектор
167 3264887
>>64783
Зачем тебе это неюзабельное неудобное говнище? Разработчики в последние годы всё больше отказываются от использования этой мертворождённой технологии.
168 3265262
>>64808
Но ведь гкл внатуре говно.
169 3265414
>>62813
Вообще много васьков с завода свою жизнь тратят на изучение хуйни типа setinterval и как он в ивент залупе паткапотом работает? Хули им еще надо? Какие то реакт, редакс, флякс, хуякс, коммерческий опыт блядь, нест, гит, базы данных, проекты блядь резюме. Я бля 8-9 месяцев на изучение этой хуйни потратил, извольте на сРАБотку взять и за ручку первые полгода-год провести, очко у ваших ждунов илитариев от этого не выпадет. Капец кабаньё охуело, ебаный срыночек
170 3265479
>>65414
таблетки
171 3265576
мне кажется мы, фронты, в основном чеды. аргументы против?
172 3265621
>>65576
Если ты по наитию красишь кнопки так, что все девки текут, то бесспорно.
a1fcd90615565c23c6d3cf4a43500cab.jpg68 Кб, 1000x663
173 3265698
Есть какие-то дебаггеры с расширенным функционалом чем встроенный в хроме?
Суть такова, что есть например 55к строк js-кода, которые работают на сайте. И дрочиться выискивать одну переменную, особенно если её ещё шифруют всякими криптоалгоритмами постоянно оче тяжко, а если весь этот прикол еще обфусицирован, это вообще финиш.
Есть такая фича можно вставить лог на переменную и при запуске скрипта получить все значения, но опять же это геморно. Не понятно почему до сих пор нет ничего чтобы логировало все значения переменных и вставляло значения в код закоментированными.
Или например вообще имба была бы если бы запускал какой-то кусок например логина на сайт и вот из кода 55к строк на выходе было бы закоменченно всё что не работало при входе на сайт. Это была бы сказка, как бы сузилась область поиска.

Где вообще искать нечто подобное если стандартные средства хрома куцые для таких задач?
174 3265762
>>65698

>а что такое сурсмапы?

175 3265913
Прохожу freeCodeCamp, кто может сказать, нужна ли мне вообще эта хуйня для становления фронтенд-господином? Или лучше тудушку идти полировать.

https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures-v8/learn-intermediate-oop-by-building-a-platformer-game/step-80
176 3265962
>>65913
Не нужна
177 3265965
>>65913
Нужна
178 3266008
>>65962
>>65965
Спасибо
179 3266133
>>65762

>а почему вы мне сурс мапы на прод не упаковали?


И правда.

мимо
180 3266170
>>65913

>Вкат во фронтенд


>2025


Лол!
181 3266178
>>66170

>2025


В смысле, я на 2026 нацелился.
182 3266261
Куда на рынке делись все фронтендеры сеньоры? Уже пол года не можем нанять, а те, кто приходят просят 500к+ оклад. Неужели все съебались из РФ?
183 3266263
>>66261

>Куда на рынке делись все фронтендеры сеньоры?


Они есть, вы им отказываете по нищете
184 3266265
>>66263
Есть "сеньоры", которые даже не знают, что такое сентри. Норм синек нихуя нет.
185 3266273
>>66261
Какие требования?
186 3266278
>>66273
Быть помидором, т.е. уметь что-либо серьезное помимо верстки кнопок.
1725642422069.jpeg45 Кб, 900x787
187 3266285
Нужно сверстать элемент как на пике. Суть - слева список контейнеров, состоящих из картинки и текста, справа большое изображение. Контейнеров может быть произвольное количество, выравниваются они по центру. Как такое реализовать? Пик немного не точен на самом деле, у круга должно юыть выравнивание по нижнему правому краю.
188 3266290
>>66265
Ну я знаю что такое сентри.
Но ты ведь тогда спросишь что такое grub, я скажу что такое grub, ты спросишь в чём разница между setImmediate и process.nextTick, я отвечу, ты спросишь, как называлось дефолтное событие внутри v-modal до третьего Vue, я отвечу, ты спросишь разницу между __proto__ и [[proto]].

Это называется "зажрались". Это hr-вариант поиска принца на белом нуксте.
189 3266292
>>66133
Если это твой прод, иди воспроизводить в тесте.
Если чужой - хуле ты там забыл?
190 3266302
>>66261
Во фронте (не зарубежном офк) есть 500к зарплаты?
191 3266329
>>66302
Да просто грех не потроллить мудаков, которые отбрасывают кандидатов из-за sentri, которая учится в обеденный перерыв.
192 3266338
>>66290

>ты спросишь в чём разница между setImmediate и process.nextTick, я отвечу, ты спросишь, как называлось дефолтное событие внутри v-modal до третьего Vue, я отвечу, ты спросишь разницу между __proto__ и [[proto]].


Нет, я спрошу как бы ты строил архитектуру нового фронтового сервиса и что бы делал, что бы он не падал.
193 3266339
>>66302
Мне максимум 400 предлагали на синьку.
194 3266340
>>66329
Так причем тут учится/не учится? Мне похуй, даже если чел ниразу в жизни им не пользовался, главное что он должен знать, как отлавливать ошибки на фронте раньше того, как их тебе принесет разъяренный продакт или вторая линия техсапа.
195 3266361
>>66340
Ну обмажься тайпскриптом, юнит-тестами и штатом тестировщиков.
Но в достаточно сложной системе достаточно редкие логические ошибки не отловить никак, только десятками лет и миллионами юзеров.
196 3266374
>>66339
Как бы ты учил фронтенд в 2024 с почти нуля?
197 3266386
>>66292
Если бы да кабы. Тупорылый токсик, плез
198 3266412
>>66361

>Ну обмажься тайпскриптом, юнит-тестами и штатом тестировщиков.


Одним тайпскриптом и тестированием сыт не будешь. Что будешь делать, когда на этапе тестирования проблему не выявили, на момент релиза все работало, а потом спустя несколько часов неожиданно полегло? Как от такого будешь защищаться?
>>66374
Я с нуля никогда фронтенд не учил. Планировал изначально вкатываться в эмбед, т.к. имею образование по специальности электроника.
>>66292

>воспроизводить в тесте


А вот не воспроизводится. Что будешь делать?
199 3266419
>>66412

>неожиданно


У каждого факапа есть имя и фамилия. Откатывай на предыдущий билд и кури дифы.
200 3266423
>>66419

>Откат


Ну это да, откатили релиз, нашли проблемный код, починили. Как сделать так, что бы минимизировать вероятность такого факапа в будущем?
201 3266488
>>66412

>а потом спустя несколько часов неожиданно полегло? Как от такого будешь защищаться?


Никак, лол. Разбудить среди ночи программиста-удалёнщика и пусть решает проблему на месте либо советует делать откат.
У меня пет-проект на ноде как-то выдал ошибку спустя почти 10 лет. Интересно, что я считал такую ошибку невозможной и поставил guard expression чисто для красоты. И вот эта строчка сидела без дела 10 лет, а потом хуяк и сработала.
202 3266490
>>66423

>Как сделать так, что бы минимизировать вероятность такого факапа в будущем?


Ты как будто ждёшь волшебного слова, типа "юзай Sentry Pro+ Unlimited". На самом деле тут техпроцесс нужен по особому организованный.
Как в аэрокосмической отрасли: многоступенчатость проверок и проверки проверок. Кросс-ревью кодеров, затем ревью техлида, потом тестовый сервер, потом частичный накат на прод, потом прод. Сбор юзерских отзывов.
Делали так на сайте с историей в 20 лет и миллионной аудиторией, на моей памяти не падали.
203 3266515
Может во время гибернации потеряться переменная, лол?
Включил сегодня утром ноут и, не обновляя открытую страницу, наткнулся на такой баг, который возможен только если бы обнулилось значение одной из ранее заданных в замыкании переменных.
204 3266681
>>66338
Что значит сервиса? Ты охуел? Чтобы "сервис" не падал, существуют SRE и девопсы. Схуяли я должен выполнять их работу? Фронтенд это блядь сбилженная статика либо обыкновенный SSR в ноде. А архитектура на фронте это долбоебизм откровенный, ты же про всякие feature sliced design? Это вредное говно. На фронте достаточно грамотной и логичной структуры проекта и следование бест практисам фреймворков/библиотек, например про правильное размещение стейта в реакте - локальный/глобальный стейт и т.д.
205 3266702
>>66490
Этот бы прошел.
>>66488
>>66681
А эти нет.
206 3266712
>>66261
Я фронтендер сеньор, 7 лет опыта, могу ещё писать бекенд на ноде и го (не на уровне сеньора, конечно, но микросервисы умею), скоро буду искать работу, планировал назвать такие цифры: от 300 минимум, 400 в идеале, думаю 400 найду в итоге. Но у меня перерыв в работе, я довольно долго уже не работаю. Если бы не это, я бы говорил от 400 минимум, или вообще валютную удалёнку искал на $5к и выше.
207 3266713
>>66712
Как бы ты учил фронтенд в 2024 с почти нуля?
208 3266716
>>66702

>А эти нет.


В твою помойку и не собирался проходить. Sentry в любой нормальной контoре юзают, ErrorBoundary в реакте и т.д., а ты несёшь хуйню про архитектуру фронтенд сервиса. Какие сотрудники, такая и компания, я от таких мест держусь подальше.
209 3266728
Чем вам нравится JS? Когда его заменят новым стандартом?
210 3266729
>>66728
Мне не нравится, пишу всё на тс, даже мелкие петики
211 3266792
>>66729
Почему фичи TS тупо не сделают новым стандартом типа ES7? Я нафаня, мне такое не особо стыдно спрашивать.
212 3266959
>>66792
Почему питону без типов нормально? Вот потому же. JS кроме прочего должен оставаться достаточно простым в своей основе, чтобы несложные вещи можно было писать без дрочения интерфейсов.

Вообще, TS своими бесконечными объявлениями мне всё больше напоминает печально известный язык Java. Ещё немного, и у тайпскрипта появится своя Scala и свой Kotlin, кек.
213 3266988
>>66728

>Чем вам нравится JS?


Нормальные бабки плотят
214 3267054
Появилась идея сделать свою либу, замешанную на throw. Это же как goto, вещь с огромным потенциалом.
215 3267067
>>67054
Хочешь чтобы сайты еще больше тормозили? Суть исключений это выбрасывание вычислений в унитаз.
216 3267078
Если я пишу так:

myFunc
("my string")

то я могу быть уверенным, что это сработает на всех браузерах? это часть стандарта, или есть шанс, что какой-то интерпретатор поставит ; после myFunc?
217 3267081
>>67078
Я бы тебя на ревью обоссал.
218 3267085
>>67081
Да ты бы и собаку обоссал
219 3267135
>>67078
Не можешь. В любом случае, твой код пройдет через компилятор и минификатор, который будет решать, как это интерпретировать.
220 3267169
>>67054
Пробуй. Саспенс в рякте полностью вокруг выкидывания организован и работает отлично.
221 3267170
>>66728

>Чем вам нравится JS?


Очень совренменный, простой, с хорошими либами (включая встроаенные и npm) язык. Максимум чего не хватает - нормального многопотока.
222 3267179
>>67170

>многопотока


Эх, щас бы с мьютексами попердолиться.
223 3267205
>>67135
Если до минификации код работал, а после - нет, то грош цена этому минификатору.
224 3267220
>>66728
Нравится тем, что смог в него самостоятельно въехать и освоить. До этого покупал книги по разновидностям Си, и они меня от программирования только отталкивали. Я просыпался ночами в холодном поту и бормотал: public static final constexpr override reinterpret_cast.
225 3267259
>>67220
JS тоже по книгам учил?
226 3267274
>>66959
Тайпскрипт больше напоосинает сишарп. Потому что, сюрприз, у них один создатель.
227 3267275
>>67179
А в голанге пердолятся с мьютексами? Или в C#, джаве, скале? Не особо. В го к примеру почти всегда каналы юзаются. Я вот как и автор поста на который ты ответил тоже больше всего хочу чтобы в жс был нормальный многопоток. Потому что заебало писать отдельные микросервисы на другом языке, мне на жс/тс намного больше всех остальных языков нравится, в идеале хотел бы писать только на нём. И на самом деле далеко на все хайлоадные сервисы необходимо писать на другом языке, большой поток http запросов обрабатываются легко и с низкой задержкой, в этом жс на голову выше остальных скриптовых языков и не так уж сильно хуже джавы/дотнета/го, но с CPU bound тасками случается некоторое дерьмо, которое лучше будет обработать сервисом на голане или даже расте.
228 3267276
Скачал ваш webstorm, создал проект по умолчанию, и при запуске отладки у меня кроме index.html никакие файлы не подтягиваются. Ошибка 404. Как фиксить это дерьмо?
229 3267277
>>67276
Выбросить это "чешское" говно и поставить vscode
230 3267278
>>67277
Стоит уже, хочется полноценную ide. Сидел бы в студии, но она не поддерживает вложенные стили
231 3267279
>>67278
Че за "полноценная ide"? В джетбрейнс-говнище можно только полноценно трахаться с чисткой кэша и перезапуском
image.png296 Кб, 530x550
232 3267290
>>67259
Да, это был 2010, кажется, год.
233 3267303
>>67276
Что-то у меня уже жопа горит от вашего веба. Всё, что мне нужно это открыть веб страницу, на которой запустится скрипт на ts, и мне его нужно как-то отладить. Так я не могу! Я не могу в script указать ts в качестве src, только js, в итоге отлаживать получается только уже скомпилированный сука кода.
234 3267305
>>67303

> что такое sourcemaps?

image.png49 Кб, 566x610
235 3267306
236 3267308
>>67306
Впрочем сейчас наконец получилось все завести. Правда в изначальном проекте, который создал webstorm, у script был аттрибут type="module" и с ним почему-то нихуя не работало, CORS выдавал ошибку. В интернете советовали использовать liveserver, но с ним не работала уже отладка в вс коде.
237 3267309
>>67308
Ну тебе же сказали что он говно
238 3267310
>>67309
Так модули же часть js, почему в вс коде они не подтягиваются?
239 3267322
>>67310
Потому что браузеры говно.
240 3267368
>>67322
А с какой стати браузеры должны уметь новейшее js-говно? Компилируй в es5-бандлы и не выёбывайся.
241 3267454
>>67278
В смысле не поддерживает вложенные стили? Не подсвечивает синтаксис? Звучит как бред. У меня и в дефолтной теме подсвечивает, и в любых других.
242 3267461
>>67454
Ругается на ошибку, и при автоформатировании выравнивает все стили по левому краю.
https://developercommunity.visualstudio.com/t/Support-native-CSS-Nesting-in-Text-Edito/10454267
243 3267498
>>67461
Хз, у меня нету никаких ошибок, а встроенное в вскод форматирование я за 5+ лет никогда не юзал. Все используют prettier + stylelint.
244 3267526
>>67498
При чем тут вс код блять, когда речь о полноценной студии.
245 3267541
>>67526
Последняя нормальная студия была в 2008, прекрати насиловать стюардессу
246 3267630
>>67368
А с какой стати браузеры должны корсами ебать мозги? Просто собирай сингл пейдж шетемеле со всеми стилями и скриптами и распространяй через локалку!
247 3267737
>>67526
Кто в своём уме будет писать фронтенд в студии вместо вс кода?
image.png368 Кб, 729x640
248 3267895
>>66728

>Когда его заменят новым стандартом?


Никогда. Блюдём традиции.
249 3267896
>>67737
Попущенный крестовичок, например.
250 3267946
Как работает код, что ниже?

(function blabla1(){
//ничего не возвращается из функции
})(document, window, "yandex_metrika_callbacks");

Дайте, кто-нибудь, названия книг по js, чтобы полностью разобраться во всем этом ужасе.
251 3268003
>>67946
IIFE
Функция создалась на коленке, функция вызвалась, другой код дёргать функцию больше не может.
image.png14 Кб, 476x211
252 3268005
>>67946

>Как работает код, что ниже?


Обычная самовызывающаяся функция, притом странная какая-то нотация. "blabla1" вообще ни на что не влияет и нигде не остаётся, они могли бы назвать функцию "переходитеНаПродуктыЯндекса". Само слово "function" тоже не нужно, видимо сделано для поддержки IE7.
А вообще, самовызывающиеся функции традиционно используются в JS, когда надо на ровном месте создать изолированный блок, чтобы там сделать что-то, не захламляя окружение переменными. Сам на днях писал пикрил.
253 3268035
>>68005

>blabla1 не влияет


Влияет, можно рекурсивно функцию вызывать
254 3268039
>>68035
Если я правильно понял, о чём ты, есть arguments.callee
255 3268102
>>68039

>arguments.callee


>Deprecated: This feature is no longer recommended

256 3268159
>>68005

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


А для такого надо использовать ключевое слово let или var?
257 3268182
>>68159
Мы вам перезвоним
258 3268299
>>68159
Без разницы, функция инкапсулирует и то, и другое.
259 3268493
>>68005

>". Само слово "function" тоже не нужно, видимо сделано для поддержки IE7.


Шта?
260 3268503
>>68493
Он шуткует, конечно, но доля правды в этом есть - код со словом function выглядит малость устаревшим, с тех пор как распространились стрелочные функции
261 3268558
>>68503
ИЕ 8 не поддерживает стрелочные функции. Вкатун косил под олдфага но был пойман за руку как дешёвка.
262 3268773
Что быстрее: React или Vue? Где можно нормальные бенчмарки посмотреть

Что из этого лучше учить?
263 3268779
>>68773

>Что быстрее: React или Vue?



И на том и на другом можно написать как быстрый, так и медленный код.

> Где можно нормальные бенчмарки посмотреть



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

>Что из этого лучше учить?



Зависит от твоих целей.
264 3268790
>>68779
Ну синтетика должна быть
Вставки, удаления
265 3268858
>>68790
Что ты несешь, наркоман, какие вставки. Веб-фреймворки никак не влияют на скорость кода
266 3268861
Не знаю, как сейчас с этим дела, но ещё 10 лет назад обсерверы в JS были жутко тормозные по сравнению с обычным вызовом функций, прямо на порядок или два медленнее.
У нас ещё комичный случай был, когда "лид" всех заставлял пользоваться его самописным "скоростным" фреймворком на обсерверах. А потом выяснилось, что это жутко медленная параша.
Эх, были времена. Этот лид ещё постоянно выбирал какая музыка будет играть в офисе.
267 3268864
>>68861
Даже здесь понятно, что проблема не в фреймворке
268 3268890
269 3268997
>>68890

>https://krausest.github.io/js-framework-benchmark/2024/table_chrome_128.0.6613.86.html


Впервые за 10 лет мне пришлось вспомнить, что шифт+скрол = горизонтальный скрол. Пиздец.
270 3269104
>>68503
В качественном коде обычно принято объявлять функции на верхнем уровне вложенности через function, например объявлять реакт компоненты.
271 3269109
>>68773
>>68779
>>68858
Vue значительно быстрее, бенчмарк подтверждает.
272 3269541
Существует ли в природе чистый программист-неверстальщик на JS?
Создаётся впечатление, что знать JS - это как иметь подтянутую попку: тебя всегда пытаются склонить к какому-то непотребству, в данном случае к перекраске кнопочек.
273 3269561
>>69541
Но ведь покраска кнопок это охуенно, красишь не включая мозг и сотыги капают
274 3269567
>>69541
Пишу только бэк, об фронт не мараюсь. Спрашивай ответы.
275 3269580
>>69567
Как можно работать недоучкой? Ведь нода постоянно озабочена синхронизацией фич с браузером.
276 3269645
>>69580
Чиво? Весь екмаскрипт с в8 приходит.
277 3269829
>>69109
Ну если у тебя проект по удалению-вставке строк в огромной таблице, то да, Vue значительно быстрее.
278 3269862
>>69645
Мы вам перезвоним если скажете где в браузере коммонжс модули, а где в ноде дом апи и почему в ноде долго фетча не было, хотя в8 был. В8 это не все, у ноды даже свой ивент луп на libuv
279 3269909
Начал трогать алгоритмы, везде предлагают компилировать их через ноду. Как правильно получать значения от "компьютера"? Условно задача - написать алгоритм, который складывает два получаемых числа.
В питоне это просто input, в обычном js я бы написал функцию с параметрами. В ноде я нагуглил только через readline, что выглядит как сущий пиздец, столько делать ради получения двух строк.
280 3269917
>>69909
От какого компьютера, наркоман, от пользователя?
281 3269918
>>69909
1) Напиши один файл с функцией ввода и рекварь его
2) Импортируй данные из jsonфайла
3) Используй готовую библиотеку
4) Выполняй в браузере. Там из коробки есть prompt("Введите чесло")
image.png80 Кб, 930x756
282 3269921
>>69918
Ну а если я, к примеру, делаю задание на стажировку (пикрил), и там для решения доступно просто одно окно с нодой?
283 3269925
>>69921
Читай в правилах к твоему литкоду. Во всех этих лидкодах в правилах объяснено откуда брать инпут, куда срать оутпут и куда писать коды.
284 3270049
>>69862

>где в браузере коммонжс модули


Напомни, кто от кого отстаёт?

>фетча не было


Нинужно ведь есть пиздатый http модуль.
285 3270052
Сейчас ворсится стек go+ htmx для создание веб приложух. Как думаете js всё?
286 3270056
>>70052
Очередное популярное в твиттере говно
287 3270099
>>70052
IE, VBScript + ActiveX — наше всё.
288 3270102
>>70052
Максимальная соя для нетакусиков.
289 3270460
не заходил в тред 2 года
ну как вы тут потомки, разобрались как переменную объявить-то?
290 3270461
>>70052

>одна бабка сказала...


>на заборе написано...


И? Мейнстрим редко идет по разумному пути. Если и приходит на него, то не сразу. HTML over Websockets существует уже несколько лет.
image.png11 Кб, 385x308
291 3270530
>>70460

>разобрались как переменную объявить-то?


В сигнатуре функций, естественно. Самый экономный вариант. А чтобы какой-нибудь дурак не передал лишние параметры, я пишу $ в начале.
292 3270549
>>70530

>какой-нибудь дурак не передал лишние параметры


дурак уже код написал
294 3270598
Подскажите зеленому, нормальный подход?
Есть кнопка на html, при клике на нее открывается форма для редактирования информации.
Я хочу сделать так:
Клик по кнопке => js отправляет fetch на сервер, чтобы тот ответил, аутентифицирован пользователь или нет.
Сервер отвечает, что пользователь не аутентифицирован (например, нет валидного jwt токена в куке). js показывает div с формой для пароля. Ничего не проверяет. Сервер принимает пароль, проводит аутентификацию, ставит куки. И так по кругу. Норм тема такого общения js и сервера?
295 3270648
>>70530
Как $ мешает передавать лишние параметры?
296 3270732
>>70530
почему естественно? в чем плюсы?
297 3270768
>>70732
потому что никто этого не ждёт.
а удивить значит победить.
298 3270886
>>70568
Обсуждения почитай, дегрод, там дуракам объяснили почему такие изменения больше вредят, чем помогают.
299 3271004
мертвый тред мертвого языка на мертвой борде
300 3271137
>>70598
Норм. Делай.
301 3271422
Сап, насколько сейчас актуален node js для бека?
302 3271430
>>71422
Только он и актуален, все остальное - легаси
303 3271826
>>71422
Недавно наткнулся в реддите на вопрос MERN vs spring boot, где выяснилось что оказывается мерн по сути node js этот мем стек для впаривания курсов вкатунам. Продакт бэк это спринг
304 3271838
>>71826
Да нода это кал для бэка. Подходит только для минимального MVP, норм продукты пилят на плюсах/расте/джаве/го.
305 3271840
>>71838

>норм продукты пилят на плюсах/расте/джаве/го.


даже раст есть, но не сишарп...
306 3271841
>>71840
ну сишарп тоже туда же. Правда хуй знает зачем он нужен, когда есть го и жаба
307 3272070
>>71422
Актуален, но вакансий для новичков мало, хотя конкуренция тоже относительно низкая.

>>71826
MERN не актуален уже лет 5.

>>71838
На ноде тоже пишут норм продукты, только не на MERN, а на несте, остальные элементы стека такие же как и в го/джаве - постгрес, реббит/кафка, редис, кликхаус и т.д.
308 3272127
>>71841
как сейчас поживают пхп-бояре?
309 3272189
>>72127
также как и нодобояре. Хуево.
>>72070

>На ноде тоже пишут норм продукты


Например? Какой норм продукт написан на наоде? Именно на ноде, а не использовал ноду для создания одного из сотен своих микросервисов
310 3272297
>>72189
https://relevant.software/blog/big-companies-that-use-node-js-and-why-they-do-that/

Top 10 Global Companies Using Node.js for Backend
1. PayPal
2. Uber
3. LinkedIn
4. eBay
5. Netflix
6. Trello
7. NASA
8. Twitter
9. Walmart
10. Groupon
311 3272475
Пытаюсь осваивать более низкоуровненый JS. Сокеты, стримы, всё такое.
Мне не совсем вот понятно, а почему в Ноде такое внимание уделяется стримам?
Всё завязано на них, всё крутится вокруг них и всё такое. Файл прочитать это поток, входящий хттп запрос это поток и т.д.

Но по сути, ведь в других языках то же самое? Я ещё знаю Питон и Баш. И в них по идее, то же самое происходит.
Пайпы в Баше это стримы. cat, ">" это тоже стримы. В Питоне наверное тоже самое под капотом.
Но почему-то такого внимания потокам не уделяется. Просто эти потоки используются где-то внутри и всё. А в Ноде на каждом шагу жужжат про потоки и все АПИ завязаны на явном использовании потоков.

Я чего-то не понимаю или почему так?
312 3272585
Делаю фронт для своего бэка, поэтому сильно не ссыте в ебало, джаваскипт не мой нейтив ленгвидж.

Есть компонент на Реакте(назовем его компонент А), который использует другой компонент(назовем его компонент В) и возвращает коллекцию компонентов В.
Как сделать так, чтобы можно было передавать джейсонину в А, которая просто рендерила бы компонеты В из данных, которыей ей прилетели?

И как в Реакте передавать параметры из url?
Например, у нас есть url /api/v3/recipes/crepes/42342342
Я хочу, чтобы в компонент передавались параметры crepes и id. Т.е. грубо говоря, чтобы компонент понимал, что надо брать искать рецепт блина с таким-то id.

Какие библиотеки нужно использовать?
313 3272811
>>72585
Еще более абстрактно написал бы, чтобы тебе точно никто не захотел помогать.
314 3272946
>>72475

>Я чего-то не понимаю или почему так?


В ноде всё бьётся на чанки, чтобы не блокировать слишком долго поток выполенения.
315 3273028
>>72189

>также как и нодобояре. Хуево.


Хз с чего ты это взял, я нодобоярин и поживаю лучше чем когда-либо.

>Например? Какой норм продукт написан на наоде?


Betboom, например. Лучший букмекер, популярный, работающий на много стран, с тир 1 продуктом по качеству. Топ-2 и топ-3 буки Winline и Pari тоже на ноде. Или бекенд Делимобиля, часть Яндекс Лавки и Яндекс Карт, Банки.ру, Сравни.ру, Леруа, в Тбанке несколько внутренних продуктов на ноде. В крипте вообще бесчисленное множество проектов, например p2p.org / Lido (крупнейший ETH стейкинг).
316 3273031
>>72585

>Есть компонент на Реакте(назовем его компонент А), который использует другой компонент(назовем его компонент В) и возвращает коллекцию компонентов В.


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


https://react.dev/learn/rendering-lists

>И как в Реакте передавать параметры из url? Например, у нас есть url /api/v3/recipes/crepes/42342342 Я хочу, чтобы в компонент передавались параметры crepes и id. Т.е. грубо говоря, чтобы компонент понимал, что надо брать искать рецепт блина с таким-то id.


Тебе походу нужен клиентский роутинг
https://tanstack.com/router/latest
https://reactrouter.com/en/main
317 3273032
>>73028
а в чем плюсы бека на ноде?
sage 318 3273039
>>72585

>И как в Реакте передавать параметры из url?


В чистом реакте - никак ёпт. Но есть фреймворки на базе рякта, которые это предоставляют.
https://nextjs.org/docs/app/api-reference/functions/use-search-params
https://remix.run/docs/en/main/hooks/use-search-params

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


Напрямую передавать джейсонину - это быдлокод. Надо отделять логику от презентации. У тебя должен быть отдельный хук который скачивает данные, а в компонент уже передаёшься обработанный объект. Короче устанавливаешь redux-toolkit, создаёшь createApi, вот пример как это делается https://www.youtube.com/watch?v=2hTkVEmhQZk
319 3273040
>>73039

>redux-toolkit, создаёшь createApi


Какой же ты говноед.
sage 320 3273041
>>73040
Ну возьми swr какая разница
321 3273066
>>72585
Чел не слушай предыдущие посты, просто поставь next.js.

Создаешь файл
/src/pages/recipes/crepes/[id].jsx

Это твой компонент-страница, который рендерится, если зайти по адресу https://site.com/recipes/crepes/golubci-s-govnom-1297341874

Дальше пишешь в нем getServerSideProps
https://nextjs.org/docs/pages/api-reference/functions/get-server-side-props
Получаешь params.id - это golubci-s-govnom-1292349237423
И там дергаешь свой /api/v3/..., возвращаешь данные в ретюрне, они пойдут в рядом лежающий export default Page

В компоненте Page считываешь эти данные и успех.

Или лучше SvelteKit, реакт это кал.
322 3273070
>>73032
По сравнению с чем? По сравнению с другими скриптовыми/интерпретируемыми языками (пхп, питон, руби) лучше перформанс, часто намного лучше, со многих сторон сам язык (тайпскрипт) лучше, конкуренция относительно небольшая, крайне часто используется в крипте, которая лично мне очень интересна, да и зарплаты тут ощутимо выше. У вышеперечисленных языков плюс по-моему только один, больше инструментов в экосистеме, но в последние годы это уже не так актуально. По сравнению с го, джавой, дотнетом, плюсами, растом нода лучше скоростью разработки и опять же как язык тайпскрипт превосходит все перечисленные кроме раста и сишарпа, но у них с тайпскриптом один создатель. В целом для бекенда дотнет крутое решение, высокий перформанс, стабильность, скорость разработки нормальная. Похожая ситуация в го, но сам язык ограниченный, в этом есть и плюсы, и минусы. В моём представлении одно из лучших решений для крупных проектов это микросервисы, где большинство на ноде, а микросервисы с повышенной нагрузкой написаны на го или если там совсем жёсткая числодробилка то на расте. Но в моём опыте за 7 лет в крупных проектах перформанса ноды не хватало совсем редко и это было именно из-за CPU bound задач, и писать на тайпскрипте намного приятнее, чем на го или расте, тем более на расте хуй найдёшь работу, так что для меня нода на бекенде это топ выбор.
323 3273073
>>73040
>>73041
Tanstack query + zustand, хотя и zustand как будто бы не нужен
324 3273075
Как всегда у реактеров срачь из-за инструментов 0.021 версии
325 3273102
Чет я не понял, почему промисы настолько медленнее setTimeout? Пробую скрипт с тротлингом в отладчике, так на Low-end и Mid-tier мобилах показывает просто жуткие лаги.
326 3273103
Хотя там отладчик по ходу глючный.
327 3273107
Хотя setTimeout по ходу всё равно производительнее раз в пять, чем аналогичный промис с авейтом.
328 3273109
Хотелось бы конечно requestAnimationFrame юзать, но он от фреймрейта монитора зависит, недавно столкнулся с игровым моником на 240 фпс, так мне мой requestAnimationFrame чуть проц не спалил.
16228611070021.jpg61 Кб, 592x532
329 3273207
>>73109

>юзать

330 3273290
>>73207
Дядя скуф, выпейте таблетки от склероза. Слово "юзверь" упоминалось еще в FIDO и компьютерных журналах 90-х.
331 3273292
>>73070

>По сравнению с другими скриптовыми/интерпретируемыми языками (пхп, питон, руби) лучше перформанс, часто намного лучше


Что угодно будет быстрее руби. А давайте с LuaJIT сравним, вот здесь-то нода и обосрется.
332 3273299
>>73292
Чел. На руби умные люди не хотели писать еще когда и голенгов в помине не было. Говорили что это наследник перла для write only скриптов
333 3273317
>>73292

>давайте с LuaJIT сравним


Не думаю, что там будет разница в разы, кто бы ни выиграл. Вообще, луа язык не полноценный, и он такой by design. Не участвует в гонке фич, чтобы оставаться лайтвеигхт для эмбеда и лёрнабл за неделю.
334 3273445
>>73292
Зачем сравнивать ноду с этим? Смысл тёплое с мягким сравнивать? Есть уже адекватные предметы для сравнения, например го и раст, которые используются на бекенде и уделывают практически что угодно.
335 3273504
Пора уже выкинуть старый var и заменить им let. Мне var больше нравится единством своей высоты в строке, и он лучше подчёркивает противопоставление const. А что такое let x? "Пусть икс"? Ерунда какая-то.
Ладно ещё не "my", как в перле.
336 3273681
>>73070

>пхп


>лучше перформанс


Дядь, поставь пхп последней версии и твоя нода пожрет говна в плане перформанса. Миф о медленном пхп был актуален лет 10 назад, когда на нем говнокодили все кому не лень (читай - битрикс и прочие CRM) и сам язык не развился так сильно как сейчас. тоже самое относится к jquery
337 3273683
>>73073
flux'о-подобное говнище не уважаем. Mobx - лучший стейт менеджер, единственный минус которого - необходимость писать обсерверы.
338 3273699
>>73681

>поставь пехепе и пожри говна


Спасибо уже нажрался за несколько лет. Симфони 7 может и няшка, но работы на симфони нет. Только говнопроекты на леравеле где все пишут как попало. Один из БД вытаскивает тонны данных, а потом фильтрует и вычисляет на пыхе, другой в простом круде абстракции с потолка высирает как на спринге, третий колбасит логику на фронтенде и все это в одном проекте..
339 3273804
>>73699

> твоя нода пожрет говна в плане перформанса


>высирает какую-то хуйня про то что пишут как попало


я ебу вот это интеллект
340 3273824
>>73681
У тебя есть пруфы? Вот у меня есть пруфы моих слов.

https://web-frameworks-benchmark.netlify.app/compare?f=express,hono,elysia,fastify,adonisjs6-http,moleculer,koa,laravel,symfony,yii
341 3273840
>>73070

>По сравнению с другими скриптовыми/интерпретируемыми языками (пхп, питон, руби) лучше перформанс


Это не совсем так. Смотря в каких задачах. На некоторых задачах PHP быстрее чем Java и по скорости близок с Си. V8 очень быстрый движок, но в веб-приложениях Нода не тянет, ее сетевой стек дает большой оверхед. С либами/фреймворками Нода не быстрее Питона. У PHP движок тоже очень быстрый, но оверхед дает подъем виртуальной машины на каждый запрос. PHP-FPM тоже дает большой оверхед, если не ошибаюсь, его вообще забросили и много лет не обновляют. Стоит сделать из PHP долгоживущий процесс как у Ноды и он догоняет Джаву.
1726433667666.jpg381 Кб, 1699x568
342 3273847
343 3273860
>>73824
Сравни с Workerman/Swoole, они еще быстрее.
344 3273862
>>73840

>На некоторых задачах PHP быстрее чем Java и по скорости близок с Си.


На каких?

>V8 очень быстрый движок, но в веб-приложениях Нода не тянет, ее сетевой стек дает большой оверхед. С либами/фреймворками Нода не быстрее Питона.


Это не так, в веб-приложениях нода очень даже тянет, и тем более по сравнению с питоном. Джанго просто пиздец какой медленный, а фастапи выдаёт перформанс уровня чуть-чуть выше экспресса, который самый медленный среди юзабельных инструментов в экосистеме ноды, тот же фастифай будет ощутимо лучше фастапи.
345 3273866
>>73847
Так Elysia работает на Bun, который использует uWebSockets.js. Workeman и Swoole не слабее, а конкурентность в них более удобная. Еще uWebSockets.js работает в одном потоке.
347 3273877
>>73862

>На каких?


CPU-bound.

>в веб-приложениях нода очень даже тянет


Голая Нода очень слабенькая. Это уже давно доказано. С Фреймворками и подавно. Поэтому и появились uWebSocket.js и Bun.

>>73862

>Джанго


Не сравнивай Джанго с фреймворками на Ноде. Это огромный комбайн, на Ноде и близко ничего такого по функционалу нет. ПОэтому и медленный. Фастапи не медленнее чем Нодовские фреймворки. В Питон завезли Socketify, который скопировали с uWebSockets.js.
348 3273884
>>73876
Это не заслуга Ноды, это все благодаря uWebSockets.js, и Гиперэкспресс и Элизия работают на этом сетевом стеке.
349 3273888
>>73866
>>73884
Ну да, bun не нода, но это по сути бекенд на js/ts. Я и не говорю, что workerman и swoole слабее. Какая там конкурентность не знаю. Чем она удобнее? А использование uWebSockets тут при чём? Внутри ещё и JavaScriptCore и кастомная имплементация async I/O на zig, или в самой ноде V8 и libuv, это же нас не смущает. В swoole плюсы в исходниках нас ведь тоже не смущают.
350 3273896
>>73877

>Голая Нода очень слабенькая. Это уже давно доказано.


Примеров не будет?

>С Фреймворками и подавно.


Где пруфы? Я вижу обратное, например как популярный фастифай на ноде выдает перформанс намного больше популярных фреймворков на питоне или пхп.

>Фастапи не медленнее чем Нодовские фреймворки


Я тебе скинул пруфы, где показано, что фастапи по перформансу на уровне самого медленного фреймворка ноды.
351 3273906
>>73888
Нода написана плохо. uWebSockets.js не использует сетевой стек Ноды вообще, у него свой. Bun насколько мне известно под капотом использует uWebSockets.js.

>>73896

>Примеров не будет?


В бенчах смотри или потести сам. Как минимум в 6 раз медленнее чем uWebSockets.js.
352 3273913
>>73906

>Нода написана плохо. uWebSockets.js не использует сетевой стек Ноды вообще, у него свой. Bun насколько мне известно под капотом использует uWebSockets.js.


И? У swoole тоже под капотом код на плюсах.

>В бенчах смотри или потести сам. Как минимум в 6 раз медленнее чем uWebSockets.js.


Бенчи подтверждают мои слова, я скриншоты все сюда скинул.
1726435903153.jpg572 Кб, 1080x1571
353 3273923
Почему symfony-swoole, symfony-workerman, и yii2-workerman медленнее голой ноды, и тем более медленнее fastify?
1726437234125.png123 Кб, 1440x1008
354 3273955
>>73877

>Пхп лучше в CPU-bound задачах


Что, прочтите?
355 3274006
>>60410

>Какая база на этот тред? Постгря? Мускуль? MS SQL? Sqlite? Монга?


Sqlite, если у тебя данных меньше 6 Гигов
356 3274031
>>74006
Двачую. Сам когда-то познал дзен и стал использоваться SQLite, чтобы как страшный сон забыть менеджмент пула коннектов к базе данных.
357 3274039
>>73804
И?
1) Мне пихуй на ваш перформанс. Я не пишу высокочастоную торговлю на бирже.
2) Пыха говно по многим причинам отличным от перформанса
3) Изкоробочного перформанса в пыхе нет
4) Пыхо проект обычно тормозит, потому что запросы к БД кривые написали
5) Тред не для того чтобы два чела между собой общались.
358 3274041
Пыха
$a = false;
@$a[] = 1;
echo $a[0];

vs

$b = 0;
@$b[] = 1;
echo $b[0];
359 3274042
>>74041
Пыхо код
@
wipe symbols
@
Ничего удивительного..
360 3274046
Да и пыха быстрее дефолтной ноды не на порядки а раза в два - три. Это не аргумент чтобы проект на пыхе писать. В случает ноды у меня из коробки асинхронность и возможность даже вебртс и тсп обрабатывать на голой ноде. А в пыху надо сторонние мокрописьски ставить и сомнитетельной хуевости код писать, который рядовой пыхпешник не поймет.
361 3274104
где кратко со всеми фронтопотрохами можно ознакомиться? чтобы понять что и для чего
vite, esbuild, node, bun и прочее подобное
сложнее чем на бэке тут
362 3274106
>>74046
так то оно так, но тут кабану решать
что кабан скажет, то и будет писать, никакого самовольства
363 3274107
>>74104
В основном это баззворды из твиттера
364 3274217
>>73699

>но работы на симфони нет


То ли дело на ноде.
365 3274290
>>74106
я и есть кабан, брат
366 3274291
>>74290
Кушаешь много?
367 3274659
Че придумал.
Обычно пишу так, когда надо притормозить до ближайшего requestAnimationFrame:

await new Promise(resolve => requestAnimationFrame(() => {
// всякая херня со стилями
resolve()
}))

Но ведь можно сделать функцию задержки до ближайшего requestAnimationFrame:
function nextRAF() {
return new Promise(resolve => requestAnimationFrame(resolve))
}

И затем писать так:
await nextRAF()
// всякая херня со стилями

Это ведь будет то же самое, что и в первом случае? Или есть какой-то смысл помещать код именно внутрь requestAnimationFrame, а не просто ждать, когда подойдёт его время?
image.png11 Кб, 410x228
368 3274684
Короче не знаю, на всякий случай сделал так.
Можно писать await doubleRAF(() => { ... }) // и внутри тоже можно авейтить
369 3274686
Правда вот авейтить внутри колбека requestAnimationFrame наверное точно ничем не лучше просто отсрочки по времени за пределами колбека.
370 3274720
Что значит комментарий начинающийся со "слэш-звёздочка-восклицательный знак"? Зачем там восклицательный знак? Какой-то прикол бандлера?
371 3274752
>>74046

>пыха быстрее дефолтной ноды не на порядки а раза в два - три


Не надоел этот унылый троллинг? Тебя выше уже несколько раз опровергли с пруфами.
372 3274787
>>74752
php -v
PHP 8.3.11 (cli) (built: Aug 27 2024 19:16:34) (NTS)
<?php
$s = 0;
for ($i=0; $i<1000_000_000; $i++) {
$s += $i;
}
echo $s;

time php test.php
499999999500000000
real0m6,651s
user0m6,622s
sys0m0,029s

node -v
v20.17.0

s = 0;
for (let i=0; i < 1000_000_000; i++) {
s+= i;
}
console.log(s)

time node test.js
499999999067109000

real0m16,368s
user0m16,348s
sys0m0,021s
372 3274787
>>74752
php -v
PHP 8.3.11 (cli) (built: Aug 27 2024 19:16:34) (NTS)
<?php
$s = 0;
for ($i=0; $i<1000_000_000; $i++) {
$s += $i;
}
echo $s;

time php test.php
499999999500000000
real0m6,651s
user0m6,622s
sys0m0,029s

node -v
v20.17.0

s = 0;
for (let i=0; i < 1000_000_000; i++) {
s+= i;
}
console.log(s)

time node test.js
499999999067109000

real0m16,368s
user0m16,348s
sys0m0,021s
373 3274788
>>74787
Хотя если на пыхе в флоатах считать чтобы интыджер оверфлоу не было
<?php
$s = 0.0;
for ($i=0.0; $i<1000_000_000; $i++) {
$s += $i;
}
echo $s;

то почти одинаковый по времени результат

time php test.php
4.9999999906711E+17
real0m11,805s
user0m11,786s
sys0m0,016s
374 3274796
Ряя!!!1
Голенг быстрее сишки

package main
import "fmt"
func main() {
sum := 0.0
for i := 0.0; i < 1000_000_000; i++ {
sum += i
}
fmt.Println(sum)
}

time ./test
4.99999999067109e+17

real0m1,268s
user0m1,267s
sys0m0,004s

#include <stdio.h>
int main() {
double s = 0.0;
for (double i=0.0; i < 1000000000; i++) {
s += i;
}
printf("%e", s);
}

time ./test
5.000000e+17
real0m2,649s
user0m2,649s
sys0m0,000s
374 3274796
Ряя!!!1
Голенг быстрее сишки

package main
import "fmt"
func main() {
sum := 0.0
for i := 0.0; i < 1000_000_000; i++ {
sum += i
}
fmt.Println(sum)
}

time ./test
4.99999999067109e+17

real0m1,268s
user0m1,267s
sys0m0,004s

#include <stdio.h>
int main() {
double s = 0.0;
for (double i=0.0; i < 1000000000; i++) {
s += i;
}
printf("%e", s);
}

time ./test
5.000000e+17
real0m2,649s
user0m2,649s
sys0m0,000s
375 3274797
>>74796
gcc -o test -O3 test.c
time ./test
5.000000e+17
real0m1,416s
user0m1,412s
sys0m0,004s
376 3274889
>>74788
>>74796
>>74797
Ну что же, пришло время тебе переехать в другой тред вкудахтча посвящённый Go лангу.
377 3274906
тупейший вопрос - обязательно ли знать html css для вката в жс и тс? или же я могу скинуть эту поеботу?
image.png203 Кб, 756x727
378 3274914
Тестовое задание (очень типичное, кстати): реализовать рабочий пикрил. Всвязи с чем у меня вопрос - я может чего-то не понимаю? Может, от меня ждут знаний какой-то популярной UI-библиотеки? Ну потому что вся эта пагинация, дропдаун, сёрчфилд и т.д. - сами по себе сложные компоненты. Или от меня ждут нефункциональную "куклу"?
379 3274925
>>74914
Короче делать не буду, нафиг.
380 3274935
>>74906

>обязательно ли знать html css для вката в жс и тс?


define "вкат"
чтобы учить JS и TS, html и css не нужны.
чтобы найти работу на JS и TS, html и css нужны, если только ты не найдёшь работу бэкендером на ноде
381 3275014
>>74787
Это круто, конечно, только это не единственный показатель, по которому можно сделать вывод, что один язык быстрее другого. Бенчмарки конкретно по RPS, latency, запросам в БД, сериализации JSON и т.д. не не в пользу пхп.
382 3275149
>>75014

>Бенчмарки конкретно по RPS, latency, запросам в БД, сериализации JSON и т.д. не не в пользу пхп.


Какие? Нодовские фреймворки медленнее тех что на PHP. Workerman написан на PHP без Си или чего-то другого. Ни один Нодовский фреймворк, который написан на чистом JS не дотянется до него. Потому что как я уже писал сто раз, у Ноды плохо написан сетевой стек. Ты ничего с этим не сделаешь. V8 не быстрее движка PHP. Поэтому никак Нода не может быть быстрее, если в PHP используется конкурентность.
383 3275194
>>75149
1) Теперь тащи фремворки на пыхе заточенные под конкурентность на этих васянских велосипедах.
2) Милипиздрическая прибавка к перформансу никак не компенсирует убогость самой пыхи как языка и платформы
3) Если что-то потебуется считать на цпу, то ноду легче через к раббит соединить с тем же голенгом. Напиши на чистой пыхе один скрипт - одновременно консумер очереди чисел и хттп ручка отправляющая эти числа через SSE в браузер. На ноде делается стандартными средствами ноды. На пыхе только через васянское говно типа свуле

>плохо написан сетевой стек


Специалист по сетевым стекам? Тогда конкретнее выражай свою мысль.

мимо
384 3275231
>>74914
В целом любое тестовое задание это дерьмо пеликана. Потому что я где-то делал и мне даже бывало не отвечали, типо вообще похую. Причем оно гавно на любом этапе, до интервью, после. Есть фирмы, которые платят за выполненное тестевое, даже если ты им не подошел. Все остальное - клоунада. То что ты сбросил, это можно на коленке сделать за пару часов или много много дольше. Картинка несет мало информации
385 3275234
>>75149

>Какие?


Вот:
>>73955
>>73923
>>73876
>>73862
>>73847
>>73824

>Нодовские фреймворки медленнее тех что на PHP


В бенчмарках нодовские фреймворки быстрее. Я устал просить у тебя пруфы, так что просто констатирую, что ты либо троллишь, либо по какой-то причине фантазируешь и отрицаешь очевидную реальность.

>Workerman написан на PHP без Си или чего-то другого. Ни один Нодовский фреймворк, который написан на чистом JS не дотянется до него.


Да, workerman крут, только на нём никто не пишет бекенды, бекенды пишутся на симфони и ларе, которые очень медленные относительно ноды и тем более бана, и даже когда тот же симфони используется вместе с workerman, то он медленнее того же fastify, судя по >>73923

>Потому что как я уже писал сто раз, у Ноды плохо написан сетевой стек.


Ну допустим плохо, но в итоге в реальных условиях (сравнение rps и latency популярных веб фреймворков в типичных бекенд задачах) нода всё равно быстрее пхп.

>Ты ничего с этим не сделаешь. V8 не быстрее движка PHP


Вот тут видно >>73955 перформанс в CPU bound задачах посложнее инкремента (пхп есть только в 1 и 2 графике), и ещё раз добавлю в этот пост скрины бенчмарка, где видно, что у symfony-swoole и symfony-workerman перформнас ниже фастифая, и немногим выше дефолтного неста, который базируется на медленном экспрессе. yii2-workerman, laravel-workerman, laravel-swoole — всё 3 ниже тормознутого экспресса. Так что может workerman и крутой, но фреймворки добавляют какой-то пиздецовый оверхед. А фастифай вот быстрее голой ноды, ну не удивительно, там один из кор мейнтейнеров ноды в разрабах.

>Поэтому никак Нода не может быть быстрее, если в PHP используется конкурентность.


Если ты имеешь в виду голый swoole или workerman, то тогда справедливо сравнивать с решениями на uWebSockets. Но ещё раз, на голом воркермене не пишут.

>>75194

>1) Теперь тащи фремворки на пыхе заточенные под конкурентность на этих васянских велосипедах.


Да, в этом вся суть. На втором пике этого поста всё видно. В ноде тоже можно завелосипедить на uWebSocket, точнее такого уже много сделано. Но большинству проектов более чем достаточно nest-fastify.
385 3275234
>>75149

>Какие?


Вот:
>>73955
>>73923
>>73876
>>73862
>>73847
>>73824

>Нодовские фреймворки медленнее тех что на PHP


В бенчмарках нодовские фреймворки быстрее. Я устал просить у тебя пруфы, так что просто констатирую, что ты либо троллишь, либо по какой-то причине фантазируешь и отрицаешь очевидную реальность.

>Workerman написан на PHP без Си или чего-то другого. Ни один Нодовский фреймворк, который написан на чистом JS не дотянется до него.


Да, workerman крут, только на нём никто не пишет бекенды, бекенды пишутся на симфони и ларе, которые очень медленные относительно ноды и тем более бана, и даже когда тот же симфони используется вместе с workerman, то он медленнее того же fastify, судя по >>73923

>Потому что как я уже писал сто раз, у Ноды плохо написан сетевой стек.


Ну допустим плохо, но в итоге в реальных условиях (сравнение rps и latency популярных веб фреймворков в типичных бекенд задачах) нода всё равно быстрее пхп.

>Ты ничего с этим не сделаешь. V8 не быстрее движка PHP


Вот тут видно >>73955 перформанс в CPU bound задачах посложнее инкремента (пхп есть только в 1 и 2 графике), и ещё раз добавлю в этот пост скрины бенчмарка, где видно, что у symfony-swoole и symfony-workerman перформнас ниже фастифая, и немногим выше дефолтного неста, который базируется на медленном экспрессе. yii2-workerman, laravel-workerman, laravel-swoole — всё 3 ниже тормознутого экспресса. Так что может workerman и крутой, но фреймворки добавляют какой-то пиздецовый оверхед. А фастифай вот быстрее голой ноды, ну не удивительно, там один из кор мейнтейнеров ноды в разрабах.

>Поэтому никак Нода не может быть быстрее, если в PHP используется конкурентность.


Если ты имеешь в виду голый swoole или workerman, то тогда справедливо сравнивать с решениями на uWebSockets. Но ещё раз, на голом воркермене не пишут.

>>75194

>1) Теперь тащи фремворки на пыхе заточенные под конкурентность на этих васянских велосипедах.


Да, в этом вся суть. На втором пике этого поста всё видно. В ноде тоже можно завелосипедить на uWebSocket, точнее такого уже много сделано. Но большинству проектов более чем достаточно nest-fastify.
386 3275243
>>74914
Не пробовал у них спросить, нужно ли/можно ли использовать ui либы? Без либ это будет долго, но иногда просят именно без, чтобы увидеть как вручную будедь писать все эти дропдауны и прочее подобное
387 3275247
>>75194

>тащи фремворки на пыхе заточенные под конкурентность


В гугле забанили?
https://github.com/walkor/webman

>Милипиздрическая прибавка к перформансу


120k rps на R5600G это небольшая прибавка? Нода даже 50к не вытянет. Латенси 50 миллисекунд!

>убогость самой пыхи как языка и платформы


ЯЗык и платформа имеют много плюсов, как и JS с V8. Минусы компенсируются встроенными либами и сторонними тулзами. На самом деле, в PHP давно есть мощные средства для конкуретного и параллельного исполнения, например либа Parallel. Проблема в людях, которые не используют все фичи. В Ноде нет ничего подобного Parallel или Workerman.

>Если что-то потебуется считать на цпу, то ноду легче через к раббит соединить с тем же голенгом.


В PHP есть простой в использовании FFI. Можно подключать код на Си или Расте.
https://engineering.wedevs.com/2023/08/18/supercharge-php-using-ffi/

>Специалист по сетевым стекам? Тогда конкретнее выражай свою мысль.


Погугли статьи создателей uwebsockets и just-js.
388 3275253
>>75234
Зачем ты сравниваешь комбайн Symfony с нодовскими микрофреймворками? Они огромные и написаны без асинхронности.

Fastify 102-е место, у Slim 73-е место, даже без асинхронности!
https://www.techempower.com/benchmarks/#hw=ph&test=composite&section=data-r22&l=zijzzz-cn3

О чем ты споришь вообще? Голый PHP без асинхронности 65-е место, а голая Нода 104-е! Кхм... Подключаем асинхронность с Workerman и получаем 33-е место в общем зачете! В общем зачете! Там где Rust, C/C++, Java, Go, .NET...

Нода в низах. И только uWebsockets.js (Hyperexpress тоже на нем работает) немного выше Workerman. Ну и Just-js, который хоть и хорош, не готов к работе, и это вообще отдельный рантайм. Авто uwebsockets крутой Си-хакер, он написал либу для работы с json на Go, которая оказалась в 3 раза! быстрее встроенной, написаной в Гугле. Но это не Нода, это отдельный Си и C++ код. Сама Нода медленная.
389 3275261
>>75253

>Сама Нода медленная


Это не компенсирует что пыха уродливое говно, синтаксис которой даже двощ считает wipe symbols
Кому надо скорость будут писать не на пыхе. А пыха как фронтенд явно лишнее звено.
390 3275266
>>75261
Это не правда. Синтаксис у PHP почти как у Си. JS же имеет куда больший минус, это язык для написания, но не для чтения. Его невозможно читать. На этом все его плюсы перечеркиваются.
391 3275268
>>75266
Перефорсы пыходебила, классика
392 3275307
>>75268
Ты совершенно необъективен. С JS я познакомился гораздо раньше PHP. Мне нравится JS, в нем нет перекоса на использование классов, нет так называемого "ООП головного мозга", у него лаконичный синтаксис, можно писать и кратко и понятно. Проблема опять же в людях, которые понятно писать не умеют и не хотят.
393 3275316
>>75307
Пыходебил высасывает хуйню из пальца, классика
394 3275362
>>75253
насколько сложно workerman'а прикрутить и кром web socket'ов можно SSE использовать?
395 3275376
>>75362

>насколько сложно workerman'а прикрутить


composer require workerman/workerman

>SSE


Зачем?
https://manual.workerman.net/doc/ru/http/SSE.html
396 3275396
>>75376
Затем что вебсокеты нужны для чатов. А для того чтобы реализовать подписки на обновление данных больше подходит SSE.

У тебя кстати доктрина или элоквент готовы работать в долгоживущем воркере? Вот те же субскрайберы доктрины там будут работать асинхронно?

мимо
397 3275436
>>75253

>Зачем ты сравниваешь комбайн Symfony с нодовскими микрофреймворками?


Fastify и nest это не микрофреймворки.

>Они огромные и написаны без асинхронности.


Под "без асинхронности" ты имеешь в виду symfony без workerman или swoole под капотом? Так я уже несколько раз скинул скрины, где symfony-workerman и symfony-swoole перформят чуть лучше самого медленного нодовского экспресса.

>Fastify 102-е место, у Slim 73-е место, даже без асинхронности!


>https://www.techempower.com/benchmarks/#hw=ph&test=composite&section=data-r22&l=zijzzz-cn3


Зато symfony, laravel и yii ниже fastify даже с асинхронностью. На пхп пишут бекенды на чём-то кроме symfony, laravel и yii? По-моему нет.

>О чем ты споришь вообще? Голый PHP без асинхронности 65-е место, а голая Нода 104-е! Кхм... Подключаем асинхронность с Workerman и получаем 33-е место в общем зачете! В общем зачете! Там где Rust, C/C++, Java, Go, .NET...


Подключаем асинхронность с Workerman куда, в symfony? Тогда мы получаем место ближе к дну, на уровне тормознутого экспресса. И если ты берёшься сравнивать голый workerman, то справедливо сравнивать с решениям на uWS.

>Нода в низах. И только uWebsockets.js (Hyperexpress тоже на нем работает) немного выше Workerman. Ну и Just-js, который хоть и хорош, не готов к работе, и это вообще отдельный рантайм. Авто uwebsockets крутой Си-хакер, он написал либу для работы с json на Go, которая оказалась в 3 раза! быстрее встроенной, написаной в Гугле. Но это не Нода, это отдельный Си и C++ код. Сама Нода медленная.


V8 это тоже не нода, это отдельный низкоуровневый код? И какой-нибудь libuv тоже? Ты же знаешь, что нода в принципе написана на си и плюсах. Только swoole и workerman это не пхп, это же отдельные проекты. В bun uWS тоже не засчитывается почему-то с твоей странной точки зрения, хотя это прямо внутренняя часть бана.
398 3275439
>>75266

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


Так пиши на TS, он прекрасен и для написания, и для чтения.
Screenshot 2024-09-17 221235.png81 Кб, 955x514
399 3275443
Хотите писать бекенд на ноде, и чтобы результат ваших трудов влиял буквально на весь мир?

https://wellfound.com/jobs/3093011-senior-backend-developer-node-js-100-remote
400 3275503
так что, стоит это уёбище учить (иначе назвать не могу, именно уёбище), на него больше всего вакух на ХХ?
401 3275505
>>75439
TS прекрасен для описания типов вместо решения задач. Задачи потом быстро быстро через any решаются
402 3275510
>>74914
Какая нахуй пагинация, чел, это прошлый век, лупи инфинит скролл.
403 3275515
>>75443

>работа в крипте


Ебалус имагинатус?
404 3275516
>>75443
Никто в текущих реалиях на зепку в 120к$ не будет релоцировать из СНГ. Лучше уж сидеть на синьке у нас в бигтехе на 400.
405 3275517
>>75505

>Задачи потом быстро быстро через any решаются


Что у тебя за задачи, где ты постоянно эникастишь?
406 3275526
>>75517
У меня нет задач на TS, не пишу на этой any-хуйне.
407 3275528
>>75526
Так ты же долбоеб, я any/unknown пишу примерно раз в полгода, потому что ТС интуитивно понятен.
408 3275543
>>75528
Похуй что ты там пишешь в своих вкатунских тасках, мы вам перезвоним
409 3275548
>>75543
Чмоня лоускильная, своей мамке перезванивай.
410 3275787
а как называются люди, которые в реакте все оборачивают, буквально все, в useCallback и useMemo?
411 3275790
>>75543
Я синьор на проекте с 30 фронтедерами, который приносит миллионы рублей в сутки. Так что спок.
412 3275813
>>75790
Так о том и речь, что эти 30 фронтендеров делают все через any, сколько бы ты ни дрочил на типы
413 3275862
>>75790
Зачем ты пишешь это? Еще напиши, что ездишь каждый день в автобусе, который стоит 30 млн и на нем зарабатывают 100 млн рублей клоун
414 3275955
>>75503

>так что, стоит это уёбище учить


Хочешь фронтенд писать - учи. Все просто
415 3275968
>>75443
в чем подвох?
416 3276012
>>75813

>все через any


Ты скозал? У нас даже проверка на PR стоит, что если падает еслинт (в котором есть правило на отсутсвтие any) - апрувов не получишь и кнопка мерджа активной не станет.
>>75862
Кастую твой высер в any кста.
417 3276037
>>75515
Да, довольное ебало, потому что в критпе:
1. Много денег
2. Много интересных проектов
3. Удалёнка по всему миру, а не только по родной стране

>>75968
Подвоха нет, но есть нюансы. В процессе устройства на работу могут спросить текущее место пребывания и могут отказать в рассмотрении, если ты живёшь в России/Украине. После устройства уже похуй будет, лишь бы ты мог принимать зарплату. И с налогами придётся разбираться самостоятельно, но это не так уж сложно.

>>75516
А с чего ты вообще взял про релокацию? Придумал? В вакансии ничего про этого нет. Ты работаешь удалённо и живёшь в какой угодно точке мира, релоцируешь себя сам куда сможешь. 5000-10000к баксов в месяц неплохая сумма, но вполне обыкновенная дли работы в крипте, даже я бы сказал маленькая, учитывая, что это компания, разрабатывающая USDT. В российском бигтехе на синьке 400 это практически потолок, многие и за 300-350 работают. Короче, чистыми получается тысячи 4 баксов, а работа часто довольно унылая.
418 3276057
>>76037
а че надо знать конкретно про крипту чтобы в ней работать?
419 3276069
>>76057
А ключи от квартиры где деньги лежат тебе не надо?
420 3276071
>>76012

>правило на отсутсвтие any


Да все прекрасно знают, тупоскриптодебил, что вместо работы ты сочиняешь типы, а потом правила для контроля этих типов. А потом кабаныч выкидывает тебя на мороз и ему делают рабочий продукт, а не твой нерабочий типодроч.
421 3276079
>>75505
Во-первых, описание типов это составная часть задач. Во-вторых, они и без any быстро решаются, если разработчик не лоускилл или не свежий неопытный вкатыш.
>>75526
Так any-хуйня это как раз чистый JS. Тебе, видимо, проекты на более серьёзном языке не доверяют, не хватает навыков, знаний, опыта, ума, чтобы быстро решать задачи на тайпскипте без использования any. Any можно в принципе практически никогда не использовать, есть unknown, который нормальными инженерами крайне редко используется в качестве замены any.
>>75813
В нормальных компаниях так делают, а полноценно используют типизацию. Ты просто скорее всего говоришь из своего опыта работы в третьесортных помойках, экстраполируешь его на все остальные компании и проекты, к которым тебя никогда близко не подпускали и не подпустят, потому что ты либо не очень умный, либо обиженный.
>>76071
Рабочий продукт, в исходниках которого нет типизации? В 2024? Курам на смех.
422 3276085
>>76079
Тайпскриптодебил рассуждает о "серьезности" языков и проектов, такой кек
423 3276088
>>76085
Со стороны джаваскриптодебила этот пустой выпук без аргументов звучит откровенно нелепо.
424 3276095
>>76088
"Я люблю обмазываться типами и дрочить"
"Все серьезныеTM конторы"
И другие "выпуки с аргументами" от тайпскриптодурачка, не переключайте канал
Помогите не программисту 425 3276123
Вкатываться не планирую. Объясните, пожалуйста, что тут не так?
426 3276126
>>76057
Как устроен DeFi, dApps, блокчейн, самая популярная для работы крипта (Solana, Ethereum, TON), web3 библиотеки.
427 3276127
>>75436
Ты в каком классе учишься? Symphony и Laravel огромные комбайны с миллионами строк кода, с функционалом которых никакой Nest не сравнится. Их писали давно, когда про асинхронность никто и не думал. Их код не рассчитан на конкурентное выполнение.

Нода медленная. uWS и Bun это не Нода, это отдельный компилируемый код. Workerman написан на PHP и производительней Ноды более чем в 5 раз! Даже голый PHP более производительный чем Нода. И uWS/Bun не быстрее чем Workerman.
428 3276128
>>76095
Ты не способен опровергнуть ни слова в этом посте >>76079.
429 3276149
>>76127

>Symphony и Laravel огромные комбайны с миллионами строк кода, с функционалом которых никакой Nest не сравнится. Их писали давно, когда про асинхронность никто и не думал. Их код не рассчитан на конкурентное выполнение.


И что? Факт остаётся фактом: когда пишут бекенд на пхп, то берут Symphony и Laravel, когда пишут бекенд на ноде, берут Nest, Fastify, Express.

>Нода медленная.


Смотря относительно чего. Судя по многочисленным пруфам выше, не медленная, вполне средняя. Ок, прикреплю ещё раз результаты бенчмарка по CPU bound задачам, там и Bun есть. По RPS и latency в вебе уже не раз пруфал, что перформнас типичного бекенд фреймворка на пхп ощутимо хуже чем на ноде.

>uWS и Bun это не Нода, это отдельный компилируемый код. Workerman написан на PHP и производительней Ноды более чем в 5 раз!


Wokerman это тоже не PHP, это отдельный код, отдельный фреймворк. Да и будь он не отдельным, он перформит всего лишь чуть лучше Express, когда идёт в паре с Symfony/Laravel/Yii.

>Даже голый PHP более производительный чем Нода.


Смотря в чём. В CPU-bound нет, в веб-задачах в некоторых бенчмарках нет, в некоторых да. Но сравнивать голый PHP и голую Ноду нет смысла, на голых никто не пишет бекенды. Кстати, Techempower использует 18 версию Ноды, она медленее LTS 20 и последне 22.

>И uWS/Bun не быстрее чем Workerman.


Снова отрицанее реальности? Пик 2.
430 3276153
>>76128
это и есть твои "аргументы" из этого поста, дурачок ты типизированный
431 3276155
>>76149
Nodejs - 104-е место
PHP - 65-е место
Fastify - 102-е место
Webman - 35-е место

PHP переигрывает Ноду по всем фронтам.
432 3276158
>>76079

>описание типов это составная часть задач


Нет.
https://en.wikipedia.org/wiki/Simply_typed_lambda_calculus
433 3276160
>>76127
А-ха-ха. Какие миллионы строк кода? Ты хоть писал на них, код читал? Или просто теоретик? Что симфони что ларавел простые как палка. Особенно ларавель. Да по документации сравни количество фич в лаке и в несте. Где у тебя в ларавеле поддержка тсп микросервисов? Ларка это просто инструмент чтобы хттп ручки с базой данных соединить, прикученна сбоку очередь, для игрушечных проектов и скафолдинг достаточно удобный. На несте билинги пишут, а на ларке форму заказа для шаурмичной.
434 3276161
>>76037

>могут отказать в рассмотрении, если ты живёшь в России/Украине


Что будет если напиздеть?
435 3276162
>>76161
Тебе в любом случает тоже напиздят с три короба. Тем более то мутные крипточерти...
436 3276167
>>76162

>Тебе в любом случает тоже напиздят с три короба


Бесконечный круг пиздежа получается?
437 3276168
>>76167
А где сейчас не так?
438 3276172
>>76160
В Ларе есть Octane, Livewire и еще куча фич, по сути отдельные проекты. Еще скажи, что Rails микрофреймворк. Лара по фичам и соответственно по объему кода примерно соответствует Рельсам. В Ноде никогда не было и не будет подобного фреймворка.
439 3276177
>>76160

>тсп микросервисы


Чего?

На PHP написан Алиэкспресс и Алибаба. В Китае на PHP пишут сверхнагруженные приложения, включая реалтайм. Поизучай Gitee и Bilibili.
440 3276185
>>76172
Что тебе октане дает. Ускорение? Ты застаь сначала пыхарая нормальные запросы к бд написать. Что ты собрался еше ускорять?
Лайвире ноуней хуйня от одного кренделя. Только хуево об ларке свидетельсвует, что она последнее время всяким дерьмом загадилась ради хайпа. Зачем тога формы выпилили из ларавеля. Хотели кодобазу почистить..
В симфони хоть хотвире из рельсов взяли а не стали всякую чушь тащить. Хотвире со стимулусом в любом фреймворке прикручивается.
Опять же это все хуйня для шаурмичных.

>В Ноде никогда не было и не будет подобного фреймворка.


Какого такого? Ты неста хоть доку открывал?
441 3276188
>>76177

>сверхнагруженные


Перегруженные? Надеюсь через край не вываливается?
442 3276192
>>76185
Livewire это аналог Hotwire из Рельсов, умник.
443 3276203
>>76192
Ну да. Это говно чтобы UI компоненты на пыхе писать. Только нахой этим лисапедом для создания шаурмичных хвастаться. Я на пыхе за шесть лет так нормальной работы и не видел. Каждый раз либо мутный кабан с мутным проектом типа беттинга гамблинга, либо нищий кабан с магазином и интеграциями.
444 3276213
>>76162

> мутные крипточерти


>разработчики USDT


Хуя дебил, лол!
445 3276216
>>76172
>>76127
Что есть в ларе и симфони, чего нет в несте?
446 3276224
>>76213
Разве нормальные люди пойдут делать инструменты для отмыва мафиозных денег
447 3276227
>>76153
И ты не способен их опровергнуть, способен только серить в тред и бессильно взять слово аргументы в кавычки
448 3276228
>>76224
Есть пруфы, что через USDT отмывают мафиозные деньги? Нет. Зато миллионы людей по всему миру используют USDT чтобы дёшево и быстро переводить деньги друг другу, особенно людям в другие страны.
449 3276230
>>76224
Нет, нормальные люди не пойдут работать ни в один из российских банков
450 3276235
>>76227
Тайпскриптодебил не унимается, читай, дурачок:
https://ru.wikipedia.org/wiki/Апелляция_к_авторитету
451 3276238
>>76228
Мне пох. Я не про USDT пиздел. Анон вообще про крипту спрашивал. Если он будет в крипту вкатываться, то врядли в такие рафинированые компании, скорее в мутные ввяжется, которых в телеге дохуя, к челам со смехуечками из 90ых...
452 3276255
>>76235
Вообще-то апелляция к хорошим компаниям, это не апелляция к авторитету. Хорошая компания подразумевает что в ней хорошие настроенные процессы, а значит они делают хорошие практики. Если бы он сказал, что Линус Торвальдс хорошо отзывался о тайпскрипте, тогда бы это была апелляция к авторитету.

мимо
453 3276258
>>76235
Вот тут перечислены голые факты:

> Во-первых, описание типов это составная часть задач. Во-вторых, они и без any быстро решаются, если разработчик не лоускилл или не свежий неопытный вкатыш.


> Так any-хуйня это как раз чистый JS. Тебе, видимо, проекты на более серьёзном языке не доверяют, не хватает навыков, знаний, опыта, ума, чтобы быстро решать задачи на тайпскипте без использования any. Any можно в принципе практически никогда не использовать, есть unknown, который нормальными инженерами крайне редко используется в качестве замены any.



А вот тут просто вывод, сделанный из твоих постов:

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

454 3276260
>>76238
Правильно, не идите сюда. Тут даже во второсортных относительно Tether компаниях полная удалёнка, зарплаты ощутимо выше рынка, интересные проекты. Не думаю, что вам такое нужно, лучше пукать в кресло в офисе Сбера за 300 сотыг рупий.
455 3276267
а кложураскрипт шиз в тред еще захаживает своей зп хвастаться?
456 3276273
>>76260
Так и область слабо связанна с тематикой треда. Хочется логику на жс/тс писать, а не контракты на солидите. Почему именно из жс треда туда пойдут, а например не из питоньего или пхпешного. Я вообще как-то раз попал на написание криптоговна на пыхе. Но я не выбирал это, в галере проект прилетел.
457 3276275
>>76155
Смотрим один из самых показательных тестов Fortunes:

fastify 70 место
symfony 115 место
yii2 104 место
laravel 120 место

В реальных веб-фреймворках в Fortunes пхп проигрывает по всем фронтам, включая:

symfony-workerman 76 место
yii2-workerman95 место
laravel-workerman 101 место

Смотрим второй важный тест, Data updates:

symfony-workerman 27
fastify 34
symfony 38
yii2-workerman66
yii2 83
laravel-workerman 103
laravel 110

О да, symfony-workerman слегка обогнал fastify. На elysia и UWS лучше не будет смотреть, а то станет слишком неприятно.
458 3276279
>>76273
Контракты на солидити это отдельная специализация blockchain developer. А я речь веду про работу фронтом или беком в web3 компаниях, в этом случая работа это дефолтный react/next либо express/fastify/nest + web3 либы для подключения к потоку информации с блокчейна, а сами контракты такие люди не пишут.
459 3276281
Да заебали. Ничто из пыхоприяды не требует никакого ускорения кроме оптимизации запросов к БД. Область применения не та...
460 3276283
>>76281
пыхоплеяды*
461 3276292
>>76275
Data updates:
Webman 14,070
462 3276296
>>76275
Fortunes:
Webman 254,017
463 3276298
Врете. Вассерман свегда занимал первые места в своей игре...
webman.png21 Кб, 531x284
464 3276300
>>76292
>>76296
Data updates:
UWS 21,433
Elysia 19,263

Fortunes:
UWS221,793
Elysia 174,261
465 3276303
>>76300

>UWS


>Elysia


Это не Node.js
466 3276305
>>76303
Если Workerman это PHP, to UWS это Node.js. Если я буду писать бекенд на UWS, то я буду взаимодейтствовать только с Node.js и JavaScript. Если я пишу бекенд на Ноде без UWS, то я с написанными на C/C++ V8 и libuv тоже не взаимодействую.

>µWebSockets is exposed to Node.js as a simple-to-use, native V8 addon.

467 3276308
>>76305

>Workerman


Написан на PHP.

>UWS


Написан на C/C++.
468 3276311
>>76308

>Написан на PHP.


Но это отдельный фреймворк.

>Написан на C/C++.


И что? Вся Нода написана на C/C++
469 3276317
>>76308
Все таки он https://github.com/walkor/workerman/blob/master/src/Worker.php#L722
написан на этой хуйне https://bitbucket.org/osmanov/pecl-event/src/master/

UWS тоже ка си++ расширение для ноды работает

так что спор не о чем.
470 3276318
>>76317

>UWS тоже ка си++ расширение для ноды работает


Заменяя сетевой стек Ноды. Получается, что ты сравниваешь уже не Ноду с PHP. Нода медленнее PHP, даже если PHP без асинхронности.
471 3276320
>>76317
И почему ты кстати запал на китайского вассермана если давно был Ratchet http://socketo.me/ с ивент лупом на той же самой хуйне
472 3276323
>>76318

>Нода медленнее PHP, даже если PHP без асинхронности


Если ты забыл, изначальное утверждение было конкретно про бекенд на ноде, а не просто нода. Про превосходство в перформансе у бекенда на ноде всё ясно тут: >>76275
473 3276324
>>76323

>в перформансе у бекенда на ноде всё ясно


Здесь >>76155
Даже если юзать PHP как есть, без асинхронности, Нода проигрывает. На этом всё.
474 3276325
>>76318
Ты как попугай говоришь про сетевой стек не ведая что ивент луп и организует в этот сетевой стек. Как у тебя сокеты селектятс если не через этот ивентлуп. У тебя в твоем васермане тоже стек заменяется получается. Точнее не заменяется а даже добавляется. Потому что без него пыха не может делать мультиплексинг сокетов
475 3276332
>>76324
В процитированном тобой посте из бекенд фреймворков только Fastify, плюс ты привёл цифры из Composite Score, где в PHP учтены все результаты с workerman и swoole, а не только голый PHP. Ты, похоже, пытаешься троллить непробиваемой тупостью и твердолобостью. Так что я дополню что имел в виду в одном из своих первых постов >>73070
Тут имелась в виду коммерческая разработка бекенда на JS/TS, которая делается на ноде, хотя если начинать бессмысленно меряться хуями, то важно именно JS/TS, чтобы не было кукареков про "Bun не считается". Но я всё-таки имел в виду коммерческую разработку, которая делается именно на ноде, и именно на популярных инструментах (Express, Nest, Fastify, иногда что-то типа Moleculer...). Поэтому очевидным образом ведётся речь о том, что типичный бекенд на ноде (Nest-Fastify) будет быстрее бекенда на Фастапи/Рельсах/Симфони и т.п., что легко подтверждается. Ну а ты дольствуйся тем, что голый ПХП чуть-чуть быстрее голой Ноды, хотя стоит к нему навесить Симфони с Ларой, то начинается заметное падение перформанса по бенчмаркам, даже если привасянить к основному фреймворку твой не являющийся PHP workerman.
476 3276335
>>76332

>В процитированном тобой посте из бекенд фреймворков только Fastify


А, ошибся, там Webman, а не Workerman. Ну тогда добавляй в сравнение Elysia, или UWS и hyperexpress.
477 3276339
Этот ваш Ecma/Javascript умирает. Хули вы в это говно вкатываться пытаетесь, когда из нормальных языков остались только плюсы, раст и c#?
478 3276340
>>76339
Я уже много лет пишу на этом языке и по моим наблюдениям он только развивается, как и его экосистема. Но раст и сишарп крутые, не спорю, только зачем мне туда переходить, если мне и тут хорошо, да и микросервис на расте вполне смогу написать при необходимости.
479 3276343
>>76340

>раст и сишарп крутые


В чем заключается крутизна раста? Зачем он нужен, когда есть тот же C++?
sage 480 3276364
>>76343

>В чем заключается крутизна раста? Зачем он нужен, когда есть тот же C++?


Тупорылые вопросы. А зачем нужен язык Х? Чтобы люди имели выбор! Или все обязаны использовать то, что ты используешь? Rust - это современный язык. Он блять появился не во время sourceforge и svn, когда трава была зелёной, а бородатые одмены писали баш скрипты вручную. С++ это мамонт программирования. Там каждая крохотуленька ебёт мозги, особенно окружение - надо autoconf настраивать, тесты, линтеры. Достоинство rust'а в том, что мне не надо об этом думать. Я не думаю о всех этих макросах, мейкфайлах, и т.д. Я просто сел и у меня уже все тесты, линтеры подхватились и настроились на раз-два. Мне не надо думать "а все ли зависимости установлены?". Если я ставлю вручную какую-то либу в С++, типа armadillo, мне надо ещё установить зависимости к зависимостям блять. Или если я в коде не там поставил указатель в С++, придётся гадать миллион лет, почему программа крашится. Такого не бывает в расте. С++ это дико переусложнённый язык.
Обновить тред
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски

Скачать тред только с превьюс превью и прикрепленными файлами

Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах.Подробнее