Главная Юзердоски Каталог Трекер NSFW Настройки

Программирование

Ответить в тред Ответить в тред
Check this out!
<<
Назад | Вниз | Каталог | Обновить | Автообновление | 506 48 110
JS Thread #315 /js/ Аноним # OP 30/08/24 Птн 21:03:42 3260395 1
image.png 100Кб, 1050x1050
1050x1050
Предыдущий тред: >>3243924 (OP)

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

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

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

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

Что там по ОРМ? Призма? Дризл? Монгус? Секвелайз?
Аноним 30/08/24 Птн 21:26:54 3260412 3
Аноним 30/08/24 Птн 21:31:26 3260418 4
>>3260410
Фреймворк для фронта - Angular
Бэкенд - чистый Node.js
БД для бэкенда - запись в файл.
Аноним 30/08/24 Птн 21:33:05 3260421 5
>>3260418
Это стек палаты номер 6?
Аноним 30/08/24 Птн 21:36:06 3260424 6
Аноним 30/08/24 Птн 21:50:37 3260436 7
345345.jpg 50Кб, 1073x210
1073x210
>>3259446 →
Проблема в том, что это нихрена не работает.

И вариант с never тоже не работает.
Аноним 30/08/24 Птн 21:51:59 3260439 8
>>3260421
жертва маркетологов, плиз. необоходимость использовать БД ушла с момента когда иметь 128 гб оперативки стало нормой, а капасити жестких дисков может исчислятся сотнями террабайтов. Но хитрые кабаны конечно же не хотят терять клиентов, поэтому продолжают тебе продавать оверхед в виде базы данных.
Аноним 30/08/24 Птн 21:54:59 3260442 9
>>3260436
const elementId = props.view === "element" ? props.elementId : null;

И я все же советую тебе решить это разбиением компонента на 2, используяя композицию.
Аноним 30/08/24 Птн 21:55:29 3260443 10
>>3260439
Постгрес бесплатный. Мне нужны таблички. Я табличками думаю.
А ноду я бы заменил на петухон
Аноним 30/08/24 Птн 22:11:31 3260450 11
345345.jpg 23Кб, 282x300
282x300
>>3260442
Я тупанул, проблема здесь не в этом. Проблема здесь в том, что в
<AttributesManager view='element' />
он не требует указывать ещё и elementId

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

Не получается выставить корректно ограничения на типы пропсов.
ComponentProps1 - то как есть.
ComponentProps2 - то, что должно быть в идеале, но не работает.
Аноним 30/08/24 Птн 22:41:58 3260467 12
>>3260443
>я табличками думаю

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

>бесплатный

))) потом его купит хитрый кабан, а у тебя уже миллион зависимостей на постгрес и нужно платить этому кабану.
Аноним 30/08/24 Птн 22:44:50 3260470 13
>>3260450
Что тебе мешает сделать пропс

ComponentProps1 = {
viewConfig: {view: "overall"} | {view: single, id: ElementId | ComponentId }
}
Аноним 30/08/24 Птн 23:08:58 3260487 14
Делаю простенькое расширение в firefox по тексту. Пишу -
>body=document.body.innerHTML;
>body=body.replace(/зелёный/g, 'синий');
>document.body.innerHTML=body;
- работает, заменяет в большинстве случаев. Но есть 2 нюанса:
1. Иногда не "ловит" текст, который вроде бы и отображается, но в page source браузера не виден.
2. Перестаёт работать интерактив.
Аноним 31/08/24 Суб 03:04:01 3260523 15
Аноним 31/08/24 Суб 04:34:10 3260529 16
Аноним 31/08/24 Суб 04:47:39 3260530 17
kekw.jpg 63Кб, 1236x772
1236x772
Аноним 31/08/24 Суб 05:33:26 3260534 18
>>3260529
вся индустрия пользуется стейт менеджером, один ты бедный вкатунок не понимаешь зачем ано
Аноним 31/08/24 Суб 05:37:32 3260535 19
>>3260487
>[...(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());
Аноним 31/08/24 Суб 05:39:13 3260536 20
>>3260523
Надеюсь, что только ты не понял вопроса. Как исправить это? Нужно, чтобы не слетал интерактив после работы расширения чтобы корректировался весь текст, а не только видимая в source часть.
Аноним 31/08/24 Суб 05:40:27 3260537 21
>>3260535
Попытаюсь разобраться, спасибо.
Аноним 31/08/24 Суб 05:40:54 3260538 22
>>3260536
[...(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 перебрать и в них поменять.
Аноним 31/08/24 Суб 05:50:41 3260539 23
>>3260537
там происходит вот что
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
Аноним 31/08/24 Суб 06:07:24 3260543 24
>>3260529
1) Не ври. Редакс ты каждый раз не пишешь. Упрощения нет
2) От того что ты удалил паттерн код в простом случае стал проще, но не лучше.

Я давно видел на ютубе лекцию с Деном Абрамовым где он одной из фич редакса показывал путешетвие по истории состояний. Икать лень Код писать проще, чем искать
https://jsfiddle.net/sah934jw/
Аноним 31/08/24 Суб 06:28:02 3260547 25
Аноним 31/08/24 Суб 06:44:34 3260549 26
>>3260543
> Разработчик редукскала рассказывает о его нужности
Ясно
Аноним 31/08/24 Суб 06:46:53 3260550 27
>>3260534
>вся индустрия
Вся индустрия занимается изображением бурной деятельности и собственной значимости, чтобы кабаныч платил зарплату. Чем больше оверинжиниренной хуйни будет в коде, тем "индустрии" лучше
Аноним 31/08/24 Суб 06:54:29 3260551 28
>>3260550
Предположим ты делаешь графический редактор типа попошопа только в баузере. Там будет ебическое состояние у UI. Тебе же проше использовать паттерн глобального состяния кторое меняется акшенами.
Аноним 31/08/24 Суб 06:59:13 3260552 29
>>3260534
> не понимаешь зачем ано
Чтобы сделать глобальную переменную и ни для чего больше. Я это второй день доказываю. А ты черт из ада, не умеющий какать.
>1) Не ври. Редакс ты каждый раз не пишешь. Упрощения нет
Пук.
>2) От того что ты удалил паттерн код в простом случае стал проще, но не лучше.
Пук.
>путешетвие по истории состояний
Нахуй не надо. Если нужны путешествия сделайте либу для путешествий. Вернись-ка нахуй к теме предсказуемости, черт.
Аноним 31/08/24 Суб 06:59:31 3260553 30
Аноним 31/08/24 Суб 07:01:52 3260554 31
>>3260547
Твой говнокод потерял всякий смысл. Его больше нельзя понимать с первого взгляда, че ты сделать хотел тоже хз. Дефайн предсказуемость.
Аноним 31/08/24 Суб 07:09:12 3260556 32
>>3260554
Ты в упор паттерн не видишь? Я же не буду тебе адеквантный по сложности код писать, чтобы преимущества были очевидны. А я этот говнокод написал чтобы пояснить суть паттерна стейт менеджера. Сама суть: у тебя есть одно определенное место где ты коммитишь новое состояние. Туда выносится логика изменения состяния UI
Аноним 31/08/24 Суб 07:10:30 3260557 33
>>3260556
> Сама суть: у тебя есть одно определенное место где ты коммитишь новое состояние.
Для этого не нужен редукс. Это просто глобальная переменная.
Аноним 31/08/24 Суб 07:13:23 3260559 34
>>3260557
Глобальную переменную может любой хуй изменить в любом порядке. При сложном проекте ты не будешь знать что это за хуй и по какой логике он это делает. Поэтому ты логику выносишь в редьюсер
Аноним 31/08/24 Суб 07:14:59 3260560 35
>>3260559
>Глобальную переменную может любой хуй изменить в любом порядке.
Любой хуй в любом порядке твои редюсеры будет вызывать.
>Поэтому ты логику выносишь в редьюсер
Вынес логику в класс.
Аноним 31/08/24 Суб 07:19:04 3260561 36
>>3260560
>>Глобальную переменную может любой хуй изменить в любом порядке.
Смысл что редюсеров не много, а компонентов сотни.
>Вынес логику в класс.
Как угодно. Я на реакте тоже не пишу. На ангуляре у меня асинхронный стейт менеджер на rxjs
Аноним 31/08/24 Суб 07:21:12 3260562 37
>>3260561
>Смысл что редюсеров не много, а компонентов сотни.
Пук. Дефайл предсказуемость.
Аноним 31/08/24 Суб 07:22:24 3260563 38
>>3260561
> ангуляр
> Любитель оверижиниренного кала защищает другой оверинжиниренный кал
Ну кабаныч-то платит? Это главное
Аноним 31/08/24 Суб 07:24:00 3260564 39
>>3260562
Вынести состяние на бекенд на питухоне. Верстку генерировать jinja. Динамику на фронте сделать с помошью htmx
Аноним 31/08/24 Суб 07:24:35 3260565 40
Аноним 31/08/24 Суб 07:27:01 3260566 41
А всё я понял, что ты глобальную переменную называешь словом предсказуемость.
Аноним 31/08/24 Суб 07:29:31 3260567 42
17250325880110.jpg 124Кб, 1463x474
1463x474
>>3260566
Я стейт менеджер называю
>the action of thinking about something in a logical, sensible way.
Аноним 31/08/24 Суб 07:31:33 3260568 43
>>3260567
У каждого компонента может быть локальная переменная которую они откуда-то копируют. И тогда в них могут различаться значения. А если они все возьмут из одного места, то это будет предсказуемо. Потому что глобально.
>Я стейт менеджер называю
Это глобальная переменная.
Аноним 31/08/24 Суб 07:37:37 3260569 44
Погнали дальше теперь вуе серии объясняют нахуй нужна pinia.
Аноним 31/08/24 Суб 07:38:03 3260570 45
Аноним 31/08/24 Суб 07:42:22 3260571 46
>>3260568
Я согласен стакой формулировкой. Только вот подумай почему в vuex сделали отдельно коммит, отдельно акшен, а в комите запретили делать асинхронные запросы. Накой черт они это напридумывали? В сложном коде важна не только глобальная переменная, но и способ доступа к ней. Это часть паттерна.
Аноним 31/08/24 Суб 08:19:50 3260583 47
>>3260569
А я вам объясню. Реактодебил уже наученный что глобальная переменная в реакте называется стор гуглит стор для вуе и попадает в вуекс и пинию.
Т.к. чтобы тебе нравился оператор свитч надо быть абсолютно бахнутым сумасшедшим то выбор попадает на пинию.
Глобальная реактивная переменная в вуе создаётся одной функцией export store = reactive({})
В реакте чтобы так сделать надо попердолиться а в вуе искаропки.
>>3260571
Могу предположить что когда они писали блоатваре который не нужен и ничего не делает, они создали сами себе проблем и решили их так.
>часть паттерна
Этот паттерн называется глобальная переменная.
Аноним 31/08/24 Суб 08:34:37 3260585 48
Блять. С фронтендерами невозможно паттерны обсуждать. Они возьмут частный пример из своей любимой библиотеки и будут противопоставлять это общему паттерну.
В вуе реактивные объекты под каптом. Реактивность отслеживает изменени зависимых переменнх, т. е по сути является интерфейсом доступа к реактивному состоянию. Это не просто переменная жс, доступ к которой ты вынужден сам контролировать.
Аноним 31/08/24 Суб 09:10:40 3260598 49
>>3260583
«Глобальная» переменная в реакте создается с помощью useState, сторокал не нужен
Аноним 31/08/24 Суб 09:13:25 3260599 50
Аноним 31/08/24 Суб 09:15:59 3260601 51
>>3260599
А то. У любителей навернуть энтерпрайзных абстракций случается шок, когда оказывается, что жс можно использовать не наворачивая тонн их привычного говнеца, которое они притащили с собой из прошлого.
Аноним 31/08/24 Суб 09:28:39 3260605 52
>>3260601
А useState это не то, о чем речь, когда ты делаешь парент компонент с огромным огромным огромным объектом состояния? Тоже самое. Только кривая лапша из useState и useEffect. Плюс в глубокие дочерние компненты надо колбеки пропихивать через пропсы, количество которых растет лавинообразно
Аноним 31/08/24 Суб 10:27:57 3260630 53
>>3260598
А useContext зачем тогда?
Аноним 31/08/24 Суб 10:47:01 3260638 54
>>3260630
useContext - для проброса переменной, созданной через useState
Аноним 31/08/24 Суб 11:27:14 3260655 55
>>3260534
Не пизди. У нас продукт с более 300к ежедневных пользователей, стейт менеджерами не пользуемся, а из мест в которых они были выпилили. Но у нас ангуляр с DI и rxjs, поэтому можно аккуратно разбивать на сервисы и изолировать состояние, а не прибегать к глобальным переменным в виде стейта. Анон все верно говорит, проблема этих менеджеров в очень хуевой инкапсуляции, ты модешь модифицировать стейт из любого места программы и это считается нормой, поэтому и приводит к багам которые трудно дебажить и говнокоду уровня спаггети
Аноним 31/08/24 Суб 11:31:25 3260659 56
>>3260551
Нет, мне проще делать один источник истины, а не пилить костыли вида "ну пусть их будет сотня, я просто сделаю глобальную переменную, которая бужет на UI отображаися после того кск вся сотня заэмитит значение"
Аноним 31/08/24 Суб 11:38:52 3260664 57
Самое нелепое это то что возможность добавления сайд эффектов (мидлвар для обработки экшенов) предоставляется как охуенная фича, а не анти паттерн который делает код еще менее предсказуемым. Ну т.е. все это дерьмо с глобальной переменной в виде стора, с сайд эфыектами в виде мидлвара их создатель может защитить только высером "ну так делать не надо, это плохо, делай хорошо и будет хорошо, хоть это сделать и сложно". Сама концепция целиком состоит из антипаттернов, но макаки съели и молятся на фотку наркомана даньки.
Аноним 31/08/24 Суб 11:42:46 3260666 58
>>3260659
Но источник истины ты как-то должен обновляться? Иначе какой в нем смысл? Вот ты из всех виджетов эмитишь в него значение. Заметь слов эмитишь, а не переписываешь его прямо.

У тебя есть сервис в ангуляре инкапсулирующий состояние в BehaviorSubject. Сабжект подписывается на другие измнения или в методах сервиса вызывается next(state) на сабжекте.
Аноним 31/08/24 Суб 11:49:39 3260673 59
>>3260664
Бекендеры жуют мидлвары и не возмущаются. Мидлвары это не антипаттерн. Подходит для реализации Cross-cutting concerns. У тебя приложуха на экспресе. Тебе везде в каждой ручке надо авторизоваться - распарсить JWT и проверить его валидность. Это легче сделать в мидваре. Хочешь логировать запросы - в мидваре. И тп
Аноним 31/08/24 Суб 12:42:36 3260741 60
>>3260673
Ты бэкендер? Зачем ты это вообще высрал? При чем здесь пайплайн мидлваров в бэкенде и работа со стейтом на фронте? В бэкенде это трансорфмация не стейта, а одного куска данных в единицу времени, например запрос к которому ты добавляешь нужные заголовки, ты не будешь потом этот запрос сохранять и получать к нему доступ из разных мест как в приложении с UI, он уйдет и на его месте появится совершенно другой запрос. В этой цепочке отсутствуют мутации уже существующего стейта, в то время как в твоем говноредаксе это норма, ты можешь по пути мутировать какой-то совсем левый стейты, ну просто потому что тебе так посчиталось удобным, в бэкенде ты просто этого делать не будешь, потому что работаешь с конкретным запросом, а не глобальным стейтом.
Аноним 31/08/24 Суб 12:45:34 3260745 61
>>3260666
>Но источник истины ты как-то должен обновляться?

Да, он слушает подписывается на нужные события и обновляет стейт, это и есть инкапсуляция, принцип инверсии зависимостей, сервис знает как работать со стейтом, когда его обновлять, он дает только доступ к его чтению, его запись полностью под контролем этого сервиса.
Аноним 31/08/24 Суб 12:46:45 3260748 62
>>3260741
Так не делай такого. Мидлвары для общих действий. В экспресе ты тоже можешь накосячить в реквесте как хочешь. Он не инкапсулированый как и любой обжект в жс.
Аноним 31/08/24 Суб 12:49:50 3260749 63
>>3260745
Редюсер тоже знает как работать со стейтом. А стейт обновляется акшенами. Главное что мы вынесли из компонентов как источник истины не только глобальную переменную состояния но и поведение.
Аноним 31/08/24 Суб 12:59:05 3260756 64
>>3260748
Ты работаешь с разными видами данных на бэкенде, у тебя на бэкенде нет UI и связанного с ним стейта. Тебе просто в голову не придет обновлять какой-то рандомный счетчик, в ответ на какое-то совсем не относящееся к нему действие, а в реакте со сторами такое сплошь и рядом, просто потому что макаке показалось это удобным в какой-то момент времени, теперь он правда уже сам не помнит почему.
>>3260749
Твой редюсер это глобальная переменная которая синхронизирует чтение и запись, всё. Нет сокрытия доступа к записи, нет разделения на сервисы которые знают как и когда делать запись, все упирается в
>Главное что мы вынесли из компонентов как источник истины не только глобальную переменную состояния но и поведение.
и в
>Так не делай такого.
Т. е. в какие-то мантры вида "мы просто делаем все правильно, это же очевидно как надо делать" о чем и писалось выше, по итогу получаем нерасширяемый, неподдерживаемый код макак, которые кнопку добавлять могут месяц, а потом отлаживать связанные баги еще полгода.
Аноним 31/08/24 Суб 13:08:04 3260764 65
Да что тут говорить, проиграл в голос когда на стэковерфлоу увидел ответ, внимание, от самого Дэнчика, который расписал простыню на тему "так делать не надо, предполагается что ты делать будешь вот так, и вот почему ...". Это же один из первых признаков говнодизайна - неочевидность того как пользоваться, возможность пользоваться разными способами, при этом правильный будет только 1 из 100. Самому "дизайнеру" приходится бегать с горшком в одной руке и платочком в другой, ведь пользователи его поделия постоянно срут под себя и пускают слюну.
Аноним 31/08/24 Суб 13:08:07 3260765 66
>>3260756
Ну так мидлвары Абрамов сделал, чтобы санки запилить (redux thunks это вроде его мидлвар), а не стейт произвольно менять. Стейт меняется через акшены. Это правило. Причем здесь криворукость макаки? Я в ангуляре тоже могу запутать все стримами как паутиной, без всяких инкапсуляций.
Аноним 31/08/24 Суб 13:29:43 3260784 67
>>3260765
Стейт меняется через акшены. А redux thunks с чем работает, не с акшенами? Ой, что тут у нас, неявное изменение стейта? Я не в мидлвар его изменил, это всё экшон!! Супер удобно, спасибо!
> Я в ангуляре тоже могу запутать все стримами как паутиной, без всяких инкапсуляций.
А кто тебе даст? У тебя есть строгая архитектура, у тебя нет глобального стейта и пуканья экшенами из любого места которое тебе приглянется. Это тоже хорошее отличие, без сторов и редаксов ты сразу можешь сказать "'этот чел написал хуйню", с ним ты разве что подумаешь "ну вроде это норма, все так делают", а то что чел напиал хуйню ты узнаешь только когда это до пользователей дойдет и они не по хэппи патс пойдут.
Аноним 31/08/24 Суб 14:10:41 3260816 68
>>3260784
То есть ты говоришь что pushActionToGlobalStore({ actionName: "setVariable", variableName: "a", value: 1 }) вместо store.a = 1 снимает у трясунчика анальника тряску. Он сразу видит что это код серьезный и ломает что-то. Я тебя услышал. Так же как dangerouslySetInnerHTML
Аноним 31/08/24 Суб 14:16:10 3260823 69
Аноним 31/08/24 Суб 14:21:54 3260827 70
>>3260816
Ну да, другого ведь макакену не дано, он только с глобальным стейтом работать умеет, при этом если его спросить хорошо это или плохо, он скажет плохо (потому что на курсах так сказали).
Для работы со стейтом нужна архитектура, а не глобальные переменные, запомни это, сычушь. Тогда и проблем не будет из-за того что у тебя диспатчится сотня экшенов и разных мест и мутируетсяя весь стейт в разных сагах, потому что они эти экшены слушают.
Аноним 31/08/24 Суб 15:18:39 3260882 71
>>3260827
Дефайн архитектура.
Аноним 31/08/24 Суб 15:49:39 3260909 72
Про пыню сам автор пыни писал, что всякие флуксы-хуюксы не нужны. Типа можешь менять переменную состония откуда хочешь без всяких акшынов.
Аноним 31/08/24 Суб 16:16:23 3260943 73
>>3260882
Явное направление зависимостей.
Аноним 31/08/24 Суб 16:33:49 3260961 74
>>3260943
Направил все зависимости в глобальный суперстейт...
Аноним 31/08/24 Суб 17:07:49 3260975 75
>>3260943
Дефайн зависимость.
Аноним 31/08/24 Суб 17:09:28 3260977 76
>>3260943
>pushActionToGlobalStore({ actionName: "setVariable", variableName: "a", value: 1 })
>store.a = 1
Ты же понимаешь что направление у этих двух примеров ровно одинаковое. Разница только в том что первое это какашечка которую ты удерживаешь.
Аноним 31/08/24 Суб 17:17:45 3260988 77
>>3260909
Так пыня тоже не нужна. Она не делает ничего.
Аноним 31/08/24 Суб 17:22:20 3260991 78
Вам че в субботу заняться нечем что сидите весь день сретесь по этой хуите? Пошли бы отдохнули, погуляли на свежем воздухе, книжку почитали
Аноним 31/08/24 Суб 17:46:14 3261010 79
>>3260977
А при чем здесь эти два примера, дауненок? То что ты там с кем то про разновидность глобального стейта переписывался и споришь о вкусах говна, не значит что я делал выбор в пользу какого-то из них. Я в целом сказал, что все эти редаксы-хуяксы сделаны наркоманом на коленке, который не понимает что такое правильная архитектура приложения, а также не знает базовых принципов проектирования.
>>3260975
Иди книжки по архитектуре почитай, там тебе все определения дадут и разжуют.
Аноним 31/08/24 Суб 17:52:48 3261014 80
>>3260977
В первом случае ты выносишь логику в редусер
Во втором случае у тебя логика изменения store.a по компотентам размазана.

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

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

Во втором случае ты ставишь брекпоинты в редюсере везде, где обновляется store.a Ты сразу поймаешь какой акшен срабатывает первым, а какой вторым. Мало того у тебя в девтоуле реакта есть возможность в откатится по истории и повторить дебаг
Аноним 31/08/24 Суб 17:54:32 3261015 81
Аноним 31/08/24 Суб 18:02:13 3261018 82
>>3261014
слоу фикс

В первом случае ты ставишь брекпоинты в редюсере
Во втором случе ты рыскаешь
Аноним 31/08/24 Суб 18:08:12 3261021 83
>>3260991
Девчоку в кафэшку сводили бы. Пробзделись.
Аноним 31/08/24 Суб 18:09:33 3261023 84
>>3261021
Пробсдется нужно прямо при девочке в кашешке?
Аноним 31/08/24 Суб 18:44:41 3261055 85
>>3261014
Вся суть макак - код строится на попытках предсказать как они будут искать баги, вместо того чтобы предотвращать их появление. При этом о фиксе даже речи не идет, потому что оба случая подразумевают "ну хуй знает, давайте таймаут в одно из мест добавим епта..."
Аноним 31/08/24 Суб 18:53:16 3261065 86
>>3261010
>А при чем здесь эти два примера, дауненок?
При том что код делает заведомо одно и то же.
>не понимает что такое правильная архитектура приложения
Ты буквально не можешь дать определение. Потому что в твоем понимании архитектура это сложные названия функций, чтобы ты не трясся.
>>3261014
>выносишь логику в редусер
>actionName: "setVariable"
Нет там никакой логики. Это индусский код чтобы больше строчек написать.
>чтобы поставить брейкпоинт в дебагере. Ты даже не знаешь в какой последовательности одно обновление тригерит другое.
Я могу завернуть стор в прокси объект и поставить брейкпойнт там.
Аноним 31/08/24 Суб 19:21:08 3261081 87
Аноним 31/08/24 Суб 19:32:17 3261090 88
>>3261065
>Нет там никакой логики. Это индусский код чтобы больше строчек написать.
Щас будем отрицать хуевость глобальных переменных?
>Я могу завернуть стор в прокси объект и поставить брейкпойнт там.
И шо? Максимум ты колстек увидишь, а логику продебажить не сможешь.
Аноним 31/08/24 Суб 19:35:44 3261093 89
15547844435090.gif 425Кб, 300x300
300x300
Как решить, какие данные положить в стор, а какие в состоние компонента?

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

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

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

Как?
Аноним 31/08/24 Суб 20:03:20 3261110 90
>>3261065
>Ты буквально не можешь дать определение
Я буквально дал определение выше. Ты не способен осилить, не говорю уже книгу по архитектуре, а хотя бы базовые принципы и паттерны разработки приложения, отсюда и непонимание того о чем тебе пытаются сказать. Макака увидела глобальный стейт и теперь нахваливает, потому что толпа других макак подхватила.
Аноним 31/08/24 Суб 20:09:00 3261115 91
>>3261093
Изначально наркоман денчик предполагал, что тебе не нужен будет глобальный стор, так как даже он понимал, что это супер хуево. Идея вроде простая, у тебя есть хост компонент, ты в нем используешь useState и дочерним этот стейт устанавливаешь, если нужно что-то от дочернего получить, то оборачиваешь это в функцию и передаешь ее дочернему компоненту, а тот вызывает с нужными данными.
На бумаге вообще заебись, но что на практике? На практике это привело к явлению под названием пропс дриллинг, когда стейт хост компонента нужен не прямому ребенку, а ребенку-ребенка или еще ниже, в итоге ты этот стейт пробрасываешь через n детей для того чтобы использовать только в одном. Вот поэтому пришли костыли в виде редаксов и глобальных переменных (хранилищ).
Аноним 31/08/24 Суб 20:24:56 3261131 92
>>3261093
Что здесь непонятного?

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

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

А без стейта можно обойтись когда у тебя расчёты на лету. Допустим, тебе надо продукты сгруппировать по месяцам и выводить. Тогда можно просто делать products.map(product => ...тут делаем массивы по месяцам и выводим на фронт) не обязательно сохранять куда-то
Аноним 31/08/24 Суб 20:42:00 3261153 93
>>3261090
> Щас будем отрицать хуевость глобальных переменных?
Да, в них нет ничего хуевого.
> И шо?
И задача поставить брейкпойнт в месте изменения переменной выполнена.
>Максимум ты колстек увидишь, а логику продебажить не сможешь.
Потому что ты скозал?
>>3261110
> >Ты буквально не можешь дать определение
> Я буквально дал определение выше.
Не в силах пояснить за первый базворд ты пукнул вторым.
Аноним 31/08/24 Суб 21:34:53 3261176 94
>>3261153
>базворд
Ну да, для селюка который первый раз книгу открыл всё что в ней написано это набор базвордов, что и требовалось доказать, типичная макака.
Аноним 01/09/24 Вск 00:58:29 3261245 95
>>3261131
>Сделал запрос к апи, получил список продуктов например, обработал json, конвертировал, положил в стор.
Положил в стейт компонента, который этот список вырисовывает. Размонтировался компонент- списка нет и не надо возиться с очисткой1 стора.

>Наоборот создал новый продукт - добавил в стор.
Создал продукт - отправил запрос на бэк. Обновил список, вернув новые данные с бэка. Иначе можно добавить продукт на фронте, когда на бэке ошибка и ничего не добавилось.
Аноним 01/09/24 Вск 02:49:14 3261268 96
>>3261245
Ой бля, там куча тонкостей.

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

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

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

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

В общем, ничего критичного не будет, просто некрасивое решение, с миллионом стейтов. Лучше просто взять редакс, замутить стор и редюсеры c логикой.
Аноним 01/09/24 Вск 03:01:49 3261269 97
>>3261268
>Но это будет длинная лапша в стиле if (api.status === 400)
Что тебе мешает это вынести в отдельную функцию, которая о компоненте ничего не знает, но при этом умеет обрабатывать ответы?
Аноним 01/09/24 Вск 04:24:01 3261280 98
>>3261269
>Что тебе мешает это вынести в отдельную функцию
Ну я же говорю в десятый раз, это будет просто 100500 маленьких утилиток смешанных с десятком стейтов. Куча мала. Можно вынести transformResponse, добавить туда setIsLoading, setData и всё прочее и всё это замемоизировать. Но решение будет говно.

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

Твоё решение:
- Смешать логику и данные
- Посадить это всё в useEffect
- Разнести логику в миллион маленьких утилит
- Замеизировать каждый чих, иначе это будет постоянно ререндериться
Аноним 01/09/24 Вск 06:08:29 3261291 99
>>3261176
Это у программистов профессиональная привычка сказать какой-нибудь базворд чтобы от него отъебались, подумали что он умный и т.д. Поэтому они их постоянно говорят.
Аноним 01/09/24 Вск 06:12:22 3261292 100
>>3261268
>>3261280
> А что если я хочу показывать скелетон во время загрузки?
> А что если я хочу сделать пагинацию продуктов?
> А что если мне надо добавлять id token к каждому запросу?
> А что если мне надо кешировать список продуктов?
> А что если я хочу обновлять список каждые 10 секунд?
> А что если я хочу конвертировать время из апи в вид "продукт добавлен два часа назад"?
> А что если мне надо обновлять подсвойство а-ля "сейчас продукт смотрят два покупателя"?
Это все логика или это все отображение?
Аноним 01/09/24 Вск 06:12:51 3261293 101
Логика и отображение это базворды между прочим.
Аноним 01/09/24 Вск 11:45:12 3261382 102
Приходишь на собес, тебя начинают спрашивать про SOLID, паттерны проектирования, системный дизайн, а ты просто отвечаешь "это все базворды, просто складывайте всё в глобальный стейт" - личрали каждый юзер стейт менеджеров.
Аноним 01/09/24 Вск 12:16:11 3261392 103
Где та линия, по которой проходит граница, когда нужно класть в стейт компонента, а когда в стор?
Аноним 01/09/24 Вск 12:40:46 3261400 104
>>3261382
Ну солид - реально баззворд. Когда ты в последний раз, крася очередную кнопку, думал: «А не нарушаю ли я принцип подстановки Барбары Лисков?»
Аноним 01/09/24 Вск 13:34:55 3261426 105
>>3261392
>Где та линия, по которой проходит граница, когда нужно срать в унитаз, а когда в сортир?
Аноним 01/09/24 Вск 13:49:15 3261431 106
>>3261382
С чего бы? Стейт менеджер не идеальная штука, но чисто по SOLIDу
SRP - делегируешь логику стейта из компонента в стейт менеджер. Компонент отвечает только за функцию отображения
DIP - Компонет не зависит от стейт менеджера, только от его интерфейса. Стейт менеджер легко заменить например на инстанс для юнит тестирования.
OCP - Норвую логику ты добавляешь в стейт менеждер, а в компотненты только акшен. Таким образом у тебя код расширяется не приводя к модификации (существенной) частей завищих от этого кода
Аноним 01/09/24 Вск 14:34:55 3261452 107
>>3261431
>Компонент отвечает только за функцию отображения
А диспатчить ты ничего не будешь? Было бы так, если бы ты только брал данные, но у тебя компонент помимо того что напрямую их мутирует еще и свой стейт может создать, отсюда противоречие:
>делегируешь логику стейта из компонента в стейт менеджер
Даже в треде появился человек, который не понимает где у него стейт должен быть, сразу пошли какие-то разнотолки уровня "да это же очевидно епту", нет, чел, это не очевидно, потому что SRP нарушен. В компоненте он нарушен потому что компонент может как держать свой стейт, так и изменять глобальный стейт в стейт менеджере. В стейт менеджере он нарушен потому что стейт не только там хранится, но и меняется, при этом что такое стейт? Это стейт какого-то одного компонента? С твоих слов выглядит так, но на деле это глобальный стейт и не только компонентов, а вообще всего что душе угодно, любое место может пукнуть в этот стейт, а он должен знать как его сохранять и обрабатывать, где ты тут SRP видишь? Тут n ответственностей, где n это количество пукающих в твой стейт менеджер ака глобальную переменную.

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

Что ты несешь, полоумный, какой это интерфейс когда ты создаешь редюсеры, сторы, селекторы, а потом их напрямую импортишь и используешь также напрямую через диспатч. Нет никакой абстракции от этого стора и всей цепочки его зависимостей, DI это инверсия зависимостей, когда источник данных имплементирует интерфейс который задает ему компонент, т. е. интерфейс должен быть на стороне компонента, имплементация на стороне стора, в случае со стором интерфейс и имплементация полностью задаются на его стороне, компонент полностью зависит от стора, нет никакого DI.
>OCP - Норвую логику ты добавляешь в стейт менеждер, а в компотненты только акшен
>только акшен
Ну т. е. всё таки не клозед? Всё таки открыть надо? Еще и подебажить, пару костылей вставить в компонент. И почему у тебя новая логика в стейт менеджер добавляется, у него же SRP, какая нахуй логика компонент? Ах, да, ну это не только стейт, это еще всякая бизнес логика, а также юай логика, удобно когда все в одном месте! OCP это когда при добавлении новой логики ты не меняешь старый компонент, а добавляешь новый компонент расширяя старый (наследование), либо используя его в новом компоненте (композиция).
Аноним 01/09/24 Вск 15:00:37 3261460 108
>>3261452
Да солид это не 9 заповедей.
1) Инпуты буду диспатчить. Инпуты это часть ответственносити UI. А отправка запроса, обработка данных, другая логика - нет
2) Кто тебе мешает интерфей выделить Если помнишь в тайпскрипте структурная типизация. Компонент от этой лабуды не зависит. Это чистая функция с аргументам в виде пропсов. Ты ее можешь из отдельно файла импортировать в файл компонента и в файл теста.
3) Покажи использование OCP где ничего не редактируется. Не надо так глупо трактовать этот принцип. Может только где нибудь спринге ты в хмл конфиге новую зависимоль прописываешь и она подхватывается и что-то там меняет в контейнере. В общем слуае OCP такого не требует. Вот если бы ты размазал логику по нескольким компонентам и каждое изменение затрагивало несколько компонентов, то тогда это нарушение OCP. В простм случает ты добавляешь в редьюсере в свитч еще один бранч с акшеном и обавляешь акшены в компоненты, а не лопатишь их логику useEffect по всем компонентам.
Аноним 01/09/24 Вск 15:09:14 3261463 109
>>3261460
И да ты заебал. Я фулстек на ангуляре. На реакте я не пишу давно мне на него насрасрать в высокой колокольни.
Аноним 01/09/24 Вск 15:10:41 3261465 110
Аноним 01/09/24 Вск 16:10:05 3261502 111
>>3261463
почитал ваш срачь
нахуй вас и фронтенд ваш
ебанутые
лучше пойду токарем на завод
чем поеду кукухой как вы
Аноним 01/09/24 Вск 16:39:26 3261512 112
>>3261502
у
тебя не
было шанса
вкатитсья потому что ты
пишешь как залетный уебан из вконтакта
с 50 iq
Аноним 01/09/24 Вск 16:52:56 3261527 113
>>3261512
залетный? т.е. завсегдатай сосача > завсегдатая вкудахте/пикабу? ухахаха
вкатился тебе за щеку, пес.
труЪ пацаны делают лаве и прут тяночек. неважно, чем занимаешься по жизни при этом - точишь детальки или фронтенд пилишь.
никчемные мудачьки спорят о какой то хуете по двое суток, на кой то хер доказывая свою правоту такому же еблану. холиварить - удел бездельников диванных. для всех остальных без задач.
пиздуй кнопочьки рисовать дедлайн горит, а то уволят и наймут индуса на твое место.
Аноним 01/09/24 Вск 16:58:08 3261532 114
image.png 29Кб, 1545x820
1545x820
>>3261392
Нарисовал на схеме. Если переменная относится к контенту и хедер про неё ничего не знает тогда оставляй там. Если это например юзер (ты) который и в хедере и в контенте, то он глобальный.
Аноним 01/09/24 Вск 16:59:00 3261535 115
Аноним 01/09/24 Вск 17:01:12 3261538 116
>>3261535
слабый аргумент
где же твой iq > 50 ?
Аноним 01/09/24 Вск 17:04:10 3261540 117
>>3261538
я даже не
читал
твой высер
потому что
ты продолжаешь
писать как уебан
Аноним 02/09/24 Пнд 07:29:52 3262034 118
Есть ли какой-то способ гарантированно узнать, что функция вызвана как тэг строки шаблона? Или только по косвенным признакам определять, типа первый аргумент это массив и т.д.?
Аноним 02/09/24 Пнд 07:34:27 3262035 119
>>3262034
сделай две функции, додикс
Аноним 02/09/24 Пнд 07:40:00 3262037 120
>>3262035
Вся суть в том, что нужен один прокси-объект для любых вызовов. Делаю что-то вроде жиквери-хуйни.
Аноним 02/09/24 Пнд 07:59:31 3262049 121
>>3262034
Что такое тег строки шаблона я должен по кофейной гуще догадаться?
Аноним 02/09/24 Пнд 08:02:21 3262053 122
Аноним 02/09/24 Пнд 08:02:59 3262054 123
>>3262037
ну тогда тебе пизда, потому что жс динамикодрися
Обкручивай то что передаешь в классы, а не передавай в свое апи жс примитивы. Ты можешь раздеть сущности
1) апи что принимает обект и делает полезнуб работу
2) конструкторы обектов, теги для строк возвращаюшие обекты
Аноним 02/09/24 Пнд 08:04:01 3262057 124
Аноним 02/09/24 Пнд 08:04:51 3262058 125
Аноним 02/09/24 Пнд 08:06:52 3262061 126
Аноним 02/09/24 Пнд 08:12:11 3262065 127
>>3262037
Кому нужен? Чем пользователю будет удобней иметь одну функцию которая может использоваться как тэг и просто как функция, вместо двух функций одну с суффиксом tag другую без него?
Аноним 02/09/24 Пнд 08:57:58 3262109 128
>>3262065
Чем пользователю будет удобнее просто $ вместо $ и $tag?
Аноним 02/09/24 Пнд 09:26:18 3262130 129
>>3262109
Тем что он по коду сможет найти место с тегами и место без. В целом код будет читаться лучше, когнитивная нагрузка меньше. Буквально такая же проблема как у того кто это говно сделал - непонятно как отличать. Поэтому чтобы этой проблемы не было, нужно разделять на функцию-тег и просто функцию.
Аноним 02/09/24 Пнд 10:58:42 3262256 130
>>3262034
Все нормальные популярные библиотеки проверяют так:
if (!Array.isArray(parts.raw) || !Object.isFrozen(parts.raw)) {
throw new InvalidInputError('Function must be called as a template literal.');
}

где parts это первый аргумент твоей функции (TemplateStringsArray)
Аноним 02/09/24 Пнд 11:01:26 3262258 131
Аноним 02/09/24 Пнд 12:45:19 3262352 132
Можно стрелочную функцию использовать как ловушку внутри прокси-объекта? Если мне получаемый this не нужен, ничего не сломается?
Аноним 02/09/24 Пнд 15:54:32 3262498 133
image.png 165Кб, 1333x989
1333x989
Ласковый хайр 16 лет назад:
Аноним 02/09/24 Пнд 17:27:38 3262602 134
React, next, nest, ts и всякое разное сверху типа orm и либ реакта. Уже можно искать РАБоту, или стоит еще что доучить?

Знаю что один хуй ничего не найду, но не сидеть же без дела. Давайте думать блять, подсказывайте.
Аноним 02/09/24 Пнд 18:18:40 3262661 135
>>3262602
Пчел, без нейросетей вкат всё.
Аноним 02/09/24 Пнд 19:22:39 3262711 136
>>3262602
вкат все - разворачивайся. даавай до свидули
Аноним 02/09/24 Пнд 21:26:07 3262802 137
>>3262661
>>3262711
Посмотрите на этих надменных хуесосов сидят ебало воротят, вкатились несколько лет назад когда из требований кабанчика было знание html и css
Аноним 02/09/24 Пнд 21:44:16 3262813 138
>>3262802
Прежде всего ты знаешь, что:
> когда из требований кабанчика было знание html и css
- это не правда. Пару лет назад вкат был таким же тяжелым. Вкат был легким до 19г. А сейчас все: Ии, школота с уников и АйТи пузырь который лопнет. Вкат закрыт. Au revoir
Аноним 02/09/24 Пнд 22:42:50 3262860 139
>>3262802
Вкатился в 2к7. Требований, вообще, никаких не было.
Английский со словарём? Вы приняты!
Аноним 03/09/24 Втр 07:21:34 3262995 140
>>3262602
Расскажи про макротаски и микротаски и в чём их различие. Стандартный вопрос на собесе.
Аноним 03/09/24 Втр 09:01:45 3263055 141
>>3262995
Define макротаски
Define микротаски
Аноним 03/09/24 Втр 09:17:14 3263067 142
Аноним 03/09/24 Втр 10:17:41 3263107 143
>>3263067
Как ты вообще до этого дошел?
>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?
Аноним 03/09/24 Втр 10:53:58 3263146 144
>>3263107
Шо там понимать челлл

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 получает ивент, мол, полочка пустая. У этого ивента калбек - посмотреть, нет ли микротасок в евент залупе. Если есть - кладет первую в очереди опять на полочку.
Аноним 03/09/24 Втр 10:54:30 3263147 145
image.png 147Кб, 1058x974
1058x974
>>3262995
>макротаски и микротаски
Отвечаю:
- Я досконально изучил движок JavaScript и фактически перенял его принцип работы, и планирую руководствоваться им на рабочем месте.

Middle+ JavaScript Developer
Аноним 03/09/24 Втр 11:13:14 3263165 146
>>3263147
>Кантор
Кто такой этот Кантор и каков его вес за пределами ру сектора? Почему на него шликают в ру?
Аноним 03/09/24 Втр 11:33:27 3263184 147
почему undefined вместо нормальных строк при использовании i18next? в консоли ошибок нет
Аноним 03/09/24 Втр 14:13:42 3263321 148
>>3263165
не нравится кантор, есть mdn. не нравится mdn наслаждайся ECMAScript® 2025 Language Specification
Аноним 03/09/24 Втр 15:43:51 3263370 149
>>3263184
Потому что где-то функция вернула undefined.
Аноним 04/09/24 Срд 07:45:33 3263947 150
>>3262602
Перечисленный тобой стек это самая база для фуллстека, с точно таким же и работаю. Хз как сейчас выкатиться не рисуя 3 года опыта. Может через стажёрство в крупных компаниях.
Аноним 04/09/24 Срд 12:58:06 3264131 151
image.png 144Кб, 320x672
320x672
Чья мама?
Аноним 04/09/24 Срд 13:01:43 3264133 152
>>3264131
Очередное доказательство что фронты пидорасы
Аноним 04/09/24 Срд 16:03:03 3264326 153
Аноним 04/09/24 Срд 16:29:04 3264353 154
Почему браузеры не поддерживают дробные значения для размеров? В фигме мне нарисовали рамку толщиной 0.25, и что мне с этим делать?
Аноним 04/09/24 Срд 19:37:09 3264505 155
Аноним 04/09/24 Срд 20:18:21 3264532 156
>>3264133
По моему опыту в айти, самые пидорасы это всегда девопсы.
Аноним 04/09/24 Срд 20:18:39 3264533 157
Аноним 04/09/24 Срд 21:03:11 3264571 158
354354345.jpg 46Кб, 600x449
600x449
Аноним 04/09/24 Срд 22:58:52 3264642 159
>>3264532
>>3264571
Почему девопсы? По-моему самые пидорасы это не только про специализацию, а ещё и про стек. Повышенное количество пидорасов наблюдается в датасаенсе и машинлёрнинге, среди бекендеров на руби и немейнстрмных языках (скала, эликсир, раст...), среди мобильных разрабов, особенно когда пишут под ios.
Аноним 04/09/24 Срд 23:10:55 3264645 160
>>3264642
потому что везде, где я был девопсы были чсвшными красноглазыми чмошниками, которые ставят себя выше других только потому, что знают наизусть команду как посмотреть логи сервиса systemd и умеют тыкаться в гуй кубернетеса или его заменителя.
Аноним 05/09/24 Чтв 00:40:30 3264661 161
Напомните плиз либу, которая эмулирует девтулзы (консоль в частности) внутри DOM. Пытаюсь в гугле найти, но не могу. От меня как обычно - тонны нефти.
Аноним 05/09/24 Чтв 00:43:46 3264662 162
Аноним 05/09/24 Чтв 09:40:04 3264783 163
я фронт. подскажите плз ресурсы по изучению graphql. мне известено: оф сайт graphql, туторы из apollo. этого хватит или стоит прочитать какую-нибудь книгу?
Аноним 05/09/24 Чтв 10:25:44 3264805 164
>>3264783
graphql это залупа из фейсбука для умственно отсталых, фронтов, да. Какая еще книга?
Аноним 05/09/24 Чтв 10:35:20 3264808 165
>>3264805
ооо, дай угадаю, наверное ты тот самый человек, который топит за ангуляр и ненавидит реакт?
Аноним 05/09/24 Чтв 10:40:28 3264810 166
Аноним 05/09/24 Чтв 12:27:35 3264887 167
>>3264783
Зачем тебе это неюзабельное неудобное говнище? Разработчики в последние годы всё больше отказываются от использования этой мертворождённой технологии.
Аноним 05/09/24 Чтв 19:35:36 3265262 168
>>3264808
Но ведь гкл внатуре говно.
Аноним 05/09/24 Чтв 23:00:20 3265414 169
>>3262813
Вообще много васьков с завода свою жизнь тратят на изучение хуйни типа setinterval и как он в ивент залупе паткапотом работает? Хули им еще надо? Какие то реакт, редакс, флякс, хуякс, коммерческий опыт блядь, нест, гит, базы данных, проекты блядь резюме. Я бля 8-9 месяцев на изучение этой хуйни потратил, извольте на сРАБотку взять и за ручку первые полгода-год провести, очко у ваших ждунов илитариев от этого не выпадет. Капец кабаньё охуело, ебаный срыночек
Аноним 05/09/24 Чтв 23:55:12 3265479 170
Аноним 06/09/24 Птн 06:52:29 3265576 171
мне кажется мы, фронты, в основном чеды. аргументы против?
Аноним 06/09/24 Птн 08:49:42 3265621 172
>>3265576
Если ты по наитию красишь кнопки так, что все девки текут, то бесспорно.
Аноним 06/09/24 Птн 10:19:20 3265698 173
a1fcd90615565c2[...].jpg 68Кб, 1000x663
1000x663
Есть какие-то дебаггеры с расширенным функционалом чем встроенный в хроме?
Суть такова, что есть например 55к строк js-кода, которые работают на сайте. И дрочиться выискивать одну переменную, особенно если её ещё шифруют всякими криптоалгоритмами постоянно оче тяжко, а если весь этот прикол еще обфусицирован, это вообще финиш.
Есть такая фича можно вставить лог на переменную и при запуске скрипта получить все значения, но опять же это геморно. Не понятно почему до сих пор нет ничего чтобы логировало все значения переменных и вставляло значения в код закоментированными.
Или например вообще имба была бы если бы запускал какой-то кусок например логина на сайт и вот из кода 55к строк на выходе было бы закоменченно всё что не работало при входе на сайт. Это была бы сказка, как бы сузилась область поиска.

Где вообще искать нечто подобное если стандартные средства хрома куцые для таких задач?
Аноним 06/09/24 Птн 11:50:07 3265762 174
>>3265698
>а что такое сурсмапы?
Аноним 06/09/24 Птн 13:28:06 3265913 175
Аноним 06/09/24 Птн 14:13:21 3265962 176
Аноним 06/09/24 Птн 14:17:30 3265965 177
Аноним 06/09/24 Птн 14:51:41 3266008 178
Аноним 06/09/24 Птн 17:02:03 3266133 179
>>3265762
>а почему вы мне сурс мапы на прод не упаковали?
И правда.

мимо
Аноним 06/09/24 Птн 17:50:03 3266170 180
>>3265913
>Вкат во фронтенд
>2025
Лол!
Аноним 06/09/24 Птн 18:05:31 3266178 181
>>3266170
>2025
В смысле, я на 2026 нацелился.
Аноним 06/09/24 Птн 19:18:34 3266261 182
Куда на рынке делись все фронтендеры сеньоры? Уже пол года не можем нанять, а те, кто приходят просят 500к+ оклад. Неужели все съебались из РФ?
Аноним 06/09/24 Птн 19:19:55 3266263 183
>>3266261
>Куда на рынке делись все фронтендеры сеньоры?
Они есть, вы им отказываете по нищете
Аноним 06/09/24 Птн 19:21:12 3266265 184
>>3266263
Есть "сеньоры", которые даже не знают, что такое сентри. Норм синек нихуя нет.
Аноним 06/09/24 Птн 19:35:19 3266273 185
Аноним 06/09/24 Птн 19:39:15 3266278 186
>>3266273
Быть помидором, т.е. уметь что-либо серьезное помимо верстки кнопок.
Аноним 06/09/24 Птн 20:07:32 3266285 187
1725642422069.jpeg 45Кб, 900x787
900x787
Нужно сверстать элемент как на пике. Суть - слева список контейнеров, состоящих из картинки и текста, справа большое изображение. Контейнеров может быть произвольное количество, выравниваются они по центру. Как такое реализовать? Пик немного не точен на самом деле, у круга должно юыть выравнивание по нижнему правому краю.
Аноним 06/09/24 Птн 20:19:56 3266290 188
>>3266265
Ну я знаю что такое сентри.
Но ты ведь тогда спросишь что такое grub, я скажу что такое grub, ты спросишь в чём разница между setImmediate и process.nextTick, я отвечу, ты спросишь, как называлось дефолтное событие внутри v-modal до третьего Vue, я отвечу, ты спросишь разницу между __proto__ и [[proto]].

Это называется "зажрались". Это hr-вариант поиска принца на белом нуксте.
Аноним 06/09/24 Птн 20:20:45 3266292 189
>>3266133
Если это твой прод, иди воспроизводить в тесте.
Если чужой - хуле ты там забыл?
Аноним 06/09/24 Птн 20:32:44 3266302 190
>>3266261
Во фронте (не зарубежном офк) есть 500к зарплаты?
Аноним 06/09/24 Птн 21:28:06 3266329 191
>>3266302
Да просто грех не потроллить мудаков, которые отбрасывают кандидатов из-за sentri, которая учится в обеденный перерыв.
Аноним 06/09/24 Птн 21:53:15 3266338 192
>>3266290
>ты спросишь в чём разница между setImmediate и process.nextTick, я отвечу, ты спросишь, как называлось дефолтное событие внутри v-modal до третьего Vue, я отвечу, ты спросишь разницу между __proto__ и [[proto]].
Нет, я спрошу как бы ты строил архитектуру нового фронтового сервиса и что бы делал, что бы он не падал.
Аноним 06/09/24 Птн 21:53:29 3266339 193
>>3266302
Мне максимум 400 предлагали на синьку.
Аноним 06/09/24 Птн 21:54:26 3266340 194
>>3266329
Так причем тут учится/не учится? Мне похуй, даже если чел ниразу в жизни им не пользовался, главное что он должен знать, как отлавливать ошибки на фронте раньше того, как их тебе принесет разъяренный продакт или вторая линия техсапа.
Аноним 06/09/24 Птн 22:36:07 3266361 195
>>3266340
Ну обмажься тайпскриптом, юнит-тестами и штатом тестировщиков.
Но в достаточно сложной системе достаточно редкие логические ошибки не отловить никак, только десятками лет и миллионами юзеров.
Аноним 06/09/24 Птн 23:06:40 3266374 196
>>3266339
Как бы ты учил фронтенд в 2024 с почти нуля?
Аноним 06/09/24 Птн 23:33:39 3266386 197
>>3266292
Если бы да кабы. Тупорылый токсик, плез
Аноним 07/09/24 Суб 00:16:09 3266412 198
>>3266361
>Ну обмажься тайпскриптом, юнит-тестами и штатом тестировщиков.
Одним тайпскриптом и тестированием сыт не будешь. Что будешь делать, когда на этапе тестирования проблему не выявили, на момент релиза все работало, а потом спустя несколько часов неожиданно полегло? Как от такого будешь защищаться?
>>3266374
Я с нуля никогда фронтенд не учил. Планировал изначально вкатываться в эмбед, т.к. имею образование по специальности электроника.
>>3266292
>воспроизводить в тесте
А вот не воспроизводится. Что будешь делать?
Аноним 07/09/24 Суб 00:31:44 3266419 199
>>3266412
>неожиданно
У каждого факапа есть имя и фамилия. Откатывай на предыдущий билд и кури дифы.
Аноним 07/09/24 Суб 00:33:21 3266423 200
>>3266419
>Откат
Ну это да, откатили релиз, нашли проблемный код, починили. Как сделать так, что бы минимизировать вероятность такого факапа в будущем?
Аноним 07/09/24 Суб 06:03:05 3266488 201
>>3266412
>а потом спустя несколько часов неожиданно полегло? Как от такого будешь защищаться?
Никак, лол. Разбудить среди ночи программиста-удалёнщика и пусть решает проблему на месте либо советует делать откат.
У меня пет-проект на ноде как-то выдал ошибку спустя почти 10 лет. Интересно, что я считал такую ошибку невозможной и поставил guard expression чисто для красоты. И вот эта строчка сидела без дела 10 лет, а потом хуяк и сработала.
Аноним 07/09/24 Суб 06:15:00 3266490 202
>>3266423
>Как сделать так, что бы минимизировать вероятность такого факапа в будущем?
Ты как будто ждёшь волшебного слова, типа "юзай Sentry Pro+ Unlimited". На самом деле тут техпроцесс нужен по особому организованный.
Как в аэрокосмической отрасли: многоступенчатость проверок и проверки проверок. Кросс-ревью кодеров, затем ревью техлида, потом тестовый сервер, потом частичный накат на прод, потом прод. Сбор юзерских отзывов.
Делали так на сайте с историей в 20 лет и миллионной аудиторией, на моей памяти не падали.
Аноним 07/09/24 Суб 08:32:20 3266515 203
Может во время гибернации потеряться переменная, лол?
Включил сегодня утром ноут и, не обновляя открытую страницу, наткнулся на такой баг, который возможен только если бы обнулилось значение одной из ранее заданных в замыкании переменных.
Аноним 07/09/24 Суб 13:19:10 3266681 204
>>3266338
Что значит сервиса? Ты охуел? Чтобы "сервис" не падал, существуют SRE и девопсы. Схуяли я должен выполнять их работу? Фронтенд это блядь сбилженная статика либо обыкновенный SSR в ноде. А архитектура на фронте это долбоебизм откровенный, ты же про всякие feature sliced design? Это вредное говно. На фронте достаточно грамотной и логичной структуры проекта и следование бест практисам фреймворков/библиотек, например про правильное размещение стейта в реакте - локальный/глобальный стейт и т.д.
Аноним 07/09/24 Суб 13:51:09 3266702 205
Аноним 07/09/24 Суб 14:07:34 3266712 206
>>3266261
Я фронтендер сеньор, 7 лет опыта, могу ещё писать бекенд на ноде и го (не на уровне сеньора, конечно, но микросервисы умею), скоро буду искать работу, планировал назвать такие цифры: от 300 минимум, 400 в идеале, думаю 400 найду в итоге. Но у меня перерыв в работе, я довольно долго уже не работаю. Если бы не это, я бы говорил от 400 минимум, или вообще валютную удалёнку искал на $5к и выше.
Аноним 07/09/24 Суб 14:08:24 3266713 207
>>3266712
Как бы ты учил фронтенд в 2024 с почти нуля?
Аноним 07/09/24 Суб 14:12:18 3266716 208
>>3266702
>А эти нет.
В твою помойку и не собирался проходить. Sentry в любой нормальной контoре юзают, ErrorBoundary в реакте и т.д., а ты несёшь хуйню про архитектуру фронтенд сервиса. Какие сотрудники, такая и компания, я от таких мест держусь подальше.
Аноним 07/09/24 Суб 14:29:46 3266728 209
Чем вам нравится JS? Когда его заменят новым стандартом?
Аноним 07/09/24 Суб 14:31:37 3266729 210
>>3266728
Мне не нравится, пишу всё на тс, даже мелкие петики
Аноним 07/09/24 Суб 16:12:37 3266792 211
>>3266729
Почему фичи TS тупо не сделают новым стандартом типа ES7? Я нафаня, мне такое не особо стыдно спрашивать.
Аноним 07/09/24 Суб 18:45:10 3266959 212
>>3266792
Почему питону без типов нормально? Вот потому же. JS кроме прочего должен оставаться достаточно простым в своей основе, чтобы несложные вещи можно было писать без дрочения интерфейсов.

Вообще, TS своими бесконечными объявлениями мне всё больше напоминает печально известный язык Java. Ещё немного, и у тайпскрипта появится своя Scala и свой Kotlin, кек.
Аноним 07/09/24 Суб 19:04:09 3266988 213
>>3266728
>Чем вам нравится JS?
Нормальные бабки плотят
Аноним 07/09/24 Суб 20:16:26 3267054 214
Появилась идея сделать свою либу, замешанную на throw. Это же как goto, вещь с огромным потенциалом.
Аноним 07/09/24 Суб 20:28:59 3267067 215
>>3267054
Хочешь чтобы сайты еще больше тормозили? Суть исключений это выбрасывание вычислений в унитаз.
Аноним 07/09/24 Суб 21:01:23 3267078 216
Если я пишу так:

myFunc
("my string")

то я могу быть уверенным, что это сработает на всех браузерах? это часть стандарта, или есть шанс, что какой-то интерпретатор поставит ; после myFunc?
Аноним 07/09/24 Суб 21:05:46 3267081 217
>>3267078
Я бы тебя на ревью обоссал.
Аноним 07/09/24 Суб 21:15:13 3267085 218
>>3267081
Да ты бы и собаку обоссал
Аноним 07/09/24 Суб 22:00:53 3267135 219
>>3267078
Не можешь. В любом случае, твой код пройдет через компилятор и минификатор, который будет решать, как это интерпретировать.
Аноним 07/09/24 Суб 22:52:32 3267169 220
>>3267054
Пробуй. Саспенс в рякте полностью вокруг выкидывания организован и работает отлично.
Аноним 07/09/24 Суб 22:53:22 3267170 221
>>3266728
>Чем вам нравится JS?
Очень совренменный, простой, с хорошими либами (включая встроаенные и npm) язык. Максимум чего не хватает - нормального многопотока.
Аноним 07/09/24 Суб 23:21:21 3267179 222
>>3267170
>многопотока
Эх, щас бы с мьютексами попердолиться.
Аноним 08/09/24 Вск 00:05:47 3267205 223
>>3267135
Если до минификации код работал, а после - нет, то грош цена этому минификатору.
Аноним 08/09/24 Вск 00:17:20 3267220 224
>>3266728
Нравится тем, что смог в него самостоятельно въехать и освоить. До этого покупал книги по разновидностям Си, и они меня от программирования только отталкивали. Я просыпался ночами в холодном поту и бормотал: public static final constexpr override reinterpret_cast.
Аноним 08/09/24 Вск 02:35:07 3267259 225
>>3267220
JS тоже по книгам учил?
Аноним 08/09/24 Вск 04:03:48 3267274 226
>>3266959
Тайпскрипт больше напоосинает сишарп. Потому что, сюрприз, у них один создатель.
Аноним 08/09/24 Вск 04:13:43 3267275 227
>>3267179
А в голанге пердолятся с мьютексами? Или в C#, джаве, скале? Не особо. В го к примеру почти всегда каналы юзаются. Я вот как и автор поста на который ты ответил тоже больше всего хочу чтобы в жс был нормальный многопоток. Потому что заебало писать отдельные микросервисы на другом языке, мне на жс/тс намного больше всех остальных языков нравится, в идеале хотел бы писать только на нём. И на самом деле далеко на все хайлоадные сервисы необходимо писать на другом языке, большой поток http запросов обрабатываются легко и с низкой задержкой, в этом жс на голову выше остальных скриптовых языков и не так уж сильно хуже джавы/дотнета/го, но с CPU bound тасками случается некоторое дерьмо, которое лучше будет обработать сервисом на голане или даже расте.
Аноним 08/09/24 Вск 04:54:43 3267276 228
Скачал ваш webstorm, создал проект по умолчанию, и при запуске отладки у меня кроме index.html никакие файлы не подтягиваются. Ошибка 404. Как фиксить это дерьмо?
Аноним 08/09/24 Вск 05:00:38 3267277 229
>>3267276
Выбросить это "чешское" говно и поставить vscode
Аноним 08/09/24 Вск 05:03:53 3267278 230
>>3267277
Стоит уже, хочется полноценную ide. Сидел бы в студии, но она не поддерживает вложенные стили
Аноним 08/09/24 Вск 05:21:19 3267279 231
>>3267278
Че за "полноценная ide"? В джетбрейнс-говнище можно только полноценно трахаться с чисткой кэша и перезапуском
Аноним 08/09/24 Вск 06:34:08 3267290 232
image.png 296Кб, 530x550
530x550
>>3267259
Да, это был 2010, кажется, год.
Аноним 08/09/24 Вск 07:37:15 3267303 233
>>3267276
Что-то у меня уже жопа горит от вашего веба. Всё, что мне нужно это открыть веб страницу, на которой запустится скрипт на ts, и мне его нужно как-то отладить. Так я не могу! Я не могу в script указать ts в качестве src, только js, в итоге отлаживать получается только уже скомпилированный сука кода.
Аноним 08/09/24 Вск 07:42:57 3267305 234
Аноним 08/09/24 Вск 07:43:53 3267306 235
image.png 49Кб, 566x610
566x610
Аноним 08/09/24 Вск 07:46:31 3267308 236
>>3267306
Впрочем сейчас наконец получилось все завести. Правда в изначальном проекте, который создал webstorm, у script был аттрибут type="module" и с ним почему-то нихуя не работало, CORS выдавал ошибку. В интернете советовали использовать liveserver, но с ним не работала уже отладка в вс коде.
Аноним 08/09/24 Вск 07:47:02 3267309 237
>>3267308
Ну тебе же сказали что он говно
Аноним 08/09/24 Вск 07:51:34 3267310 238
>>3267309
Так модули же часть js, почему в вс коде они не подтягиваются?
Аноним 08/09/24 Вск 08:48:38 3267322 239
>>3267310
Потому что браузеры говно.
Аноним 08/09/24 Вск 10:26:26 3267368 240
>>3267322
А с какой стати браузеры должны уметь новейшее js-говно? Компилируй в es5-бандлы и не выёбывайся.
Аноним 08/09/24 Вск 12:17:17 3267454 241
>>3267278
В смысле не поддерживает вложенные стили? Не подсвечивает синтаксис? Звучит как бред. У меня и в дефолтной теме подсвечивает, и в любых других.
Аноним 08/09/24 Вск 12:21:45 3267461 242
Аноним 08/09/24 Вск 13:14:49 3267498 243
>>3267461
Хз, у меня нету никаких ошибок, а встроенное в вскод форматирование я за 5+ лет никогда не юзал. Все используют prettier + stylelint.
Аноним 08/09/24 Вск 14:31:48 3267526 244
>>3267498
При чем тут вс код блять, когда речь о полноценной студии.
Аноним 08/09/24 Вск 14:46:34 3267541 245
>>3267526
Последняя нормальная студия была в 2008, прекрати насиловать стюардессу
Аноним 08/09/24 Вск 16:46:31 3267630 246
>>3267368
А с какой стати браузеры должны корсами ебать мозги? Просто собирай сингл пейдж шетемеле со всеми стилями и скриптами и распространяй через локалку!
Аноним 08/09/24 Вск 18:54:48 3267737 247
>>3267526
Кто в своём уме будет писать фронтенд в студии вместо вс кода?
Аноним 08/09/24 Вск 21:55:25 3267895 248
image.png 368Кб, 729x640
729x640
>>3266728
>Когда его заменят новым стандартом?
Никогда. Блюдём традиции.
Аноним 08/09/24 Вск 21:55:51 3267896 249
>>3267737
Попущенный крестовичок, например.
Аноним 09/09/24 Пнд 00:01:34 3267946 250
Как работает код, что ниже?

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


Дайте, кто-нибудь, названия книг по js, чтобы полностью разобраться во всем этом ужасе.
Аноним 09/09/24 Пнд 05:45:47 3268003 251
>>3267946
IIFE
Функция создалась на коленке, функция вызвалась, другой код дёргать функцию больше не может.
Аноним 09/09/24 Пнд 05:53:19 3268005 252
image.png 14Кб, 476x211
476x211
>>3267946
>Как работает код, что ниже?
Обычная самовызывающаяся функция, притом странная какая-то нотация. "blabla1" вообще ни на что не влияет и нигде не остаётся, они могли бы назвать функцию "переходитеНаПродуктыЯндекса". Само слово "function" тоже не нужно, видимо сделано для поддержки IE7.
А вообще, самовызывающиеся функции традиционно используются в JS, когда надо на ровном месте создать изолированный блок, чтобы там сделать что-то, не захламляя окружение переменными. Сам на днях писал пикрил.
Аноним 09/09/24 Пнд 07:23:01 3268035 253
>>3268005
>blabla1 не влияет
Влияет, можно рекурсивно функцию вызывать
Аноним 09/09/24 Пнд 07:46:14 3268039 254
>>3268035
Если я правильно понял, о чём ты, есть arguments.callee
Аноним 09/09/24 Пнд 09:15:32 3268102 255
>>3268039
>arguments.callee
>Deprecated: This feature is no longer recommended
Аноним 09/09/24 Пнд 10:19:26 3268159 256
>>3268005
>А вообще, самовызывающиеся функции традиционно используются в JS, когда надо на ровном месте создать изолированный блок, чтобы там сделать что-то, не захламляя окружение переменными
А для такого надо использовать ключевое слово let или var?
Аноним 09/09/24 Пнд 11:02:05 3268182 257
Аноним 09/09/24 Пнд 13:07:16 3268299 258
>>3268159
Без разницы, функция инкапсулирует и то, и другое.
Аноним 09/09/24 Пнд 16:35:13 3268493 259
>>3268005
>". Само слово "function" тоже не нужно, видимо сделано для поддержки IE7.
Шта?
Аноним 09/09/24 Пнд 16:43:18 3268503 260
>>3268493
Он шуткует, конечно, но доля правды в этом есть - код со словом function выглядит малость устаревшим, с тех пор как распространились стрелочные функции
Аноним 09/09/24 Пнд 17:35:20 3268558 261
>>3268503
ИЕ 8 не поддерживает стрелочные функции. Вкатун косил под олдфага но был пойман за руку как дешёвка.
Аноним 09/09/24 Пнд 23:42:13 3268773 262
Что быстрее: React или Vue? Где можно нормальные бенчмарки посмотреть

Что из этого лучше учить?
Аноним 10/09/24 Втр 00:00:43 3268779 263
>>3268773
>Что быстрее: React или Vue?

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

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

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

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

Зависит от твоих целей.
Аноним 10/09/24 Втр 00:31:46 3268790 264
>>3268779
Ну синтетика должна быть
Вставки, удаления
Аноним 10/09/24 Втр 06:51:15 3268858 265
>>3268790
Что ты несешь, наркоман, какие вставки. Веб-фреймворки никак не влияют на скорость кода
Аноним 10/09/24 Втр 07:11:27 3268861 266
Не знаю, как сейчас с этим дела, но ещё 10 лет назад обсерверы в JS были жутко тормозные по сравнению с обычным вызовом функций, прямо на порядок или два медленнее.
У нас ещё комичный случай был, когда "лид" всех заставлял пользоваться его самописным "скоростным" фреймворком на обсерверах. А потом выяснилось, что это жутко медленная параша.
Эх, были времена. Этот лид ещё постоянно выбирал какая музыка будет играть в офисе.
Аноним 10/09/24 Втр 07:31:20 3268864 267
>>3268861
Даже здесь понятно, что проблема не в фреймворке
Аноним 10/09/24 Втр 09:47:23 3268890 268
Аноним 10/09/24 Втр 11:13:45 3268997 269
Аноним 10/09/24 Втр 12:08:13 3269104 270
>>3268503
В качественном коде обычно принято объявлять функции на верхнем уровне вложенности через function, например объявлять реакт компоненты.
Аноним 10/09/24 Втр 12:10:11 3269109 271
Аноним 10/09/24 Втр 19:44:06 3269541 272
Существует ли в природе чистый программист-неверстальщик на JS?
Создаётся впечатление, что знать JS - это как иметь подтянутую попку: тебя всегда пытаются склонить к какому-то непотребству, в данном случае к перекраске кнопочек.
Аноним 10/09/24 Втр 20:12:48 3269561 273
>>3269541
Но ведь покраска кнопок это охуенно, красишь не включая мозг и сотыги капают
Аноним 10/09/24 Втр 20:18:02 3269567 274
>>3269541
Пишу только бэк, об фронт не мараюсь. Спрашивай ответы.
Аноним 10/09/24 Втр 20:30:31 3269580 275
>>3269567
Как можно работать недоучкой? Ведь нода постоянно озабочена синхронизацией фич с браузером.
Аноним 10/09/24 Втр 22:41:27 3269645 276
>>3269580
Чиво? Весь екмаскрипт с в8 приходит.
Аноним 11/09/24 Срд 09:47:57 3269829 277
>>3269109
Ну если у тебя проект по удалению-вставке строк в огромной таблице, то да, Vue значительно быстрее.
Аноним 11/09/24 Срд 10:26:29 3269862 278
>>3269645
Мы вам перезвоним если скажете где в браузере коммонжс модули, а где в ноде дом апи и почему в ноде долго фетча не было, хотя в8 был. В8 это не все, у ноды даже свой ивент луп на libuv
Аноним 11/09/24 Срд 11:30:24 3269909 279
Начал трогать алгоритмы, везде предлагают компилировать их через ноду. Как правильно получать значения от "компьютера"? Условно задача - написать алгоритм, который складывает два получаемых числа.
В питоне это просто input, в обычном js я бы написал функцию с параметрами. В ноде я нагуглил только через readline, что выглядит как сущий пиздец, столько делать ради получения двух строк.
Аноним 11/09/24 Срд 11:36:17 3269917 280
>>3269909
От какого компьютера, наркоман, от пользователя?
Аноним 11/09/24 Срд 11:37:01 3269918 281
>>3269909
1) Напиши один файл с функцией ввода и рекварь его
2) Импортируй данные из jsonфайла
3) Используй готовую библиотеку
4) Выполняй в браузере. Там из коробки есть prompt("Введите чесло")
Аноним 11/09/24 Срд 11:40:58 3269921 282
image.png 80Кб, 930x756
930x756
>>3269918
Ну а если я, к примеру, делаю задание на стажировку (пикрил), и там для решения доступно просто одно окно с нодой?
Аноним 11/09/24 Срд 11:44:38 3269925 283
>>3269921
Читай в правилах к твоему литкоду. Во всех этих лидкодах в правилах объяснено откуда брать инпут, куда срать оутпут и куда писать коды.
Аноним 11/09/24 Срд 14:16:14 3270049 284
>>3269862
>где в браузере коммонжс модули
Напомни, кто от кого отстаёт?
>фетча не было
Нинужно ведь есть пиздатый http модуль.
Аноним 11/09/24 Срд 14:20:29 3270052 285
Сейчас ворсится стек go+ htmx для создание веб приложух. Как думаете js всё?
Аноним 11/09/24 Срд 14:26:16 3270056 286
>>3270052
Очередное популярное в твиттере говно
Аноним 11/09/24 Срд 15:52:39 3270099 287
>>3270052
IE, VBScript + ActiveX — наше всё.
Аноним 11/09/24 Срд 15:59:09 3270102 288
>>3270052
Максимальная соя для нетакусиков.
Аноним 12/09/24 Чтв 00:11:22 3270460 289
не заходил в тред 2 года
ну как вы тут потомки, разобрались как переменную объявить-то?
Аноним 12/09/24 Чтв 00:11:30 3270461 290
>>3270052
>одна бабка сказала...
>на заборе написано...
И? Мейнстрим редко идет по разумному пути. Если и приходит на него, то не сразу. HTML over Websockets существует уже несколько лет.
Аноним 12/09/24 Чтв 07:01:03 3270530 291
image.png 11Кб, 385x308
385x308
>>3270460
>разобрались как переменную объявить-то?
В сигнатуре функций, естественно. Самый экономный вариант. А чтобы какой-нибудь дурак не передал лишние параметры, я пишу $ в начале.
Аноним 12/09/24 Чтв 07:55:12 3270549 292
>>3270530
>какой-нибудь дурак не передал лишние параметры
дурак уже код написал
Аноним 12/09/24 Чтв 08:15:35 3270568 293
image.png 14Кб, 481x374
481x374
image.png 9Кб, 378x159
378x159
image.png 286Кб, 958x478
958x478
image.png 292Кб, 1169x510
1169x510
кек
Аноним 12/09/24 Чтв 09:14:50 3270598 294
Подскажите зеленому, нормальный подход?
Есть кнопка на html, при клике на нее открывается форма для редактирования информации.
Я хочу сделать так:
Клик по кнопке => js отправляет fetch на сервер, чтобы тот ответил, аутентифицирован пользователь или нет.
Сервер отвечает, что пользователь не аутентифицирован (например, нет валидного jwt токена в куке). js показывает div с формой для пароля. Ничего не проверяет. Сервер принимает пароль, проводит аутентификацию, ставит куки. И так по кругу. Норм тема такого общения js и сервера?
Аноним 12/09/24 Чтв 10:56:24 3270648 295
>>3270530
Как $ мешает передавать лишние параметры?
Аноним 12/09/24 Чтв 12:35:58 3270732 296
>>3270530
почему естественно? в чем плюсы?
Аноним 12/09/24 Чтв 13:43:39 3270768 297
>>3270732
потому что никто этого не ждёт.
а удивить значит победить.
Аноним 12/09/24 Чтв 16:23:24 3270886 298
>>3270568
Обсуждения почитай, дегрод, там дуракам объяснили почему такие изменения больше вредят, чем помогают.
Аноним 12/09/24 Чтв 17:59:48 3271004 299
мертвый тред мертвого языка на мертвой борде
Аноним 12/09/24 Чтв 20:19:44 3271137 300
Аноним 13/09/24 Птн 05:52:00 3271422 301
Сап, насколько сейчас актуален node js для бека?
Аноним 13/09/24 Птн 06:26:18 3271430 302
>>3271422
Только он и актуален, все остальное - легаси
Аноним 13/09/24 Птн 14:34:00 3271826 303
>>3271422
Недавно наткнулся в реддите на вопрос MERN vs spring boot, где выяснилось что оказывается мерн по сути node js этот мем стек для впаривания курсов вкатунам. Продакт бэк это спринг
Аноним 13/09/24 Птн 14:58:50 3271838 304
>>3271826
Да нода это кал для бэка. Подходит только для минимального MVP, норм продукты пилят на плюсах/расте/джаве/го.
Аноним 13/09/24 Птн 15:02:21 3271840 305
>>3271838
>норм продукты пилят на плюсах/расте/джаве/го.
даже раст есть, но не сишарп...
Аноним 13/09/24 Птн 15:03:30 3271841 306
>>3271840
ну сишарп тоже туда же. Правда хуй знает зачем он нужен, когда есть го и жаба
Аноним 13/09/24 Птн 18:56:55 3272070 307
>>3271422
Актуален, но вакансий для новичков мало, хотя конкуренция тоже относительно низкая.

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

>>3271838
На ноде тоже пишут норм продукты, только не на MERN, а на несте, остальные элементы стека такие же как и в го/джаве - постгрес, реббит/кафка, редис, кликхаус и т.д.
Аноним 13/09/24 Птн 19:44:25 3272127 308
>>3271841
как сейчас поживают пхп-бояре?
Аноним 13/09/24 Птн 20:51:08 3272189 309
>>3272127
также как и нодобояре. Хуево.
>>3272070
>На ноде тоже пишут норм продукты
Например? Какой норм продукт написан на наоде? Именно на ноде, а не использовал ноду для создания одного из сотен своих микросервисов
Аноним 13/09/24 Птн 22:04:20 3272297 310
>>3272189
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
Аноним 14/09/24 Суб 11:23:20 3272475 311
Пытаюсь осваивать более низкоуровненый JS. Сокеты, стримы, всё такое.
Мне не совсем вот понятно, а почему в Ноде такое внимание уделяется стримам?
Всё завязано на них, всё крутится вокруг них и всё такое. Файл прочитать это поток, входящий хттп запрос это поток и т.д.

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

Я чего-то не понимаю или почему так?
Аноним 14/09/24 Суб 13:07:06 3272585 312
Делаю фронт для своего бэка, поэтому сильно не ссыте в ебало, джаваскипт не мой нейтив ленгвидж.

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

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

Какие библиотеки нужно использовать?
Аноним 14/09/24 Суб 16:24:01 3272811 313
>>3272585
Еще более абстрактно написал бы, чтобы тебе точно никто не захотел помогать.
Аноним 14/09/24 Суб 19:07:59 3272946 314
>>3272475
>Я чего-то не понимаю или почему так?
В ноде всё бьётся на чанки, чтобы не блокировать слишком долго поток выполенения.
Аноним 14/09/24 Суб 21:21:24 3273028 315
>>3272189
>также как и нодобояре. Хуево.
Хз с чего ты это взял, я нодобоярин и поживаю лучше чем когда-либо.
>Например? Какой норм продукт написан на наоде?
Betboom, например. Лучший букмекер, популярный, работающий на много стран, с тир 1 продуктом по качеству. Топ-2 и топ-3 буки Winline и Pari тоже на ноде. Или бекенд Делимобиля, часть Яндекс Лавки и Яндекс Карт, Банки.ру, Сравни.ру, Леруа, в Тбанке несколько внутренних продуктов на ноде. В крипте вообще бесчисленное множество проектов, например p2p.org / Lido (крупнейший ETH стейкинг).
Аноним 14/09/24 Суб 21:26:18 3273031 316
>>3272585
>Есть компонент на Реакте(назовем его компонент А), который использует другой компонент(назовем его компонент В) и возвращает коллекцию компонентов В.
>Как сделать так, чтобы можно было передавать джейсонину в А, которая просто рендерила бы компонеты В из данных, которыей ей прилетели?
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
Аноним 14/09/24 Суб 21:27:56 3273032 317
>>3273028
а в чем плюсы бека на ноде?
14/09/24 Суб 21:47:43 3273039 318
>>3272585
>И как в Реакте передавать параметры из 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
Аноним 14/09/24 Суб 21:49:28 3273040 319
>>3273039
>redux-toolkit, создаёшь createApi
Какой же ты говноед.
14/09/24 Суб 21:57:20 3273041 320
>>3273040
Ну возьми swr какая разница
Аноним 14/09/24 Суб 23:07:12 3273066 321
>>3272585
Чел не слушай предыдущие посты, просто поставь 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, реакт это кал.
Аноним 14/09/24 Суб 23:21:08 3273070 322
>>3273032
По сравнению с чем? По сравнению с другими скриптовыми/интерпретируемыми языками (пхп, питон, руби) лучше перформанс, часто намного лучше, со многих сторон сам язык (тайпскрипт) лучше, конкуренция относительно небольшая, крайне часто используется в крипте, которая лично мне очень интересна, да и зарплаты тут ощутимо выше. У вышеперечисленных языков плюс по-моему только один, больше инструментов в экосистеме, но в последние годы это уже не так актуально. По сравнению с го, джавой, дотнетом, плюсами, растом нода лучше скоростью разработки и опять же как язык тайпскрипт превосходит все перечисленные кроме раста и сишарпа, но у них с тайпскриптом один создатель. В целом для бекенда дотнет крутое решение, высокий перформанс, стабильность, скорость разработки нормальная. Похожая ситуация в го, но сам язык ограниченный, в этом есть и плюсы, и минусы. В моём представлении одно из лучших решений для крупных проектов это микросервисы, где большинство на ноде, а микросервисы с повышенной нагрузкой написаны на го или если там совсем жёсткая числодробилка то на расте. Но в моём опыте за 7 лет в крупных проектах перформанса ноды не хватало совсем редко и это было именно из-за CPU bound задач, и писать на тайпскрипте намного приятнее, чем на го или расте, тем более на расте хуй найдёшь работу, так что для меня нода на бекенде это топ выбор.
Аноним 14/09/24 Суб 23:36:23 3273073 323
>>3273040
>>3273041
Tanstack query + zustand, хотя и zustand как будто бы не нужен
Аноним 14/09/24 Суб 23:41:27 3273075 324
Как всегда у реактеров срачь из-за инструментов 0.021 версии
Аноним 15/09/24 Вск 06:14:30 3273102 325
Чет я не понял, почему промисы настолько медленнее setTimeout? Пробую скрипт с тротлингом в отладчике, так на Low-end и Mid-tier мобилах показывает просто жуткие лаги.
Аноним 15/09/24 Вск 06:19:10 3273103 326
Хотя там отладчик по ходу глючный.
Аноним 15/09/24 Вск 06:40:10 3273107 327
Хотя setTimeout по ходу всё равно производительнее раз в пять, чем аналогичный промис с авейтом.
Аноним 15/09/24 Вск 06:43:00 3273109 328
Хотелось бы конечно requestAnimationFrame юзать, но он от фреймрейта монитора зависит, недавно столкнулся с игровым моником на 240 фпс, так мне мой requestAnimationFrame чуть проц не спалил.
Аноним 15/09/24 Вск 10:58:47 3273207 329
16228611070021.jpg 61Кб, 592x532
592x532
Аноним 15/09/24 Вск 12:42:31 3273290 330
>>3273207
Дядя скуф, выпейте таблетки от склероза. Слово "юзверь" упоминалось еще в FIDO и компьютерных журналах 90-х.
Аноним 15/09/24 Вск 12:46:46 3273292 331
>>3273070
>По сравнению с другими скриптовыми/интерпретируемыми языками (пхп, питон, руби) лучше перформанс, часто намного лучше
Что угодно будет быстрее руби. А давайте с LuaJIT сравним, вот здесь-то нода и обосрется.
Аноним 15/09/24 Вск 12:54:50 3273299 332
>>3273292
Чел. На руби умные люди не хотели писать еще когда и голенгов в помине не было. Говорили что это наследник перла для write only скриптов
Аноним 15/09/24 Вск 13:20:28 3273317 333
>>3273292
>давайте с LuaJIT сравним
Не думаю, что там будет разница в разы, кто бы ни выиграл. Вообще, луа язык не полноценный, и он такой by design. Не участвует в гонке фич, чтобы оставаться лайтвеигхт для эмбеда и лёрнабл за неделю.
Аноним 15/09/24 Вск 15:57:33 3273445 334
>>3273292
Зачем сравнивать ноду с этим? Смысл тёплое с мягким сравнивать? Есть уже адекватные предметы для сравнения, например го и раст, которые используются на бекенде и уделывают практически что угодно.
Аноним 15/09/24 Вск 18:07:08 3273504 335
Пора уже выкинуть старый var и заменить им let. Мне var больше нравится единством своей высоты в строке, и он лучше подчёркивает противопоставление const. А что такое let x? "Пусть икс"? Ерунда какая-то.
Ладно ещё не "my", как в перле.
Аноним 15/09/24 Вск 21:46:38 3273681 336
>>3273070
>пхп
>лучше перформанс
Дядь, поставь пхп последней версии и твоя нода пожрет говна в плане перформанса. Миф о медленном пхп был актуален лет 10 назад, когда на нем говнокодили все кому не лень (читай - битрикс и прочие CRM) и сам язык не развился так сильно как сейчас. тоже самое относится к jquery
Аноним 15/09/24 Вск 21:47:52 3273683 337
>>3273073
flux'о-подобное говнище не уважаем. Mobx - лучший стейт менеджер, единственный минус которого - необходимость писать обсерверы.
Аноним 15/09/24 Вск 22:02:23 3273699 338
>>3273681
>поставь пехепе и пожри говна
Спасибо уже нажрался за несколько лет. Симфони 7 может и няшка, но работы на симфони нет. Только говнопроекты на леравеле где все пишут как попало. Один из БД вытаскивает тонны данных, а потом фильтрует и вычисляет на пыхе, другой в простом круде абстракции с потолка высирает как на спринге, третий колбасит логику на фронтенде и все это в одном проекте..
Аноним 15/09/24 Вск 23:28:05 3273804 339
>>3273699
> твоя нода пожрет говна в плане перформанса
>высирает какую-то хуйня про то что пишут как попало
я ебу вот это интеллект
Аноним 15/09/24 Вск 23:44:33 3273824 340
1726433038971.jpg 164Кб, 1080x1047
1080x1047
1726433038977.jpg 248Кб, 1080x1053
1080x1053
1726433038986.jpg 151Кб, 1080x1056
1080x1056
1726433038991.jpg 229Кб, 1080x1052
1080x1052
Аноним 15/09/24 Вск 23:52:35 3273840 341
>>3273070
>По сравнению с другими скриптовыми/интерпретируемыми языками (пхп, питон, руби) лучше перформанс
Это не совсем так. Смотря в каких задачах. На некоторых задачах PHP быстрее чем Java и по скорости близок с Си. V8 очень быстрый движок, но в веб-приложениях Нода не тянет, ее сетевой стек дает большой оверхед. С либами/фреймворками Нода не быстрее Питона. У PHP движок тоже очень быстрый, но оверхед дает подъем виртуальной машины на каждый запрос. PHP-FPM тоже дает большой оверхед, если не ошибаюсь, его вообще забросили и много лет не обновляют. Стоит сделать из PHP долгоживущий процесс как у Ноды и он догоняет Джаву.
Аноним 15/09/24 Вск 23:55:03 3273847 342
1726433667666.jpg 381Кб, 1699x568
1699x568
Аноним 15/09/24 Вск 23:59:56 3273860 343
>>3273824
Сравни с Workerman/Swoole, они еще быстрее.
Аноним 16/09/24 Пнд 00:01:09 3273862 344
1726434034297.jpg 115Кб, 1080x1070
1080x1070
1726434034314.jpg 104Кб, 1080x1105
1080x1105
>>3273840
>На некоторых задачах PHP быстрее чем Java и по скорости близок с Си.
На каких?

>V8 очень быстрый движок, но в веб-приложениях Нода не тянет, ее сетевой стек дает большой оверхед. С либами/фреймворками Нода не быстрее Питона.
Это не так, в веб-приложениях нода очень даже тянет, и тем более по сравнению с питоном. Джанго просто пиздец какой медленный, а фастапи выдаёт перформанс уровня чуть-чуть выше экспресса, который самый медленный среди юзабельных инструментов в экосистеме ноды, тот же фастифай будет ощутимо лучше фастапи.
Аноним 16/09/24 Пнд 00:04:41 3273866 345
>>3273847
Так Elysia работает на Bun, который использует uWebSockets.js. Workeman и Swoole не слабее, а конкурентность в них более удобная. Еще uWebSockets.js работает в одном потоке.
Аноним 16/09/24 Пнд 00:10:09 3273876 346
1726434574157.jpg 432Кб, 2242x546
2242x546
1726434574175.jpg 156Кб, 1080x1062
1080x1062
1726434574181.jpg 134Кб, 1080x1069
1080x1069
Аноним 16/09/24 Пнд 00:10:09 3273877 347
>>3273862
>На каких?
CPU-bound.

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

>>3273862
>Джанго
Не сравнивай Джанго с фреймворками на Ноде. Это огромный комбайн, на Ноде и близко ничего такого по функционалу нет. ПОэтому и медленный. Фастапи не медленнее чем Нодовские фреймворки. В Питон завезли Socketify, который скопировали с uWebSockets.js.
Аноним 16/09/24 Пнд 00:14:49 3273884 348
>>3273876
Это не заслуга Ноды, это все благодаря uWebSockets.js, и Гиперэкспресс и Элизия работают на этом сетевом стеке.
Аноним 16/09/24 Пнд 00:16:44 3273888 349
>>3273866
>>3273884
Ну да, bun не нода, но это по сути бекенд на js/ts. Я и не говорю, что workerman и swoole слабее. Какая там конкурентность не знаю. Чем она удобнее? А использование uWebSockets тут при чём? Внутри ещё и JavaScriptCore и кастомная имплементация async I/O на zig, или в самой ноде V8 и libuv, это же нас не смущает. В swoole плюсы в исходниках нас ведь тоже не смущают.
Аноним 16/09/24 Пнд 00:20:00 3273896 350
>>3273877
>Голая Нода очень слабенькая. Это уже давно доказано.
Примеров не будет?
>С Фреймворками и подавно.
Где пруфы? Я вижу обратное, например как популярный фастифай на ноде выдает перформанс намного больше популярных фреймворков на питоне или пхп.

>Фастапи не медленнее чем Нодовские фреймворки
Я тебе скинул пруфы, где показано, что фастапи по перформансу на уровне самого медленного фреймворка ноды.
Аноним 16/09/24 Пнд 00:26:54 3273906 351
>>3273888
Нода написана плохо. uWebSockets.js не использует сетевой стек Ноды вообще, у него свой. Bun насколько мне известно под капотом использует uWebSockets.js.

>>3273896
>Примеров не будет?
В бенчах смотри или потести сам. Как минимум в 6 раз медленнее чем uWebSockets.js.
Аноним 16/09/24 Пнд 00:28:32 3273913 352
>>3273906
>Нода написана плохо. uWebSockets.js не использует сетевой стек Ноды вообще, у него свой. Bun насколько мне известно под капотом использует uWebSockets.js.
И? У swoole тоже под капотом код на плюсах.

>В бенчах смотри или потести сам. Как минимум в 6 раз медленнее чем uWebSockets.js.
Бенчи подтверждают мои слова, я скриншоты все сюда скинул.
Аноним 16/09/24 Пнд 00:32:18 3273923 353
1726435903153.jpg 572Кб, 1080x1571
1080x1571
Почему symfony-swoole, symfony-workerman, и yii2-workerman медленнее голой ноды, и тем более медленнее fastify?
Аноним 16/09/24 Пнд 00:54:28 3273955 354
1726437234125.png 123Кб, 1440x1008
1440x1008
>>3273877
>Пхп лучше в CPU-bound задачах
Что, прочтите?
Аноним 16/09/24 Пнд 01:33:42 3274006 355
>>3260410
>Какая база на этот тред? Постгря? Мускуль? MS SQL? Sqlite? Монга?
Sqlite, если у тебя данных меньше 6 Гигов
Аноним 16/09/24 Пнд 04:25:48 3274031 356
>>3274006
Двачую. Сам когда-то познал дзен и стал использоваться SQLite, чтобы как страшный сон забыть менеджмент пула коннектов к базе данных.
Аноним 16/09/24 Пнд 05:32:06 3274039 357
>>3273804
И?
1) Мне пихуй на ваш перформанс. Я не пишу высокочастоную торговлю на бирже.
2) Пыха говно по многим причинам отличным от перформанса
3) Изкоробочного перформанса в пыхе нет
4) Пыхо проект обычно тормозит, потому что запросы к БД кривые написали
5) Тред не для того чтобы два чела между собой общались.
Аноним 16/09/24 Пнд 05:40:22 3274041 358
Пыха
$a = false;
@$a[] = 1;
echo $a[0];

vs

$b = 0;
@$b[] = 1;
echo $b[0];
Аноним 16/09/24 Пнд 05:42:28 3274042 359
>>3274041
Пыхо код
@
wipe symbols
@
Ничего удивительного..
Аноним 16/09/24 Пнд 06:15:09 3274046 360
Да и пыха быстрее дефолтной ноды не на порядки а раза в два - три. Это не аргумент чтобы проект на пыхе писать. В случает ноды у меня из коробки асинхронность и возможность даже вебртс и тсп обрабатывать на голой ноде. А в пыху надо сторонние мокрописьски ставить и сомнитетельной хуевости код писать, который рядовой пыхпешник не поймет.
Аноним 16/09/24 Пнд 08:41:43 3274104 361
где кратко со всеми фронтопотрохами можно ознакомиться? чтобы понять что и для чего
vite, esbuild, node, bun и прочее подобное
сложнее чем на бэке тут
Аноним 16/09/24 Пнд 08:42:26 3274106 362
>>3274046
так то оно так, но тут кабану решать
что кабан скажет, то и будет писать, никакого самовольства
Аноним 16/09/24 Пнд 08:48:05 3274107 363
>>3274104
В основном это баззворды из твиттера
Аноним 16/09/24 Пнд 11:49:56 3274217 364
>>3273699
>но работы на симфони нет
То ли дело на ноде.
Аноним 16/09/24 Пнд 13:44:55 3274290 365
>>3274106
я и есть кабан, брат
Аноним 16/09/24 Пнд 13:47:30 3274291 366
Аноним 16/09/24 Пнд 20:40:44 3274659 367
Че придумал.
Обычно пишу так, когда надо притормозить до ближайшего requestAnimationFrame:

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

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

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

Это ведь будет то же самое, что и в первом случае? Или есть какой-то смысл помещать код именно внутрь requestAnimationFrame, а не просто ждать, когда подойдёт его время?
Аноним 16/09/24 Пнд 21:00:04 3274684 368
image.png 11Кб, 410x228
410x228
Короче не знаю, на всякий случай сделал так.
Можно писать await doubleRAF(() => { ... }) // и внутри тоже можно авейтить
Аноним 16/09/24 Пнд 21:03:29 3274686 369
Правда вот авейтить внутри колбека requestAnimationFrame наверное точно ничем не лучше просто отсрочки по времени за пределами колбека.
Аноним 16/09/24 Пнд 21:54:09 3274720 370
Что значит комментарий начинающийся со "слэш-звёздочка-восклицательный знак"? Зачем там восклицательный знак? Какой-то прикол бандлера?
Аноним 16/09/24 Пнд 23:20:17 3274752 371
>>3274046
>пыха быстрее дефолтной ноды не на порядки а раза в два - три
Не надоел этот унылый троллинг? Тебя выше уже несколько раз опровергли с пруфами.
Аноним 17/09/24 Втр 05:58:13 3274787 372
>>3274752
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
Аноним 17/09/24 Втр 06:19:47 3274788 373
>>3274787
Хотя если на пыхе в флоатах считать чтобы интыджер оверфлоу не было
<?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
Аноним 17/09/24 Втр 07:36:56 3274796 374
Ряя!!!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
Аноним 17/09/24 Втр 07:43:12 3274797 375
>>3274796
gcc -o test -O3 test.c
time ./test
5.000000e+17
real0m1,416s
user0m1,412s
sys0m0,004s
Аноним 17/09/24 Втр 11:24:43 3274889 376
>>3274788
>>3274796
>>3274797
Ну что же, пришло время тебе переехать в другой тред вкудахтча посвящённый Go лангу.
Аноним 17/09/24 Втр 11:49:01 3274906 377
тупейший вопрос - обязательно ли знать html css для вката в жс и тс? или же я могу скинуть эту поеботу?
Аноним 17/09/24 Втр 11:58:10 3274914 378
image.png 203Кб, 756x727
756x727
Тестовое задание (очень типичное, кстати): реализовать рабочий пикрил. Всвязи с чем у меня вопрос - я может чего-то не понимаю? Может, от меня ждут знаний какой-то популярной UI-библиотеки? Ну потому что вся эта пагинация, дропдаун, сёрчфилд и т.д. - сами по себе сложные компоненты. Или от меня ждут нефункциональную "куклу"?
Аноним 17/09/24 Втр 12:19:36 3274925 379
>>3274914
Короче делать не буду, нафиг.
Аноним 17/09/24 Втр 12:31:54 3274935 380
>>3274906
>обязательно ли знать html css для вката в жс и тс?
define "вкат"
чтобы учить JS и TS, html и css не нужны.
чтобы найти работу на JS и TS, html и css нужны, если только ты не найдёшь работу бэкендером на ноде
Аноним 17/09/24 Втр 14:13:56 3275014 381
>>3274787
Это круто, конечно, только это не единственный показатель, по которому можно сделать вывод, что один язык быстрее другого. Бенчмарки конкретно по RPS, latency, запросам в БД, сериализации JSON и т.д. не не в пользу пхп.
Аноним 17/09/24 Втр 16:46:29 3275149 382
>>3275014
>Бенчмарки конкретно по RPS, latency, запросам в БД, сериализации JSON и т.д. не не в пользу пхп.
Какие? Нодовские фреймворки медленнее тех что на PHP. Workerman написан на PHP без Си или чего-то другого. Ни один Нодовский фреймворк, который написан на чистом JS не дотянется до него. Потому что как я уже писал сто раз, у Ноды плохо написан сетевой стек. Ты ничего с этим не сделаешь. V8 не быстрее движка PHP. Поэтому никак Нода не может быть быстрее, если в PHP используется конкурентность.
Аноним 17/09/24 Втр 17:29:28 3275194 383
>>3275149
1) Теперь тащи фремворки на пыхе заточенные под конкурентность на этих васянских велосипедах.
2) Милипиздрическая прибавка к перформансу никак не компенсирует убогость самой пыхи как языка и платформы
3) Если что-то потебуется считать на цпу, то ноду легче через к раббит соединить с тем же голенгом. Напиши на чистой пыхе один скрипт - одновременно консумер очереди чисел и хттп ручка отправляющая эти числа через SSE в браузер. На ноде делается стандартными средствами ноды. На пыхе только через васянское говно типа свуле

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

мимо
Аноним 17/09/24 Втр 18:22:00 3275231 384
>>3274914
В целом любое тестовое задание это дерьмо пеликана. Потому что я где-то делал и мне даже бывало не отвечали, типо вообще похую. Причем оно гавно на любом этапе, до интервью, после. Есть фирмы, которые платят за выполненное тестевое, даже если ты им не подошел. Все остальное - клоунада. То что ты сбросил, это можно на коленке сделать за пару часов или много много дольше. Картинка несет мало информации
Аноним 17/09/24 Втр 18:25:23 3275234 385
1726586686587.jpg 226Кб, 1080x366
1080x366
1726586686608.jpg 359Кб, 1080x864
1080x864
>>3275149
>Какие?
Вот:
>>3273955
>>3273923
>>3273876
>>3273862
>>3273847
>>3273824

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

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

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

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

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

>>3275194
>1) Теперь тащи фремворки на пыхе заточенные под конкурентность на этих васянских велосипедах.
Да, в этом вся суть. На втором пике этого поста всё видно. В ноде тоже можно завелосипедить на uWebSocket, точнее такого уже много сделано. Но большинству проектов более чем достаточно nest-fastify.
Аноним 17/09/24 Втр 18:37:29 3275243 386
>>3274914
Не пробовал у них спросить, нужно ли/можно ли использовать ui либы? Без либ это будет долго, но иногда просят именно без, чтобы увидеть как вручную будедь писать все эти дропдауны и прочее подобное
Аноним 17/09/24 Втр 18:44:27 3275247 387
>>3275194
>тащи фремворки на пыхе заточенные под конкурентность
В гугле забанили?
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.
Аноним 17/09/24 Втр 18:55:25 3275253 388
>>3275234
Зачем ты сравниваешь комбайн 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++ код. Сама Нода медленная.
Аноним 17/09/24 Втр 19:09:16 3275261 389
>>3275253
>Сама Нода медленная
Это не компенсирует что пыха уродливое говно, синтаксис которой даже двощ считает wipe symbols
Кому надо скорость будут писать не на пыхе. А пыха как фронтенд явно лишнее звено.
Аноним 17/09/24 Втр 19:16:27 3275266 390
>>3275261
Это не правда. Синтаксис у PHP почти как у Си. JS же имеет куда больший минус, это язык для написания, но не для чтения. Его невозможно читать. На этом все его плюсы перечеркиваются.
Аноним 17/09/24 Втр 19:17:51 3275268 391
>>3275266
Перефорсы пыходебила, классика
Аноним 17/09/24 Втр 20:06:47 3275307 392
>>3275268
Ты совершенно необъективен. С JS я познакомился гораздо раньше PHP. Мне нравится JS, в нем нет перекоса на использование классов, нет так называемого "ООП головного мозга", у него лаконичный синтаксис, можно писать и кратко и понятно. Проблема опять же в людях, которые понятно писать не умеют и не хотят.
Аноним 17/09/24 Втр 20:13:50 3275316 393
>>3275307
Пыходебил высасывает хуйню из пальца, классика
Аноним 17/09/24 Втр 20:37:12 3275362 394
>>3275253
насколько сложно workerman'а прикрутить и кром web socket'ов можно SSE использовать?
Аноним 17/09/24 Втр 20:47:45 3275376 395
Аноним 17/09/24 Втр 21:00:36 3275396 396
>>3275376
Затем что вебсокеты нужны для чатов. А для того чтобы реализовать подписки на обновление данных больше подходит SSE.

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

мимо
Аноним 17/09/24 Втр 22:04:37 3275436 397
>>3275253
>Зачем ты сравниваешь комбайн 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 тоже не засчитывается почему-то с твоей странной точки зрения, хотя это прямо внутренняя часть бана.
Аноним 17/09/24 Втр 22:05:51 3275439 398
>>3275266
>JS же имеет куда больший минус, это язык для написания, но не для чтения. Его невозможно читать. На этом все его плюсы перечеркиваются.
Так пиши на TS, он прекрасен и для написания, и для чтения.
Аноним 17/09/24 Втр 22:14:07 3275443 399
Screenshot 2024[...].png 81Кб, 955x514
955x514
Аноним 17/09/24 Втр 23:29:56 3275503 400
так что, стоит это уёбище учить (иначе назвать не могу, именно уёбище), на него больше всего вакух на ХХ?
Аноним 17/09/24 Втр 23:32:15 3275505 401
>>3275439
TS прекрасен для описания типов вместо решения задач. Задачи потом быстро быстро через any решаются
Аноним 17/09/24 Втр 23:35:50 3275510 402
>>3274914
Какая нахуй пагинация, чел, это прошлый век, лупи инфинит скролл.
Аноним 18/09/24 Срд 00:13:53 3275515 403
>>3275443
>работа в крипте
Ебалус имагинатус?
Аноним 18/09/24 Срд 00:18:15 3275516 404
>>3275443
Никто в текущих реалиях на зепку в 120к$ не будет релоцировать из СНГ. Лучше уж сидеть на синьке у нас в бигтехе на 400.
Аноним 18/09/24 Срд 00:23:14 3275517 405
>>3275505
>Задачи потом быстро быстро через any решаются
Что у тебя за задачи, где ты постоянно эникастишь?
Аноним 18/09/24 Срд 01:10:14 3275526 406
>>3275517
У меня нет задач на TS, не пишу на этой any-хуйне.
Аноним 18/09/24 Срд 01:16:12 3275528 407
>>3275526
Так ты же долбоеб, я any/unknown пишу примерно раз в полгода, потому что ТС интуитивно понятен.
Аноним 18/09/24 Срд 03:00:07 3275543 408
>>3275528
Похуй что ты там пишешь в своих вкатунских тасках, мы вам перезвоним
Аноним 18/09/24 Срд 04:40:49 3275548 409
>>3275543
Чмоня лоускильная, своей мамке перезванивай.
Аноним 18/09/24 Срд 14:09:58 3275787 410
а как называются люди, которые в реакте все оборачивают, буквально все, в useCallback и useMemo?
Аноним 18/09/24 Срд 14:13:03 3275790 411
>>3275543
Я синьор на проекте с 30 фронтедерами, который приносит миллионы рублей в сутки. Так что спок.
Аноним 18/09/24 Срд 14:54:53 3275813 412
>>3275790
Так о том и речь, что эти 30 фронтендеров делают все через any, сколько бы ты ни дрочил на типы
Аноним 18/09/24 Срд 16:05:06 3275862 413
>>3275790
Зачем ты пишешь это? Еще напиши, что ездишь каждый день в автобусе, который стоит 30 млн и на нем зарабатывают 100 млн рублей клоун
Аноним 18/09/24 Срд 17:17:06 3275955 414
>>3275503
>так что, стоит это уёбище учить
Хочешь фронтенд писать - учи. Все просто
Аноним 18/09/24 Срд 17:30:12 3275968 415
Аноним 18/09/24 Срд 18:06:53 3276012 416
>>3275813
>все через any
Ты скозал? У нас даже проверка на PR стоит, что если падает еслинт (в котором есть правило на отсутсвтие any) - апрувов не получишь и кнопка мерджа активной не станет.
>>3275862
Кастую твой высер в any кста.
Аноним 18/09/24 Срд 18:39:11 3276037 417
>>3275515
Да, довольное ебало, потому что в критпе:
1. Много денег
2. Много интересных проектов
3. Удалёнка по всему миру, а не только по родной стране

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

>>3275516
А с чего ты вообще взял про релокацию? Придумал? В вакансии ничего про этого нет. Ты работаешь удалённо и живёшь в какой угодно точке мира, релоцируешь себя сам куда сможешь. 5000-10000к баксов в месяц неплохая сумма, но вполне обыкновенная дли работы в крипте, даже я бы сказал маленькая, учитывая, что это компания, разрабатывающая USDT. В российском бигтехе на синьке 400 это практически потолок, многие и за 300-350 работают. Короче, чистыми получается тысячи 4 баксов, а работа часто довольно унылая.
Аноним 18/09/24 Срд 18:57:42 3276057 418
>>3276037
а че надо знать конкретно про крипту чтобы в ней работать?
Аноним 18/09/24 Срд 19:21:41 3276069 419
>>3276057
А ключи от квартиры где деньги лежат тебе не надо?
Аноним 18/09/24 Срд 19:24:36 3276071 420
>>3276012
>правило на отсутсвтие any
Да все прекрасно знают, тупоскриптодебил, что вместо работы ты сочиняешь типы, а потом правила для контроля этих типов. А потом кабаныч выкидывает тебя на мороз и ему делают рабочий продукт, а не твой нерабочий типодроч.
Аноним 18/09/24 Срд 19:32:30 3276079 421
>>3275505
Во-первых, описание типов это составная часть задач. Во-вторых, они и без any быстро решаются, если разработчик не лоускилл или не свежий неопытный вкатыш.
>>3275526
Так any-хуйня это как раз чистый JS. Тебе, видимо, проекты на более серьёзном языке не доверяют, не хватает навыков, знаний, опыта, ума, чтобы быстро решать задачи на тайпскипте без использования any. Any можно в принципе практически никогда не использовать, есть unknown, который нормальными инженерами крайне редко используется в качестве замены any.
>>3275813
В нормальных компаниях так делают, а полноценно используют типизацию. Ты просто скорее всего говоришь из своего опыта работы в третьесортных помойках, экстраполируешь его на все остальные компании и проекты, к которым тебя никогда близко не подпускали и не подпустят, потому что ты либо не очень умный, либо обиженный.
>>3276071
Рабочий продукт, в исходниках которого нет типизации? В 2024? Курам на смех.
Аноним 18/09/24 Срд 19:35:21 3276085 422
>>3276079
Тайпскриптодебил рассуждает о "серьезности" языков и проектов, такой кек
Аноним 18/09/24 Срд 19:36:32 3276088 423
>>3276085
Со стороны джаваскриптодебила этот пустой выпук без аргументов звучит откровенно нелепо.
Аноним 18/09/24 Срд 19:39:12 3276095 424
>>3276088
"Я люблю обмазываться типами и дрочить"
"Все серьезныеTM конторы"
И другие "выпуки с аргументами" от тайпскриптодурачка, не переключайте канал
Помогите не программисту Аноним 18/09/24 Срд 20:23:11 3276123 425
2024-09-1900-241.png 2Кб, 413x18
413x18
2024-09-1900-24.png 5Кб, 895x14
895x14
Вкатываться не планирую. Объясните, пожалуйста, что тут не так?
Аноним 18/09/24 Срд 20:27:33 3276126 426
>>3276057
Как устроен DeFi, dApps, блокчейн, самая популярная для работы крипта (Solana, Ethereum, TON), web3 библиотеки.
Аноним 18/09/24 Срд 20:27:46 3276127 427
>>3275436
Ты в каком классе учишься? Symphony и Laravel огромные комбайны с миллионами строк кода, с функционалом которых никакой Nest не сравнится. Их писали давно, когда про асинхронность никто и не думал. Их код не рассчитан на конкурентное выполнение.

Нода медленная. uWS и Bun это не Нода, это отдельный компилируемый код. Workerman написан на PHP и производительней Ноды более чем в 5 раз! Даже голый PHP более производительный чем Нода. И uWS/Bun не быстрее чем Workerman.
Аноним 18/09/24 Срд 20:28:34 3276128 428
>>3276095
Ты не способен опровергнуть ни слова в этом посте >>3276079.
Аноним 18/09/24 Срд 20:53:35 3276149 429
1726437234125.png 124Кб, 1440x1008
1440x1008
Screenshot 2024[...].png 83Кб, 1474x245
1474x245
>>3276127
>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.
Аноним 18/09/24 Срд 21:05:54 3276153 430
>>3276128
это и есть твои "аргументы" из этого поста, дурачок ты типизированный
Аноним 18/09/24 Срд 21:09:45 3276155 431
>>3276149
Nodejs - 104-е место
PHP - 65-е место
Fastify - 102-е место
Webman - 35-е место

PHP переигрывает Ноду по всем фронтам.
Аноним 18/09/24 Срд 21:12:02 3276158 432
Аноним 18/09/24 Срд 21:14:31 3276160 433
>>3276127
А-ха-ха. Какие миллионы строк кода? Ты хоть писал на них, код читал? Или просто теоретик? Что симфони что ларавел простые как палка. Особенно ларавель. Да по документации сравни количество фич в лаке и в несте. Где у тебя в ларавеле поддержка тсп микросервисов? Ларка это просто инструмент чтобы хттп ручки с базой данных соединить, прикученна сбоку очередь, для игрушечных проектов и скафолдинг достаточно удобный. На несте билинги пишут, а на ларке форму заказа для шаурмичной.
Аноним 18/09/24 Срд 21:14:40 3276161 434
>>3276037
>могут отказать в рассмотрении, если ты живёшь в России/Украине
Что будет если напиздеть?
Аноним 18/09/24 Срд 21:17:19 3276162 435
>>3276161
Тебе в любом случает тоже напиздят с три короба. Тем более то мутные крипточерти...
Аноним 18/09/24 Срд 21:22:06 3276167 436
>>3276162
>Тебе в любом случает тоже напиздят с три короба
Бесконечный круг пиздежа получается?
Аноним 18/09/24 Срд 21:23:21 3276168 437
>>3276167
А где сейчас не так?
Аноним 18/09/24 Срд 21:24:48 3276172 438
>>3276160
В Ларе есть Octane, Livewire и еще куча фич, по сути отдельные проекты. Еще скажи, что Rails микрофреймворк. Лара по фичам и соответственно по объему кода примерно соответствует Рельсам. В Ноде никогда не было и не будет подобного фреймворка.
Аноним 18/09/24 Срд 21:28:59 3276177 439
>>3276160
>тсп микросервисы
Чего?

На PHP написан Алиэкспресс и Алибаба. В Китае на PHP пишут сверхнагруженные приложения, включая реалтайм. Поизучай Gitee и Bilibili.
Аноним 18/09/24 Срд 21:37:04 3276185 440
>>3276172
Что тебе октане дает. Ускорение? Ты застаь сначала пыхарая нормальные запросы к бд написать. Что ты собрался еше ускорять?
Лайвире ноуней хуйня от одного кренделя. Только хуево об ларке свидетельсвует, что она последнее время всяким дерьмом загадилась ради хайпа. Зачем тога формы выпилили из ларавеля. Хотели кодобазу почистить..
В симфони хоть хотвире из рельсов взяли а не стали всякую чушь тащить. Хотвире со стимулусом в любом фреймворке прикручивается.
Опять же это все хуйня для шаурмичных.
>В Ноде никогда не было и не будет подобного фреймворка.
Какого такого? Ты неста хоть доку открывал?
Аноним 18/09/24 Срд 21:39:56 3276188 441
>>3276177
>сверхнагруженные
Перегруженные? Надеюсь через край не вываливается?
Аноним 18/09/24 Срд 21:46:01 3276192 442
>>3276185
Livewire это аналог Hotwire из Рельсов, умник.
Аноним 18/09/24 Срд 21:55:50 3276203 443
>>3276192
Ну да. Это говно чтобы UI компоненты на пыхе писать. Только нахой этим лисапедом для создания шаурмичных хвастаться. Я на пыхе за шесть лет так нормальной работы и не видел. Каждый раз либо мутный кабан с мутным проектом типа беттинга гамблинга, либо нищий кабан с магазином и интеграциями.
Аноним 18/09/24 Срд 22:10:01 3276213 444
>>3276162
> мутные крипточерти
>разработчики USDT
Хуя дебил, лол!
Аноним 18/09/24 Срд 22:11:31 3276216 445
>>3276172
>>3276127
Что есть в ларе и симфони, чего нет в несте?
Аноним 18/09/24 Срд 22:14:13 3276224 446
>>3276213
Разве нормальные люди пойдут делать инструменты для отмыва мафиозных денег
Аноним 18/09/24 Срд 22:16:03 3276227 447
>>3276153
И ты не способен их опровергнуть, способен только серить в тред и бессильно взять слово аргументы в кавычки
Аноним 18/09/24 Срд 22:17:02 3276228 448
>>3276224
Есть пруфы, что через USDT отмывают мафиозные деньги? Нет. Зато миллионы людей по всему миру используют USDT чтобы дёшево и быстро переводить деньги друг другу, особенно людям в другие страны.
Аноним 18/09/24 Срд 22:17:25 3276230 449
>>3276224
Нет, нормальные люди не пойдут работать ни в один из российских банков
Аноним 18/09/24 Срд 22:20:19 3276235 450
Аноним 18/09/24 Срд 22:21:52 3276238 451
>>3276228
Мне пох. Я не про USDT пиздел. Анон вообще про крипту спрашивал. Если он будет в крипту вкатываться, то врядли в такие рафинированые компании, скорее в мутные ввяжется, которых в телеге дохуя, к челам со смехуечками из 90ых...
Аноним 18/09/24 Срд 22:33:13 3276255 452
>>3276235
Вообще-то апелляция к хорошим компаниям, это не апелляция к авторитету. Хорошая компания подразумевает что в ней хорошие настроенные процессы, а значит они делают хорошие практики. Если бы он сказал, что Линус Торвальдс хорошо отзывался о тайпскрипте, тогда бы это была апелляция к авторитету.

мимо
Аноним 18/09/24 Срд 22:35:59 3276258 453
>>3276235
Вот тут перечислены голые факты:
> Во-первых, описание типов это составная часть задач. Во-вторых, они и без any быстро решаются, если разработчик не лоускилл или не свежий неопытный вкатыш.
> Так any-хуйня это как раз чистый JS. Тебе, видимо, проекты на более серьёзном языке не доверяют, не хватает навыков, знаний, опыта, ума, чтобы быстро решать задачи на тайпскипте без использования any. Any можно в принципе практически никогда не использовать, есть unknown, который нормальными инженерами крайне редко используется в качестве замены any.

А вот тут просто вывод, сделанный из твоих постов:
> Ты просто скорее всего говоришь из своего опыта работы в третьесортных помойках, экстраполируешь его на все остальные компании и проекты, к которым тебя никогда близко не подпускали и не подпустят, потому что ты либо не очень умный, либо обиженный.
Аноним 18/09/24 Срд 22:37:47 3276260 454
>>3276238
Правильно, не идите сюда. Тут даже во второсортных относительно Tether компаниях полная удалёнка, зарплаты ощутимо выше рынка, интересные проекты. Не думаю, что вам такое нужно, лучше пукать в кресло в офисе Сбера за 300 сотыг рупий.
Аноним 18/09/24 Срд 22:42:10 3276267 455
а кложураскрипт шиз в тред еще захаживает своей зп хвастаться?
Аноним 18/09/24 Срд 22:47:12 3276273 456
>>3276260
Так и область слабо связанна с тематикой треда. Хочется логику на жс/тс писать, а не контракты на солидите. Почему именно из жс треда туда пойдут, а например не из питоньего или пхпешного. Я вообще как-то раз попал на написание криптоговна на пыхе. Но я не выбирал это, в галере проект прилетел.
Аноним 18/09/24 Срд 22:47:26 3276275 457
>>3276155
Смотрим один из самых показательных тестов 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 лучше не будет смотреть, а то станет слишком неприятно.
Аноним 18/09/24 Срд 22:49:20 3276279 458
>>3276273
Контракты на солидити это отдельная специализация blockchain developer. А я речь веду про работу фронтом или беком в web3 компаниях, в этом случая работа это дефолтный react/next либо express/fastify/nest + web3 либы для подключения к потоку информации с блокчейна, а сами контракты такие люди не пишут.
Аноним 18/09/24 Срд 22:50:31 3276281 459
Да заебали. Ничто из пыхоприяды не требует никакого ускорения кроме оптимизации запросов к БД. Область применения не та...
Аноним 18/09/24 Срд 22:50:56 3276283 460
Аноним 18/09/24 Срд 22:59:56 3276292 461
Аноним 18/09/24 Срд 23:05:02 3276296 462
Аноним 18/09/24 Срд 23:07:43 3276298 463
Врете. Вассерман свегда занимал первые места в своей игре...
Аноним 18/09/24 Срд 23:14:42 3276300 464
webman.png 21Кб, 531x284
531x284
Аноним 18/09/24 Срд 23:17:46 3276303 465
Аноним 18/09/24 Срд 23:21:03 3276305 466
>>3276303
Если 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.
Аноним 18/09/24 Срд 23:23:09 3276308 467
>>3276305
>Workerman
Написан на PHP.

>UWS
Написан на C/C++.
Аноним 18/09/24 Срд 23:27:14 3276311 468
>>3276308
>Написан на PHP.
Но это отдельный фреймворк.

>Написан на C/C++.
И что? Вся Нода написана на C/C++
Аноним 18/09/24 Срд 23:32:32 3276317 469
Аноним 18/09/24 Срд 23:36:39 3276318 470
>>3276317
>UWS тоже ка си++ расширение для ноды работает
Заменяя сетевой стек Ноды. Получается, что ты сравниваешь уже не Ноду с PHP. Нода медленнее PHP, даже если PHP без асинхронности.
Аноним 18/09/24 Срд 23:37:17 3276320 471
>>3276317
И почему ты кстати запал на китайского вассермана если давно был Ratchet http://socketo.me/ с ивент лупом на той же самой хуйне
Аноним 18/09/24 Срд 23:39:55 3276323 472
>>3276318
>Нода медленнее PHP, даже если PHP без асинхронности
Если ты забыл, изначальное утверждение было конкретно про бекенд на ноде, а не просто нода. Про превосходство в перформансе у бекенда на ноде всё ясно тут: >>3276275
Аноним 18/09/24 Срд 23:41:48 3276324 473
>>3276323
>в перформансе у бекенда на ноде всё ясно
Здесь >>3276155
Даже если юзать PHP как есть, без асинхронности, Нода проигрывает. На этом всё.
Аноним 18/09/24 Срд 23:42:40 3276325 474
>>3276318
Ты как попугай говоришь про сетевой стек не ведая что ивент луп и организует в этот сетевой стек. Как у тебя сокеты селектятс если не через этот ивентлуп. У тебя в твоем васермане тоже стек заменяется получается. Точнее не заменяется а даже добавляется. Потому что без него пыха не может делать мультиплексинг сокетов
Аноним 18/09/24 Срд 23:53:41 3276332 475
>>3276324
В процитированном тобой посте из бекенд фреймворков только Fastify, плюс ты привёл цифры из Composite Score, где в PHP учтены все результаты с workerman и swoole, а не только голый PHP. Ты, похоже, пытаешься троллить непробиваемой тупостью и твердолобостью. Так что я дополню что имел в виду в одном из своих первых постов >>3273070
Тут имелась в виду коммерческая разработка бекенда на JS/TS, которая делается на ноде, хотя если начинать бессмысленно меряться хуями, то важно именно JS/TS, чтобы не было кукареков про "Bun не считается". Но я всё-таки имел в виду коммерческую разработку, которая делается именно на ноде, и именно на популярных инструментах (Express, Nest, Fastify, иногда что-то типа Moleculer...). Поэтому очевидным образом ведётся речь о том, что типичный бекенд на ноде (Nest-Fastify) будет быстрее бекенда на Фастапи/Рельсах/Симфони и т.п., что легко подтверждается. Ну а ты дольствуйся тем, что голый ПХП чуть-чуть быстрее голой Ноды, хотя стоит к нему навесить Симфони с Ларой, то начинается заметное падение перформанса по бенчмаркам, даже если привасянить к основному фреймворку твой не являющийся PHP workerman.
Аноним 18/09/24 Срд 23:54:50 3276335 476
>>3276332
>В процитированном тобой посте из бекенд фреймворков только Fastify
А, ошибся, там Webman, а не Workerman. Ну тогда добавляй в сравнение Elysia, или UWS и hyperexpress.
Аноним 19/09/24 Чтв 00:08:03 3276339 477
Этот ваш Ecma/Javascript умирает. Хули вы в это говно вкатываться пытаетесь, когда из нормальных языков остались только плюсы, раст и c#?
Аноним 19/09/24 Чтв 00:10:41 3276340 478
>>3276339
Я уже много лет пишу на этом языке и по моим наблюдениям он только развивается, как и его экосистема. Но раст и сишарп крутые, не спорю, только зачем мне туда переходить, если мне и тут хорошо, да и микросервис на расте вполне смогу написать при необходимости.
Аноним 19/09/24 Чтв 00:17:49 3276343 479
>>3276340
>раст и сишарп крутые
В чем заключается крутизна раста? Зачем он нужен, когда есть тот же C++?
19/09/24 Чтв 02:01:22 3276364 480
>>3276343
>В чем заключается крутизна раста? Зачем он нужен, когда есть тот же C++?
Тупорылые вопросы. А зачем нужен язык Х? Чтобы люди имели выбор! Или все обязаны использовать то, что ты используешь? Rust - это современный язык. Он блять появился не во время sourceforge и svn, когда трава была зелёной, а бородатые одмены писали баш скрипты вручную. С++ это мамонт программирования. Там каждая крохотуленька ебёт мозги, особенно окружение - надо autoconf настраивать, тесты, линтеры. Достоинство rust'а в том, что мне не надо об этом думать. Я не думаю о всех этих макросах, мейкфайлах, и т.д. Я просто сел и у меня уже все тесты, линтеры подхватились и настроились на раз-два. Мне не надо думать "а все ли зависимости установлены?". Если я ставлю вручную какую-то либу в С++, типа armadillo, мне надо ещё установить зависимости к зависимостям блять. Или если я в коде не там поставил указатель в С++, придётся гадать миллион лет, почему программа крашится. Такого не бывает в расте. С++ это дико переусложнённый язык.
Аноним 19/09/24 Чтв 05:28:06 3276386 481
image.png 501Кб, 430x500
430x500
Наконец-то я полностью въехал в промисы. Прочувствовал кожей, так сказать.
Аноним 19/09/24 Чтв 07:44:44 3276400 482
Почему некоторые люди так ненавидят наш любимый js? Разве он настолько плох?
Аноним 19/09/24 Чтв 08:23:59 3276405 483
>>3276400
В своё время он заборол AppleScript и VBScript, поэтому корпораты его ненавидят, выкатывают то Dart, то TypeScript, то ещё какую-нибудь парашу.
Аноним 19/09/24 Чтв 08:41:17 3276409 484
>>3276405
>выкатывают то Dart, то TypeScript
В чем проблема TypeScript?
Dart это вроде как недоаналог js-а?
Аноним 19/09/24 Чтв 08:57:06 3276417 485
>>3276409
>В чем проблема TypeScript?
В том что из-за типов логики не видать.
Аноним 19/09/24 Чтв 09:11:50 3276425 486
Аноним 19/09/24 Чтв 09:22:32 3276431 487
>>3276425
>Жалко тебя.
Прочитал этот пост, потягивая мохито в шезлонге рядом с роскошной мулаткой.
Аноним 19/09/24 Чтв 11:33:16 3276496 488
Нода чет медленно развивается,где новые полезные апи из коробки?
Аноним 19/09/24 Чтв 16:25:36 3276680 489
>>3276417
Не надо свой опыт экстраполировать на всех остальных. Все коллеги, с которыми я работал, легко всё видели.
Аноним 19/09/24 Чтв 16:30:51 3276682 490
>>3276496
А каких апи не хватает? Недавно вот тестирование добавили, ещё экспериментальную поддержку тайпскрипта, вебсокеты и фетч без внешних зависимостей, watch mode (как в nodemon)
Аноним 19/09/24 Чтв 16:58:30 3276700 491
>>3276682
TS допилят наверно к 30 версии...
Аноним 19/09/24 Чтв 17:03:07 3276707 492
>>3276700
Он уже работает с флагом
Аноним 19/09/24 Чтв 17:03:39 3276708 493
Аноним 19/09/24 Чтв 18:34:51 3276809 494
>>3276682
>А каких апи не хватает?
Да любых.
Вон как должна выглядеть нормальная стандартная библиотека:
https://docs.python.org/3/library/index.html
а в ноде это огрызок.

Спустя 10 лет в 2024 году аж тестирование добавили. Ору.
Аноним 19/09/24 Чтв 18:58:19 3276829 495
>>3276809
>>3276809
питон развивается быстрее ванильного жс(без учета тс)
Аноним 19/09/24 Чтв 19:01:56 3276833 496
>>3276809
Сначала пыходебилы, теперь питонодауны. Все приходят сюда продавать свой кал. Нет, не купим, иди дальше, дорогой.
Аноним 19/09/24 Чтв 19:04:04 3276836 497
>>3276833
А что такого,всего лишь указали на слоупочность жаваскрипта
Аноним 19/09/24 Чтв 19:07:55 3276844 498
>>3276809
>>3276833
и жс и питон говно. Вы оба дырявые хуесосы, что не могут принять другой язык
Аноним 19/09/24 Чтв 19:12:59 3276848 499
>>3276833
>пыходебилы
>питонодауны
Но жопаскрипстеры в том же тире находятся. Или нет?
Аноним 19/09/24 Чтв 19:18:40 3276856 500
>>3276848
язык-name-хуесос порвался
Аноним 19/09/24 Чтв 19:40:26 3276874 501
>>3276809
Ты троллишь просто, а не орёшь. Добавлять в принципе нужды даже и не было, потому что с самого начала для этого было много сторонних инструментов в экосистеме, ими и продолжают пользоваться. Их даже слишком много. Jest, Vitest, uvu, Supertest, RTL, Cypress, Enzyme, Mocha, Chai, Jasmine, Puppeteer, Playwright, Ava, WebdriverIO, @web/test-runner...

>>3276836
Это троллинг, засоряющий тред.
Аноним 19/09/24 Чтв 19:43:07 3276875 502
17258063860760.mp4 4153Кб, 480x480, 00:00:24
480x480
Аноним 19/09/24 Чтв 19:43:41 3276876 503
>>3276848
Они находятся в своем треде и не ходят ничего продавать, дурачок
Аноним # OP 19/09/24 Чтв 19:55:04 3276885 504
Аноним # OP 19/09/24 Чтв 19:55:25 3276886 505
Аноним # OP 19/09/24 Чтв 19:55:39 3276887 506
Настройки X
Ответить в тред X
15000
Добавить файл/ctrl-v
Стикеры X
Избранное / Топ тредов