изображение.png100 Кб, 1050x1050
JS Thread #318 /js/ # OP 3294005 В конец треда | Веб
Предыдущий тред: >>3287398 (OP)

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

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

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

Документация - https://developer.mozilla.org
Руководство для вката - https://github.com/acilsd/wrk-fet#javascript
2 3294014
Я напоминаю, что ts уже не нужен.
1728530976045.jpg101 Кб, 1000x995
3 3294016
>>294014
Динамикодриснявая мартышка, ты снова выходишь на связь?
4 3294018
>>294016
Но ts это динамикодресня с типами. Как мне с интами работать?
5 3294032
Платиновый вопрос на каждом собесе по ТС:
В ЧЁМ ОТЛИЧИЕ ТИПОВ ОТ ИНТЕРФЕЙСОВ?
6 3294057
>>294018
Необразованная мартышка, в тс статическая типизация.
7 3294099
>>294057
Еще один, инты мне запилил быстро!
8 3294136
>>294099
Какие именно, чего тебе не хватает?
9 3294196
База треда.

Ангуляр для чедов.
Вью для беток.
Реакт для омежек.
10 3294212
>>294136
int'ов мне не хватает! Хочу арифметические операции с интами, как в настоящих статических языках.
11 3294221
>>294212
Покажи пример что именно ты не можешь сделать в TS
12 3294274
>>294221
let a: int = 5 / 3
13 3294297
Прочитал, что надо использовать void в arrow functions, которые не должны ничего возвращать.
Если просто напишешь (x) => { doSomething(x + 1) }, другие могут подумать, что ты просто написал лишние фигурные скобки. Поэтому если тебе надо, чтобы функция ничего не возвращала, стоит писать так: (x) => void doSomething(x + 1)
14 3294298
>>294212
number тебя чем не устроил?

>>294196
Ежедневная мантра обезумевших ангулярщиков

>>294032
Правильный ответ - ничем, иди нахуй. Ну и интерфейс можно implements в классах
15 3294300
>>294297
А еще если ты не собираешься ждать промиса то надо писать void asyncOperation()
16 3294468
>>294298

>Правильный ответ - ничем


Интерфейс можно расширить с extends от интерфейса или пересечания интерфейсов, а тип нельзя extends.
Интерфейс можно переопределить, а тип нельзя
Интерфейс нельзя как юнион определить, а тип можно

мимо
17 3294506
>>294468
Дрочильня омежек для техсобесов.
image.png3 Кб, 302x50
18 3294524
тачскрины всё ещё определяют по грубошёрстному указателю, лучше ничего не придумали?
19 3294525
>>294468

>Интерфейс можно расширить с extends от интерфейса или пересечания интерфейсов, а тип нельзя extends


Тип зато можно юнион что по-сути то же самое

>Интерфейс можно переопределить, а тип нельзя


Единственное реальное различие

>Интерфейс нельзя как юнион определить, а тип можно


Зато можно как экстендс лол

В целом, >>294506, ирл всем поебать
20 3294529
>>294525
Юнион и экстендс это по-твоему одно и тоже что ли?
21 3294543
>>294274
Эта хуйня должна считаться на стороне бэкэнда. Ни нужно.
22 3294644
>>294543
Но бэкенд на ts 😞
23 3294656
Здорова бандиты. Есть вопросы по тс.
1) Остается потребность в babel?
2) Насколько долгая компиляция?
3) Есть какая-то автокомпиляция налету чтобы во время кодинга не чувствовать ее?
4) Почему тс так и не подружили с дотнетом?
24 3294681
>>294656
2) Насколько долгая компиляция?
https://github.com/swc-project/swc Раз в 20 быстрее компилится чем с официальным тайпскриптовым компилятором
3) Есть какая-то автокомпиляция налету чтобы во время кодинга не чувствовать ее?
https://www.typescriptlang.org/tsconfig/#incremental
25 3294688
>>294656
Каким образом ты чувствуешь компиляцию, поехавший?
26 3294697
>>294688
Ты болен? Там вопросы.
27 3294705
>>294697
То есть ты выдумал какую-то проблему "компиляции", которая как-то может "чувствоваться", а болен - я?
28 3294756
>>294656

>1) Остается потребность в babel?


Остается. preset-env все еще никто не заменил

>2) Насколько долгая компиляция?


Долгая, но не настолько, что бы входить в резонанс из-за тряски. У нас на проекте с ~500к строк тс кода около 4-5 секунд в вотче перекомпиляция двух билдов для фронта и сервера. Вебпак.

>Есть какая-то автокомпиляция налету чтобы во время кодинга не чувствовать ее?


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

>4) Почему тс так и не подружили с дотнетом?


Зачем? И что ты понимаешь под "подружить"?
>>294681

>swc


Хуета. В один момент столкнешься с тем, что нужен будет какой-нибудь кастомный плагин вроде бандл аналайзера и пойдешь с лицом грустной лягугки затягивать старый добрый вебпак или витю в проект.
29 3294775
>>294756
вебпак умеет использовать swc
30 3294777
>>294775
Не знал. И как оно? С плагинами дружит?
31 3294778
>>294756
1) Вебпук актуален (был когда-то) только для фронетенд макак
2) Бандлер уже почти не нужен, скажи одмину чтобы переходил на http/2/3
32 3294782
>>294778

> скажи одмину чтобы переходил на http/2/3


У нас уже давно используется CDN в нескольких странах с http3. И я могу тебе сказать, что бандел все равно нужен, даже если использовать es модули, слишком большая разница получается из-за постоянных раундтрипов, даже когда CDN находится рядом с тобой в пределах города
33 3294788
>>294756
Благодарю

>4) Почему тс так и не подружили с дотнетом?


>Зачем? И что ты понимаешь под "подружить"?


Хотел дергать asp.net, но теперь вижу что тс просто лайтовая надстройка над js, это было бы сложно.
34 3294790
>>294788

>Хотел дергать asp.net


Так это можно. Используй WASM.
35 3294792
>>294782
DHH сказал что не нужен. Можно просто уволить фронтендомакак и нанять бекендеров, как в старые добрые писать на шаблонах, а сверху нахлобучить stimulus hotwire htmx alpine.
image.png17 Кб, 423x259
36 3294796
Оказалось, можно подключить проверку типов через jsDoc в vscode добавив пикрил (и добавив сам ts).
Очень удобно для меня, осталось сниппеты для jsDoc сделать.

Кто знает когда вообще планируется аннотация типов? Я так понял в ECMAScript 2025 не будет?
37 3294799
>>294796
Ты не поверишь, но jsdoc работает из коробки и никакой tsconfig и ts в целом нахуй не нужны. Подсказки для библиотек написанных на ts тоже показывает автоматически
38 3294844
>>294799
Мне нужна проверка еще, житбрейнских IDE был какой-то автоматический чекер, который подсвечивал.
image.png16 Кб, 681x171
39 3294851
40 3294855
>>294799
Но без ts не будет проверки типов при компиляции.
41 3294865
>>294855
eslint-plugin-jsdoc, и "компиляция" не пропустит ошибки.
42 3294868
>>294865
Мимо другой анон, не использую jsdoc, зачем он нужен когда есть тайпскрипт?
43 3294878
>>294868
Затем, что тайпскрипт - это громоздкая хуета, jsdoc решает вопрос "проверки типов" и "подсказок" гораздо проще
44 3294879
>>294878
Чем он громоздкий? По-моему ничем. И решает вопрос проверки типов и подсказок гораздо проще и автоматически, не нужно лишние костыли подключать.
45 3294881
>>294879
Лишний костыль - это тайпскрипт, все тоже самое есть без него и "подключать" нужно гораздо меньше.
46 3294887
>>294756

>preset-env все еще никто не заменил


Пиздос, я правильно понял, что тс-дебилы сначала "компилируют" один раз в жс, а потом еще второй раз Бабелем? Или этот ваш коллега что-то попутал?
47 3294889
>>294881
Но он не лишний и не костыль, он расширяет функционал, которого не хватает. С jsdoc нужно срать в код каким-то манясинтаксисом вместо стандартного в индустрии тайпскрипта.
48 3294891
>>294889
jsdoc - стандартный инструмент в индустрии, если ты его не знаешь, то мы перезвоним.
49 3294892
>>294887
Не использую бабель уже много лет, нах он нужен?
50 3294893
>>294891
Я его знаю, но его далеко не везде используют, и он в целом бесполезный, если есть тайпскрипт, который есть в 99% проектов.
51 3294894
Как вы считаете, Тинькофф/Тбанк инвестиции это хайлоад?
52 3294896
>>294893
Ну да, там где старшему покрасчику кнопок насрали в голову тайпскриптом - используют тайпскрипт, все верно.
53 3294900
>>294896
То есть 99% разработчиков не правы, один ты познал истину?
54 3294902
>>294900
99% разработчиков от тайпскрипта используют только расширение .ts у файлов, и есть 1% идейных дебилов, которые выводят типы ради выведения типов вместо решения задач
55 3294910
>>294902
Чтобы написать ровно тебе самые типы на jsdoc надо банально больше строк, а также не реализовать упоротые дженерики с инферами и условными типами. Но 99.999% клиентского кода это банально ничего не нужно.

Другое дело, что в jsdoc давно можно херачить типы прямо в ts стиле, а при желании совсем упоротых типов ничего не мешает их описать в d.ts и заимпортить в jsdoc.

И получить в итоге лучшее от двух миров - краткость, лаконичность и мощь типов от ts и скорость сборки/пересборки для хотрелоада от ванильного js.
56 3294911
>>294910
Совершенно верно, здесь лишь проблема в тс-дебилах, которые слышать ничего не хотят и считают, что у них отбирают любимую игрушку
57 3294913
>>294911
Все же ts - уже стал стандартом, от него никуда не деться. Работал в трёх компаниях в мяскоте и везде был или внедрялся тс. И сейчас с третьей компании ts последний год уже полностью обязателен для всех новых проектов.

Но у меня осталась старая админка внутреннего проекта с jsdoc, отвожу на ней душу.
58 3294920
>>294911
Анончик, ты пока что на стадии отрицания, или уже на стадии злости/гнева? Ведь по факту-то практически везде пишут на тайпскрипте. И чем лучше компания, чем лучше её продукт/проект, чем сильнее там команда, тем выше шанс, что там пишут именно на тайпскрипте.
59 3294935
>>294920
копиум тс-дебила
60 3294939
>>294935
Всё-таки похоже на злость. Если ты не согласен с тем, что практически везде пишут на тайпскрипте, то как раз ты заливаешься копиумом, ведь ты пытаешься отрицать реальность.
61 3294940
>>294939
Тупорылый тс-дебил - >>294902
62 3294948
>>294940
Тяжело наверное быть тобой, когда ты вынужден отрицать неприятную тебе реальность, при том даже этот копиум не спасает тебя от злости.
63 3294949
>>294851
В том что ты получил дабл.
image.png5 Кб, 262x192
64 3294950
Господа, как тестировать не-экпортные (закрытые) функции/классы?
66 3294960
>>294948
Тяжело наверное быть тс-дебилом, который не умеет читать, выдумал воображаемых врагов, приписал им воображаемые утверждения и сражается с ними
67 3294971
>>294960
Я как раз почитал тебя и сделал вывод, что ты буквально отрицаешь реальность и живёшь в манямирке либо просто застрял в 2014 году, где всё делалось на чистом жс. Врагов у меня нету, я не более чем зоонаблюдаю и жду, когда у тебя стадия гнева перейдёт в стадию торга.
68 3294973
>>294971
О чем и речь - тс-дебил не умеет читать, но "делает выводы" космической глупости
69 3295003
>>294973
Космическая глупость - это гневно коупить, отрицая реальность, как будто она от этого изменится.
70 3295022
>>295003
ТС-дебил настойчиво продолжает спорить с вымышленными утверждениями собеседника
71 3295024
>>295003
Типовая дискуссия с ТС-дебилом:
- Тайпскрипт кал и моча
- АААА НЕЕЕТ ВЫ ВИДИТЕ МАМ СКАЖИ ОНИ ОТРИЦАЮТ РЕАЛЬНОСТЬ МАМ КОУПЯТ
- Дебил, ты сам это придумал
- РРЯЯЯЯ РЕАЛЬНОСТЬ ОТРИЦАЮТ МАМ СКАЖИ ИМ
72 3295028
>>295022
>>295024
Ого, это уже кульминация стадии гнева, или будет продолжение? Когда у тебя мания величия, то стоит научиться быть более эмоционально стабильным. Ведь ты один прав, против тебя 99% остальных разработчиков.
73 3295029
>>295028
- тайпскрипт говно и моча
- РЯЯЯЯЯ У ТИБЯ ГНЕВ МАМ СКАЖИ ЕМУ ТЫ ПРОТИВ РАЗРАБОТЧИКОВ РЯЯЯЯЯ Я СДЕЛАЛ ВЫВОД ГОЛОВОЙ А ЕЩЕ Я В НЕЕ ЕМ
74 3295031
>>295028
От того, что ты десятый раз припишешь выдуманные тобой утверждения собеседнику, ничего не изменится, дурачок
75 3295033
>>295029
Капсовый визг интенсифицируется, думаю ты уже приближаешься к торгу.

>>295031
Но я ничего не выдумывал, ты же буквально считаешь, что ты прав, а 99% других разработчиков нет. Тебе требуется лечение, ты погряз в манямирке слишком глубоко. В 2014 большинство проектов спокойно обходились чистым жс, но сейчас уже почти 2025, любой качественный да и абсолютное большинство вторсортных проектов делаются на тайпскрипте. Один ты особенный у нас. Специальный.
76 3295038
>>295033
Одиннадцатый раз тс-дебил приписал собеседнику выдуманные им самим утверждения, как и свой визг, выделенный капсом
77 3295048
>>294887
Во первых, нет. Во вторых - babel используется еще задолго до входа тс в широкие массы.
78 3295049
>>294950
экспортировать их
79 3295074
>>294950
1) экспортировать их
2) апи пакета, которое должно торчать наружу, реэкспортировать в одном файле, например index.js
export myFunction from "./path/to/my/function"
3) package.json отграничить экспорт (импорт для пользователя), оставив возможность импотрировать только из index.js
"exports": {
".": "./index.js"
},
80 3295083
>>295074
Нефига непонятно, можно пример на гитхабе или на статью, если не сложно.
81 3295085
>>294950
Вот этих додиков не слушай >>295049 >>295074
Все это тестируется через публичный интерфейс и моки зависимостей. Тестируется конечный результат, а не отдельные составляющие класса или функции.
Допустим, у тебя есть класс с одним публичным методом initialize:

initialize() {
document.addEventListener(“click”, event => this.handle(event));
}

Тебе не нужно делать метод handle публичным, тебе нужно создать мок document.addEventListener и проверить
1. При вызове initialize зарегистрирован обработчик
2. При клике обработчик вызывает/не вызывает preventDefault в таких и таких случаях

И т. д. пока не покроешь все кейсы использования.
82 3295103
>>295083
документация nodejs https://nodejs.org/api/packages.html#package-entry-points
>>295085
Поток сознания не относящийся к вопросу
83 3295124
>>295103

>как тестировать не экспортные функции


>пишет гайд как тестировать экспортные функции и бонусом гайд как ограничивать импорт из пакета


>пуксреньк поток сознания



В голос с одебилевшего вкатуна
84 3295139
>>295124
Твое ряя юнит тесты не нужы, только конечный результат тестировать, какое отношение к вопросу имеет? Тебе не нужны, а кому-то нужны. Например сложный алгоритм протестировать, так как он может поломаться из-за зависимостей. Откуда тебе видать, что чел там не экспортировал, ванга что-ли?

Я показал пример как экспортировать внутри пакета, не экспортируя вовне. Экспортировать или не экспортировать внутри пакета, это уже вопрос феншуя либо конкретной ситуации в коде.
85 3295178
>>295139
Где ты хоть что то про ненужность юнит тестов увидел, шизик? Вопрос был про тестирование закрытого для внешнего мира кода в рамках юнит тестов, а не про то как заэкспортить функцию и сделать ее не импортируемой для внешних пакетов.
86 3295196
В общем, покопался и разобрался. Я думал там как в го сделано, но в реале как всегда через одно место.

Ппц насколько эти модули неудобные и vscode еще тупит, постоянно commonjs мне автокомплитит, трудно вычитать конфиг "type": "module", я не понимаю.

За день я натрахался столько, сколько не с одним языком и IDE, спасибо вам, джаваскрипщики.
87 3295198
>>295196
Это я про тесты.
88 3295199
>>3292159 →
Глянул доку таури по сайдкару.
Буквально две-три строки конфигураций и нода живет при билде.
Так что пердолинга нет, раст нинужон, таури суприме!
89 3295207
>>295199
Главное чтобы модные и молодежные хрустеры не забросили, за электроном хоть гиганты стоят, а этим могут обои наскучить и что тогда?
90 3295230
>>294950
все просто, нужно экспортировать только для тест-окружения, например:

const notExporting = () => "foobar";

export const notExportingButTest = process.env.NODE_ENV === "test" ? notExporting : undefined;


>>295085
>>295074
пиздец больные, какие пакеты нах, какие package.json, у чела был простой вопрос
еще и реализацию предлагают тестировать, ахуй
91 3295232
>>295230

>экспортировать только для тест-окружения


Да охуенно, потому тайпгварды расставлять на каждый пук, потому у модуля будет пересечение с undefined
92 3295241
>>295232
к вопросу об экспортах это какое отношение имеет?
просто подскажу тебе по доброте душевной, что можно тестировать ts-код тестами на js
93 3295255
>>295241

>к вопросу об экспортах это какое отношение имеет?


В чем проблема сделать экспорт? Если тебе прям настолько припекает что бы не импортили этот модуль - настрой правило для услинта или насри в коде
if (__IS_AUTOTEST_RUNTIME__) {throw new Error("Пошел нахуй")}

>можно тестировать ts-код тестами на js


использовтаь чистый js в любом виде моветон уже лет 10. Едиснтвенное, где его целесообразно использовать вместо тс - всякие перформанс штуки, где добавление рантайма от тс повлечет за собой проблемы. И тесты к этому не относятся.
94 3295272
>>295255

>использовтаь чистый js в любом виде моветон уже лет 10


ты сказал?

>добавление рантайма от тс


что ты несешь блять, одебилевший джун-самозванец-тролль, у тс нет рантайма

>__IS_AUTOTEST_RUNTIME__


торчат уши питониста, вообще не палишься, долбоеб.

>В чем проблема сделать экспорт?


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

>ты сказал?


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

>у тс нет рантайма


Есть, tslib.

>питониста


Конвенция именования дефайнов старше нас с тобой вместе взятых и появилась еще во времена языка си.
96 3295275
>>295207

>Гиганты стоят


Гугол тоже много за чем стоял и что с того?

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

Ну а аппы можно еще и на том же C# найти, где деды упражнялись в древних стилях, до сих пор работают.

В то же время аппа на таури, ее сайдкары - чуть ли полностью не связанны с растом и самим таури, буквально разделенные сущности.
Могу прямо сейчас скопировать папку фронта и запилить на ионике или каком-нибудь электроне.
16818857411830.jpg25 Кб, 225x224
97 3295279
>>295273

>Есть, tslib.


толсто

>Конвенция именования дефайнов


срыдни с треда, долбоеб. никто так ничего в жс-мире не дефайнит, кроме единичных залетух-питонистов типа тебя
99 3295284
>>295272

>>использовтаь чистый js в любом виде моветон уже лет 10


>ты сказал?


Индустрия сказала

Мимо
100 3295287
>>295275

>Гугол тоже много за чем стоял и что с того?


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

>C#


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

У раста слишком много драм и мухожухов последнее время, какой там статус либ тоже неизвестно, но релизному языку уже 10 лет и тенденция не прям вау, а еще 10 лет ждать не очень хочется.
101 3295288
>>295281
Это местный динамикошиз. Вон в редаксе тоже питонисты видимо отметились, лол.

https://github.com/reduxjs/redux-toolkit/blob/master/packages/toolkit/src/devtoolsExtension.ts#L220
102 3295299
>>295287
>>295287
Так смысл моего поста в том, что похуй на раст, вы сайдкарами кайфуйте.

Раст просто билдит аппу. Причем билдит лучше, меньше, защищеннее.

Нода как сайдкар и фронтендд полностью независимы, если не писать на расте, офк, а кайфовать от сайдкара.
105 3295324
>>295320
Ты до конца то эти видосы досмотрел? Они отказались от TS описаний типов, сам TS никуда не делся и все еще есть в проекте и проверяет .js файлы.
https://github.com/sveltejs/svelte/blob/main/packages/svelte/tsconfig.json#L35
106 3295334
>>295199
Спасибо, анон. Чекну. Времени сейчас маловато и знание раста тормозит.
107 3295349
>>295320
>>295324
Нихуя не понял причём свелт и турбо с шизой DHH.

Ричи Харрис - гений. Который хоть и использует JSDoc, рядом лежат TS дефинишены.
Лучшее из двух миров для удобства разработки, за что он платит временем на написание того и другого, но имеет удобство в отладке.

В свелт можно писать и на JS и на TS, и вся типизация там есть.

мимо
108 3295353
>>295324
проверяются типы на jsdoc, да, кода на ts там нет
т.е. используется то за что и хвалят ts - статический анализ
никакой компиляции, никаких суперсетов языка, никакой сложной системы программирования типов ради типов - весь этот мусор нахуй нинужон
по большому счету все возможности ts на 99% проектов используются как линтер для статического анализа, генератор контрактов и автокомплит(что даже без всяких TS IDE от jetbrains умеют из коробки десяток лет - привет долбоебам жрущим бесплатный vscode, который тоже выбрала "ИНДУСТРИЯ" стандартом)
109 3295362
>>295353

>проверяются типы на jsdoc, да


Давно jsdoc научился типы ПРОВЕРЯТЬ, а не декларировать? Хватит срать под себя.
110 3295366
>>295362
Тебе уже сказали, eslint-plugin-jsdoc
111 3295377
>>295362
tsc хавает аннотации jsdoc и проверяет js
никакого тайпскрипта в коде свелта нет, кроме дефиниций для паблик апи, если это вообще можно назвать тайпскриптом
ты прикидываешься или на самом деле тупой?
моя мысль в том большинство людей подменяют целью "ПИСАТЬ НА TS", цель того что им нужен статический анализ, линтинг, автокомплит и возможно кодогенерация, всё
ts получил распространение лишь потому что у него лучше тулинг именно для всего этого, чего не давал jsdoc или flow, а не потому что он якобы на голову лучше js или имеет охуенную систему типов((не имеет))
112 3295378
>>295320
Одна контора это вся индустрия по-твоему?
113 3295380
>>295322

>Май 2023


И что, много кто отказался от тайпскрипт кроме руби-шиза DHH?
114 3295382
>>295377

> имеет охуенную систему типов((не имеет))


Имеет, его система типов ебёт почти все популярные языки.
115 3295383
>>295230
Да, был простой вопрос «как тестировать код который не экспортится.
Налетели одебилевшие вкатуны вроде тебя с ответами «заэкспорти». Алсо, проорал с

>export


>notExporting



Уровень читаемости твоего кода даже представлять не надо
116 3295386
>>295377

>jsdoc


Чел, я хочу безопасный код писать, а не дрочить простыню из комментов и надеяться на линкер.
117 3295400
>>295377
В тс есть конкретная фича - ты не можешь выполнить код, пока не сделаешь его корректным с точки зрения компилятора. Жсеры считают это багом, а не фичей.

Линтер жс дока не совсем так работает. Что он делает если в тип из жс дока неясен, он просто как any это интерпретирует? В тс я обязан написать и импортировать тип, если можно запретить писать any в проекте.

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

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

мимо
118 3295402
>>295386
ts то тут при чем, дебил?
119 3295404
>>295400
Ты можешь зафорсить такое же поведение с jsdoc, о чем и речь. Но тс-дебил свято верит, что это послано сверху только тс и никак иначе
120 3295405
>>295383
Твой ответ был не тестировать?

не тот кому ты отвечал
121 3295412
>>295400

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



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

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

Тем самым получая и скорость разработки (в дев окружении тс не блочит LR / HMR), и подсказки (ide сама обрабатывает типы), и подсветку ошибок (линтер в отдельном потоке не мешает пересборке и не блочит её), и строгость типизации (билд уже нормально собирается со всеми проверками).

Но, возникает закономерный вывод - ровно тоже самое можно сделать с jsdoc. Тайпскрипт настроить на проверку js файлов, типы в jsdoc или в d.ts. IDE умеют работать с jsdoc, линтер умеет, даже тайпскрипт умеет.
Ну то есть, с точки зрения строгости кода то на то и выходит.

Вся разница только в том, что будет быстрее работа при пересборке (минус конь_пеляция), но ценой большего объема описания типов в комментах.
122 3295422
>>295402
Он обеспечивает безопасный код.
123 3295423
>>295412
>>295404
Суть в том, что без тс вы не устроитесь на хорошую работу, так что жсдок не заменяет тс
124 3295428
>>295404
Почему ты компиляцию минуснул, а проверку типов линтером нет. Если линтер аналогичен компелятору, то от должен для всего кода AST постоить как и компилятор

Плюс я написал что достигая в строгости тайпскрипта, ты тот же тайпскрипт должен будешь писать в комментах. Плюс это выглядит монструозно
/
@typedef {import('./person').Person} Person
/

class Person {

Поэтому либо голый динамический жс за который топит DHH, либо строгий тайпскрипт. В чем смысл других опций?
125 3295431
>>295423
Естественно.
Поэтому не очень понятно, зачем копротивляется местный тс-неосилятор, лучше бы пошел тс внедрять, чтобы к следующему собесу был уже опыт работы с тсом на продакшене.
126 3295433
>>295428

>class Person {


class Vasiya extends Person

фикс
127 3295437
>>295428

>В чем смысл других опций?


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

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

Пойми одну простую вещь - из бочки мёда оказывается можно убрать почти всю ложку дегтя, так как её не перемешали.
128 3295439
>>295428

>Поэтому либо голый динамический жс за который топит DHH,


Не задавался вопросом, почему за голую динамикодрисню топит один шиз, а за тс все остальные?
129 3295446
>>295423
Ну да, ну да. Все легаси ведь давно переписали с js на ts)
Умеешь писать на жс=умеешь писать на тс. По крайней мере на фронтенде. Привыкнуть к нюансам и сахарку можно за неделю, пописывая свой пет или порефакторив чужой. На техсобесах 2-3 вопроса релевантных если и будет, то ок. Все остальное будет про алгоритмы, кишки рантайма и вебапи, браузеров, вёрстку, фреймверки, тесты, процессы, архитектуру, систем дизайн, опыт.
Я лучше возьму на работу сеньора который повидал некоторое дерьмо с жквери, первым ангуляром, бэкбоном, сборщиками типа гранта и вёрстку в ие9, но который никогда не писал на тс, потому что он вольется в проект максимум за месяц. Чем мидла/джуна, который тс считает отдельным навыком и имеет опыт с ним. Даже на проект на котором 100% известно уже используется или планируется тс.
130 3295474
>>294005 (OP)
где можно захостить приложение на ноде+нг бесплатно но так чтобы кредитку не требовало? типа как раньше на хероку
131 3295482
>>295474
На своей пеке.

надеюсь помог
132 3295486
>>295446

>Я лучше возьму на работу сеньора который


Молодец, а другие 99% нанимающих возьмут с опытом разработки в проектах на тайпскрипте, у них ведь поток кандидатов огромный, могут позволить себя выбирать из широкого пула кандидатов. Найдётся такой, который

>повидал некоторое дерьмо с жквери, первым ангуляром, бэкбоном, сборщиками типа гранта и вёрстку в ие9,


При этом ещё и с тс работал последние лет 5. Если сеньор не работал с тс последние лет 5, то он и скорее всего и не сеньор вовсе, да и у него не опыт, а стаж, ведь он работал на второсортных легасных помойках, а не на качественных тир 1 проектах.
telegram-cloud-photo-size-2-5467793028132495996-x.jpg43 Кб, 800x762
133 3295503
134 3295505
>>295423

> так что жсдок не заменяет тс


Опять тс-дебилы придумывают утверждения и приписывают их собеседникам. Зачем ты выдумал это утверждение?
135 3295506
>>295486
Вот это мрии тс-дебила
136 3295507
>>295428

>это выглядит монструозно


Любитель повыводить многоэтажные типы с интерфейсами ради самих типов рассказывает про монструозность, кек.
137 3295511
>>295503
Напрасно смеетесь бабуля. В каждой сказке есть доля правды. Есть разные способы сделать это.
Например у тебя 100-200 рублей на дешевую впску не найдется?
1) Покупаешь дешманскую впску
2) На впску ставишь нжинкс
3) Нжинкс настраиваешь как реверс прокси
3) На своей пеке поднимаешь мега пет
4) через ssh делаешь тунель к своему пету
5) Профит
138 3295512
>>295446

>мидла/джуна, который тс считает отдельным навыком


Да он не просто отдельным навыком, он считает это вообще отдельной вселенной со Строгой Типизацией, а все остальное - это ДинамикоДрисня Сраная. На курсах наверное так рассказывают.
139 3295515
>>295511
Ты только что ngrok и сотню других подобных сервисов
140 3295518
>>295515

>Есть разные способы сделать это


Это отимальный способ не доверять свой комп всякому говну, а сделать шалаш самому из палок и листьев.
141 3295520
>>295486
Ору. Ты либо вкатун, либо долбоеб с рабской ментальностью. Тсдебил даже не понимает, что тс это не навык. Это примерно как джуны указывают себе в резюме знание sass или tailwind. Нужно ли время чтобы их освоить? Нужно, никто не спорит. Являются ли эти вещи базовыми и необходимыми? Нет. Хочешь ли ты называть себя sass-разработчиком, ts-разработчиком, jquery-разработчиком или все таки инженером? Если работодателю нужен не инженер, а исключительно ts-макака, винтик под его(а скорее даже не его, а другой тс-макаки на должности тимлида) фантазии об идеальном стеке - тогда и флаг им в руки.
142 3295523
>>295506
Зачем в порашу тред скатывать? По делу нечего сказать?
143 3295524
>>295520
>>295512
Снова начались маняотрицания. Приведи пример тир 1 проектов и компаний, где пишут без тс.
144 3295526
>>295524
Здесь не было утверждений, что где-то пишут без тс, тс-дебил снова выдумал утверждения и приписал собеседнику
145 3295529
>>295523
По делу - мы вам перезвоним, товарищ вкатун с пет-проектом на тайпскрипте.
146 3295530
>>295529
>>295526
Я пишу на тайпскрипте 5 лет, на жсе около 10. В 99% тир 1 проектов пишут на тайпскрипте, без него вы в таких проектах работать не сможете.
147 3295531
>>295530
Вкатунчик, ты палишься по своему отношению к тайпскрипту как к чему-то особенному.
148 3295532
>>295531

>Вкатунчик


Это проекции?

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


Зачем ты выдумываешь какое-то отношение иприписываешь собеседнику? Для меня это просто один из инструментов.
149 3295538
>>295524
Тебе не нужно знать ts или иметь опыт с ним, чтобы пройти собесы и устроиться в faang. Кажется разговор был именно об этом, а не о том где он используется, ты сейчас уже как раз сам маняврируешь и подменяешь понятия. Компании используют много всякого дерьма(вспомнить тот же бэм в яндексе или closure у гугла) и тулинга, но найм немного сложнее чем матчинг релевантных и актуальных инструментов.
https://www.google.com/about/careers/applications/jobs/results/76189288726700742-senior-software-engineer-front-end-search-content-platform?q=Frontend&skills=Frontend
150 3295540
>>295532
Ну вот так выглядишь взрослым. Не повторяй больше вкатунскую ржаку про 99% тир 1 проектов.
151 3295543
>>295540

>Не повторяй больше вкатунскую ржаку про 99% тир 1 проектов.


А как это противоречит тому, что тс просто один из инструментов? Он один из инструментов, но в индустрии он действительно стал настолько сильным стандартом, что его используют практически везде.
152 3295553
>>295543

>что его используют практически везде.


npm и yarn тоже используют везде
Надо ли мне 5 лет поработать с yarn, если я до этого 5 лет работал с npm. Нужно ли указывать это в резюме? Будут ли задавать по yarn вопросы на собесе и какие? Есть ли аналог литкода чтобы задрочить все команды ярна?
пиздец ты долбоеб конечно, братишка
153 3295559
>>295553

>Надо ли мне 5 лет поработать с yarn, если я до этого 5 лет работал с npm. Нужно ли указывать это в резюме? Будут ли задавать по yarn вопросы на собесе и какие? Есть ли аналог литкода чтобы задрочить все команды ярна?


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

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

type SomeType<T, K extends keyof T> = {
[P in keyof T]: P extends K ? (T[P] extends object ? Partial<T[P]> : T[P] | undefined) : T[P]
}
154 3295562
>>295553
Выучить yarn add вместо npm install это все таки по сложности не то же самое, что понимать, как в тупоскрипте использовать infer или как сделать тип для конструктора

мимо
155 3295573
>>295559
А сколько велью эта формула добавляет к продукту?

мимо кабаныч
156 3295584
>>295573
У моего лида спрашивай. Я в любом случае быстро напишу этот тип и пойду дальше.
157 3295601
>>295559
Красота какая, как минималистично! Не то, что этот монструозный жсдок
158 3295603
>>295601
Покажи как такой же функционал будет выглядеть на жсдоке.
159 3295609
>>295559

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


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

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


Выглядит несложно. За неделю можно надрочиться такую хуйню читать и писать, это же просто дженерики и преобразования над ними. Другой вопрос что заниматься этим я бы не хотел, удачи в петле или в дурке оказаться через несколько лет такого погромирования типов ради типов и ложной "безопасности".
изображение.png564 Кб, 750x1000
160 3295612
>>295423
Ебать базанул так базанул.
161 3295631
>>295603
Распиши задачу-то
162 3295641
>>295631
Так тебе тип скинули, напиши такой же на жсдоке
163 3295646
>>295641
Это не задача, это решение
164 3295649
>>295609

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


Практика твоей тир 2 галеры не репрезентативна, в тир 1 компаниях везде тс.

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


А опыт работы в несколько лет ты тоже за неделю получишь?
165 3295651
>>295646
Значит тебе должно быть ещё проще. Решение уже есть, напиши такое же на жсдоке
166 3295654
>>295651
Это не так работает, решить задачу можно разными способами, не похожими друг на друга. Вот ты задачу напиши, а не свое решение
167 3295663
>>295654
Так и скажи, что не понимаешь, что делает этот тип
168 3295667
>>295663
Так и скажи, что ты занимаешься программированием типов ради выведения типов, а не решения задач бизнеса
169 3295675
>>295603
Да собственно также, просто тип будет описан в отдельном .ts файле и импортироваться в жсдоке
мимо
170 3295688
>>295649

>А опыт работы в несколько лет ты тоже за неделю получишь?


Ну пока ты дрочил свои типы несколько лет, чтобы изящно описывать как жсон по банальным крудам передаётся, я решал бизнесовые задачи, иногда очень нетривиальные. Как думаешь о чем кабанчику или тимлиду будет интереснее послушать на собесе?

>Практика твоей тир 2 галеры не репрезентативна, в тир 1 компаниях везде тс.


Гугл и Яндекс выписаны из тир1 со своими костылями и легаси. Так и запишем) Держи в курсе.
171 3295691
>>295085

>тестируется


>докьюмент аддЭвентЛистенер(кликк


А как написать тесты для анимаций?
172 3295700
>>295667
Ради решения задач бизнеса. Вот эту задачу ты решить не в состоянии, похоже.

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


Школьник с бинарным мышлением, ты? Я делал и то, и другое, они не исключают друг друга.

>Гугл и Яндекс выписаны из тир1 со своими костылями и легаси. Так и запишем) Держи в курсе.


Какие проекты в Гугле и Яндексе не используют тс? И какой процент таких проектов от всего количества? Вопрос риторический. Особенно смешно про Гугл, который буквально создал Ангуляр, где на чистом жс в принципе невозможно писать. Про Яндекс в принципе тоже:
https://yandex.ru/jobs/vacancies?from=cp_header&professions=frontend-developer&text=typescript
173 3295701
174 3295702
>>295700
Итак, задачу сформулировать тс-дебил не в силах, ясно-понятно.
175 3295707
>>295702
Ты не способен вывести задачу из решения, ты точно сеньор, или просто носишь лычку сеньора?
176 3295710
>>295688

>Яндекс


Шиз, нука покажи мне в каком проекте в яше использует ЖС вместо ТС. Сразу можешь на вики скинуть страницу или название - я проверю.
177 3295713
>>295688
Кого наймёт кабанчик, сеньора, который много лет решал задачи бизнеса в качественных проектах с использованием тайпскрипта, или "сеньора", который много лет решал задачи бизнеса без тайпскрипта, то есть в легасных второсортных проектах?
178 3295727
>>295710
https://github.com/orgs/yandex/repositories?q=lang%3Ajavascript&type=all
Поможем же Даше найти жаваскрипт в яндексе. И это только публичные oos, а сколько там внутри собственных сервисов/тулов, в тч внутри всяких дочек/внучек типа лавки/практикума/макета никто не скажет.
>>295713
Наличие тайпскрипта в проекте не делает его первосортным. Верно так же и обратное - отсутствие тайпскрипта не делает проект второсортным. Ты сделал беспруфное утверждение(что тайпскрипт тождественен тир1 бизнесу) и пытаешься на этом построить остальную логику, беспощадная софистика, которой разве что вкатунов наебывать на покупку курсов по тайпскрипту.
179 3295734
>>295727

>Поможем же Даше найти жаваскрипт в яндексе. И это только публичные oos, а сколько там внутри собственных сервисов/тулов, в тч внутри всяких дочек/внучек типа лавки/практикума/макета никто не скажет.


>https://github.com/orgs/yandex/repositories?q=lang%3Ajavascript&type=all


Хуя дэбил. А тебя не смущает, что в вакансиях для фронтендеров 41 вакансия из 50 содержит typescrtipt? То, что у них на гитхабе, это хуитка нерелевантная. Вот что релевантно:
https://yandex.ru/jobs/vacancies?from=cp_header&professions=frontend-developer&text=typescript

>Наличие тайпскрипта в проекте не делает его первосортным.


Да.

>Верно так же и обратное - отсутствие тайпскрипта не делает проект второсортным.


Почти всегда это не верно, за редчайшими исключениями, где настоящие 10х инженеры-глыбы делают что-то особенное, выходящее за рамки обычной коммерческой разработки. А обычный коммерческий проект без тс (к ним относятся те же яндекс музыка, карты, еда, маркет, такси, аналоги гугла) - второсортный, потому что динамикошизы и жсдок-макаки типа тебя будут вместо типа как тут >>295559 писать огромную портянку.
180 3295739
>>295727

>https://github.com/orgs/yandex/repositories?q=lang%3Ajavascript&type=all


Ебанат, ты показываешь не яндекс, а какие-то высратые на гитхаб говносниппеты. Все фронтовые проекты в яндексе уже давно на ТС. Во всех> технорадарах JS в холде.

>никто не скажет


Я тебе скажу. В нашем бизнес юните JS есть только в виде какого-то легаси кода, последний коммит в который был более 5 лет назад. Все CLI, либы, проекты, ui-kit'ы и прочее давно использует TS.

Так раз уж ты яндексом прикрывыешь - назови мне проект, который в написан на ЖС и который активно поддерживается. Я посмотрю исходники. Или ты напиздел и всю жизнь работал в ООО рога и копыта, делая простейшую хуйню на jquery?
181 3295746
есть Яндекс
@
а все остальное это ООО рога и копыта
image.png22 Кб, 394x603
182 3295765
Приводят в пример такую особенность работы кастомных пропертей, что первый див окрашивается в красный, а второй не окрашивается в синий. Но я не могу понять чем это обусловлено, в чем логика?
183 3295770
>>295734

>Вот что релевантно:


>в половине вакансий требуется redux


Охуенный техрадар. Прямиком из 2017
184 3295778
>>295746
>>295770
Тебя уже попустили с Яндексом, но если ты мазохист и хочешь ещё, то давай посмотрим остальных из КОТВАСЯ.

Касперский, 3 вакансии из 3 с TS
Озон, 6 из 9 вакансий
Тбанк, 3 вакансии из 3
ВК, 6 из 6
Авито, 3 из 3
Сбер, 7 из 7 на developers.sber.ru, 70 из 79 на rabota.sber.ru
Яндекс, обновлю: если указать только фронтенд и фуллстек вакансии, то javascript 26 вакансий, typescript 42, лол

В итоге выделяется только Озон, где пишут на вью, возможно в том числе используют легасный вью 2, так что с тайпскриптом у них хуже, но вообще у них во всех вакансиях тестировщиков указан тайпскрипт.
185 3295783
>>295778
Да не стоило утруждаться, уже разобрались, что вся мощь тайпскрипта необходима тир1 компаниям, чтобы увлекательно типизировать экшены редакса трехэтажными типами. Современные проблемы требуют современных решений.
186 3295785
>>295783

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


Чел, ты всё-таки реально застрял в прошлом. Уже минимум 4 года существует redux toolkit, в котором не нужно писать большое количество бойлерплейта. Не то чтобы я фанат редакса, но с тулкитом всё намного проще. В своих проектах я другие стейт менеджеры использую, либо не использую вовсе (только tanstack query для асинк стейта).
187 3295807
>>295765

>на скрине три дива


>первый в красный, второй в синий



Чел... выкидывай эти примеры и тех кто его давал нахуй, такое на работе не пишут.
188 3295809
>>295785
Ахаха, в ахуе какой же ты инфант ебаный. Ты опять додумываешь про меня хуйню, которую сам же и высосал из пальца. Что я нихуя не юзал, нихуя не видел, нихуя не пробовал, работаю в рога и копыта, ковыряю свой жс ванильный. Думай дальше так. Чем больше таких вот снобов-нпс-болванчиков и компаний, которые технологии для проектов по техрадарам выбирают, а не исходя из инженерных изысканий, реальных требований, ограничений, dx, здравого смысла и культуры, то тем больше интересных вакансий, проектов и опыта для меня.
Самое забавное что шобла даже не осознает что весь этот техстек выбран топовыми компаниями не чтобы улучшить продукт, а чтобы упростить и удешевить найм. В моменте пузырь надувается, зарплаты растут, но достивнув плато в итоге стагнируют, когда рынок перенасыщается специалистами с удовлетворительной квалификацией. В итоге бизнес получает на длинной дистанции дохуя мидлов, готовых работать за еду в лучшем случае(привет постковидный кризис), а в худшем только дохуя мидлов на рынке. Выше наглядно такой вот раб системы с пеной у рта доказывал что мне надо конкурировать с ним за место в тир1-компаниях, учить тс, какие то года нарабатывать на этом говне, создавая ещё больше конкуренции за места. Нахуя, зачем это лично ему? Инфантильность на мой взгляд, чтобы показать свою значимость или оправдать свой выбор стека(смотрите, я ем говно с тс, но это стандарт индустрии!) ххххрр тьфу!
zjcHu7COIIAm-THzlSZzIBc0-1920.jpg343 Кб, 1080x1645
189 3295821
>>295809

>снобов-нпс-болванчиков


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


Дооооо, ты такой не сноб, лол, образованный-революционер в окружении дремучих тс-дебилов

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


Уровень ЧСВ и грандиозность марямирка поражают

>тем больше интересных вакансий, проектов и опыта для меня


Ага, тем временем практически все годные проекты пишутся на тс, и это далеко не первый год так
190 3295875
>>295559

>type SomeType<T, K extends keyof T> = {


>[P in keyof T]: P extends K ? (T[P] extends object ? Partial<T[P]> : T[P] | undefined) : T[P]


>}


Я не вдупляю нахуя это надо. Типа выввести тип ключей из объекта?
16922886137750.mp44,2 Мб, mp4,
656x656, 0:10
191 3295879
Хуй за щеку чепухану, не написавшему тег.
image.png47 Кб, 685x339
192 3295902
Вчера переписывал юзерскрипты, поставил тс для проверки кода, вместо быстрого прототипирования занимался типо-рисованием, как же он мешает свободе жс, да еще плохо выводит типы приходится заглушки ставить. Он же сырой ппц, что в идеи заглушки ставил когда-то что в тс, лол.
193 3295903
>>295902
Скинь весь скрипт, напишу тебе нормальные типы.
195 3295923
>>295785
>>295783
Ребятушки, а что на счет стандартного контекста?
Или редакс тулкит чем-то намного лучше?
196 3295930
>>295923
У контекста есть проблемы с перфомансом. Во многих случаях он подойдет- например чтобы хранить шаред стейт для большого компонента, разбитого на маленькие, или хранить тему\данные юзера(то что требует инициализации один раз и не часто меняется).
Редакс хоть без тулкита, хоть с тулкитом, хоть с санками, хоть с сагами - ебейший бойлерплейт и многословность. Из плюсов только то, что плюс-минус все с ним работали и понимают концепцию.
Для состояния запросов можно и нужно взять react-query\apollo и не хранить этот стейт от слова никак.
Для всего остального глобального стейта - mobx и zustand на выбор. Или effector если ты адепт хайп-драйвен-девелопмента.
197 3295941
>>295879
Я обосрался. Следующий перекат перекачу нормально.
198 3295982
>>295930
Для запросов и стейта нужно делать отдельные сервисы, которые будут его хранить, никакие квери аполо хуело мобиксы не нужны, максимум rxjs в сервисах
199 3296013
>>295982

>никакие квери аполо хуело мобиксы не нужны, максимум rxjs в сервисах


конечно не нужны, можно еще xhr дергать и в window хранить, тоже удобно

>нужно делать отдельные сервисы


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

вот пример запроса на apollo в компоненте, ничего лишнего:

import { gql, useQuery } from '@apollo/client';

const GET_DOGS = gql`
query GetDogs {
dogs {
id
breed
}
}
`;

function Dogs({ onDogSelected }) {
const { loading, error, data } = useQuery(GET_DOGS);

if (loading) return 'Loading...';
if (error) return `Error! ${error.message}`;

return (
<select name='dog' onChange={onDogSelected}>
{data.dogs.map((dog) => (
<option key={dog.id} value={dog.breed}>
{dog.breed}
</option>
))}
</select>
);
}

примерно так же будет и react-query выглядеть, если в проекте обычный rest, а не gql

это именно что слой по работе со стейтом запросов, не нужно(хотя конечно кто же тебе запретит?) эти данные тащить в глобальные сторы, как в далекие времена на каждую рест ручку в редаксе писали редюсер, слайс и экшены, это пиздец
199 3296013
>>295982

>никакие квери аполо хуело мобиксы не нужны, максимум rxjs в сервисах


конечно не нужны, можно еще xhr дергать и в window хранить, тоже удобно

>нужно делать отдельные сервисы


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

вот пример запроса на apollo в компоненте, ничего лишнего:

import { gql, useQuery } from '@apollo/client';

const GET_DOGS = gql`
query GetDogs {
dogs {
id
breed
}
}
`;

function Dogs({ onDogSelected }) {
const { loading, error, data } = useQuery(GET_DOGS);

if (loading) return 'Loading...';
if (error) return `Error! ${error.message}`;

return (
<select name='dog' onChange={onDogSelected}>
{data.dogs.map((dog) => (
<option key={dog.id} value={dog.breed}>
{dog.breed}
</option>
))}
</select>
);
}

примерно так же будет и react-query выглядеть, если в проекте обычный rest, а не gql

это именно что слой по работе со стейтом запросов, не нужно(хотя конечно кто же тебе запретит?) эти данные тащить в глобальные сторы, как в далекие времена на каждую рест ручку в редаксе писали редюсер, слайс и экшены, это пиздец
200 3296046
>>295902
TS и не нужен для скриптов. Он нужен для командной разработки больших приложений.
201 3296048
>>296013

> так же будет и react-query


Не будет. React-query уже давно умеет суспендить в отличии от твоего кала, который на каждый чих вынуждает писать
if (isLoading)
if (isError)
if (isSuccess)
202 3296053
203 3296093
>>296013

>отдельный сервис



Охуенно, очередной год-обжект по типу редакса. Минусы все те же только в другой обертке. Опять эти магические useQuery которые все за тебя делают, а чуть в сторону - расстрел и костыли на весь проект.
Явное лучше неявного
Глобальный стейт - зло
Вот когда эти два принципа буду соблюдены, тогда приходи.
204 3296102
>>296093

>Охуенно, очередной год-обжект по типу редакса.


Нихуя себе, любой стейт-менеджер, оказывается, - антипаттерн.
205 3296115
>>296093
Где ты тут год обжект увидел? Для слоя апи есть apollo/swc/tanstack-query, они выполняют свою задачу удобно и хорошо(и используя все современные оптимизации и концепции реакта типа саспенса). Если хочешь обмазаться глобальными сторами и реализовывать эту логику обработки ошибок, кеширования, ожидания загрузки, валидации и разбора реквеста/респонса, мидлварей, поведения для ssr, провайдера/консумера/биндинга для компонентов внутри них ручками - твой выбор, мне похуй. Тебе лишь показали возможность, эти инструменты появились не на пустом месте.
206 3296116
>>296115
SWR a не swc конечно же, фикс
207 3296120
>>296102
Не любой, а тот который хранит стейт всех частей приложения
208 3296128
>>296120
Чем плохо? Всегда должно быть одно централизованное место, из которого происходит управление. Иначе хрен поймешь, что где откуда управляется.
209 3296135
>>296128
Его нет, у тебя место которое хранит все и отдает всюду. Централизация это когда у тебя есть слои и взаимодействие между ними, центральным должен быть предметный слой с бизнес логикой. В случае глобального стейта границ нет, я могу влиять на ui пукнув в стейт из любого места.
210 3296145
>>296135

>я могу влиять на ui пукнув в стейт из любого места


И это хорошо. Зачем лепить себе какие-то безумные ограничения?
211 3296149
>>296145
Вот и пришли к начальному >>296093
Т. е. ты только что буквально сказал "год обжекты и глобальный стейт это хорошо, вы ничего не понимаете"
212 3296154
>>296149
Так а где было сказано, что это плохо?
213 3296180
>>296154
А react-query тут причём? Из глобального стейта там только кэш, который ты можешь и не использовать вовсе. Запросил в компоненте данные, отрендерил, анмаунтил и они почистились gc. Это и есть локальный стейт блять, абстракция над фетчом со свистелками и перделками, которые тебе все равно понадобятся в проекте чуть сложнее туду-листа(и придётся писать свои велосипеды). Работать со стейтом запросов можно и в классических сторах типа редакса, мобикса, контекста, но лучше не надо - только про это и речь.
214 3296182
>>296093
>>296120
>>296135
>>296149
Назови решения для работы с асинхронным стейтом лучше чем apollo/tanstack-query/swr?
215 3296185
>>296180

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


В редакс тулките есть удобный rtk query, единственный минус - до сих пор нет поддержи suspense
216 3296193
>>295903
Ну как? Получается?
217 3296194
Typescript это, возможно, самый "врущий" язык, с которым мне приходилось работать.

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

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

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

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

При этом, в скорости это нифига не выигрывает, и просто добавляет ложку мёда в цистёрну дёгдя йаваскрипта.

Решение для типизации было следующим - сервер, написаный на golang, который возвращал объект нужного типа. (40 строк кода). Смысл TS быстро попадает, когда в мире столько других замечательных языков программирования.
218 3296199
>>296149
И тут приходит бизнес и говорит, чот сео не очень, бандл слишком большой, куча запросов от клиента, для части сервисов безы требуют прокси поднимать, так как токены не следует светить, ещё миллион причин,,, а подними ка ты Вася ssr для проекта, чтобы все это решить внутри контура, а наружу только то отдавать, что требуется.

И тут ты понимаешь, что ничего удобнее глобального стейта - еще не придумали. В одном месте собрал все данные и настройки ui - и отдал с разметкой.
219 3296204
>>296194

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



Я тебе больше скажу, можно отредактировать память процесса и вообще не важно на каком языке была написана программа - также с удовольствием программа на любом языке все сожрёт и будет работать пока не упадет из-за мусора в указателях или том же делении на ноль.
220 3296207
>>296185
У rtk query примерно похожий апи по получению данных в компоненте. Только для него нужен редакс и бойлерплейт на КАЖДЫЙ запрос, это пиздец. В этом и минус, это просто лишний шаг, когда тебе нужно просто получить данные и отрендерить/передать дальше.
221 3296209
>>296194

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


Примеры таких объектов за пределами тайпскрипта?

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


С какими ORM у тебя были подобные проблемы? У меня не было ни с TypeORM, ни с Prisma, ни с MikroORM, и нет, проекты были не просто круды.

>В TS тебе приходится тратить больше времени на мороку с типами передаваемых переменных, и в три раза больше времени на мороку с типами стандартных переменных.


Звучит как джуновские skill issues, когда исправление ошибки с типизацией кажется чем-то долгим и сложным.

>В итоге весь код обрастает тайпгардами и функциями, которые сравнивают значения.


Не весь.

>При этом, в скорости это нифига не выигрывает, и просто добавляет ложку мёда в цистёрну дёгдя йаваскрипта.


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

>Решение для типизации было следующим - сервер, написаный на golang, который возвращал объект нужного типа. (40 строк кода). Смысл TS быстро попадает, когда в мире столько других замечательных языков программирования.


На фоне TS golang сложно назвать замечательным. Да на фоне практически чего угодно. Разве что виртуал треды крутые в го, так они и в сишарпе, есть, в котлине есть, и даже в джаве уже есть.
222 3296210
Спросил у чата гпт рассчитать вероятность нахождения работы на том или ином стеке. ИИ ответил:
"Вероятность найти работу с React + Node.js даже выше, чем с Angular + ExpressJS. Этот стек является одним из самых популярных и востребованных в веб-разработке на сегодняшний день. Многие компании, включая стартапы и крупные организации, используют его для создания современных, высокопроизводительных веб-приложений."
Это так?
223 3296214
>>296210
Да, это довольно точное утверждение. Стек React + Node.js действительно очень популярен в веб-разработке и востребован на рынке труда. React часто используется для создания пользовательских интерфейсов, а Node.js — для серверной части приложений. Этот дуэт позволяет разрабатывать эффективные и масштабируемые веб-приложения.

Angular + Express.js также востребованы, но в последние годы популярность React продолжает расти, что делает его более предпочтительным для многих работодателей. Если вы хотите повысить свои шансы на трудоустройство, изучение стека React + Node.js может быть отличным выбором.
224 3296219
>>296210
>>296214
Имею ввиду что из всех стеков и видов айти наш пока что мирный Скайнет указал именно на React и NodeJS.
Не Spring, не дотнет - именно React и NodeJS.
Это соответствует правде?
225 3296220
>>296219
Да, это соответствует реальному положению дел. React + Node.js действительно выделяются среди других стеков благодаря своей популярности и востребованности в современной веб-разработке. Есть несколько причин, почему именно этот стек упоминается особенно часто:

### 1. Популярность JavaScript
- JavaScript остаётся основным языком для веб-разработки, и сочетание React (на клиенте) и Node.js (на сервере) позволяет разрабатывать приложения полностью на одном языке.
- Это делает стек особенно привлекательным для компаний, которые хотят уменьшить сложность разработки и нанимать разработчиков с универсальными навыками.

### 2. Гибкость и производительность
- React благодаря своей гибкости, компонентному подходу и производительности стал стандартом для создания пользовательских интерфейсов. А с поддержкой TypeScript и новыми функциональностями (например, серверными компонентами в React 18), он продолжает развиваться.
- Node.js также предоставляет отличные возможности для создания серверной логики, особенно для приложений с высокими требованиями к масштабируемости и производительности.

### 3. Широкое использование в индустрии
- Многие компании, включая крупные корпорации (Netflix, Uber, PayPal и другие), используют React + Node.js для разработки высоконагруженных и масштабируемых приложений. Это способствует увеличению спроса на специалистов с этим стеком.
- Кроме того, в стартапах этот стек особенно популярен из-за скорости разработки и гибкости.

### 4. Альтернативные стеки
- Spring (Java) и .NET остаются востребованными, но часто применяются в корпоративном и крупномасштабном программировании. Эти стеки отлично подходят для разработки комплексных и устойчивых к высоким нагрузкам систем, часто используемых в банках, финансах и государственном секторе.
- Однако в веб-разработке (особенно в приложениях с богатым пользовательским интерфейсом и высокой интерактивностью) React + Node.js часто выигрывают благодаря своей простоте и отличной поддержке.

Итог: Стек React + Node.js выделяется благодаря своей универсальности, простоте, огромной экосистеме и популярности в современной веб-разработке. Он не замещает более «традиционные» стеки вроде Spring или .NET, но часто является более популярным выбором для динамичных, интерактивных веб-приложений и SPA, что отражает высокий спрос на рынке.
225 3296220
>>296219
Да, это соответствует реальному положению дел. React + Node.js действительно выделяются среди других стеков благодаря своей популярности и востребованности в современной веб-разработке. Есть несколько причин, почему именно этот стек упоминается особенно часто:

### 1. Популярность JavaScript
- JavaScript остаётся основным языком для веб-разработки, и сочетание React (на клиенте) и Node.js (на сервере) позволяет разрабатывать приложения полностью на одном языке.
- Это делает стек особенно привлекательным для компаний, которые хотят уменьшить сложность разработки и нанимать разработчиков с универсальными навыками.

### 2. Гибкость и производительность
- React благодаря своей гибкости, компонентному подходу и производительности стал стандартом для создания пользовательских интерфейсов. А с поддержкой TypeScript и новыми функциональностями (например, серверными компонентами в React 18), он продолжает развиваться.
- Node.js также предоставляет отличные возможности для создания серверной логики, особенно для приложений с высокими требованиями к масштабируемости и производительности.

### 3. Широкое использование в индустрии
- Многие компании, включая крупные корпорации (Netflix, Uber, PayPal и другие), используют React + Node.js для разработки высоконагруженных и масштабируемых приложений. Это способствует увеличению спроса на специалистов с этим стеком.
- Кроме того, в стартапах этот стек особенно популярен из-за скорости разработки и гибкости.

### 4. Альтернативные стеки
- Spring (Java) и .NET остаются востребованными, но часто применяются в корпоративном и крупномасштабном программировании. Эти стеки отлично подходят для разработки комплексных и устойчивых к высоким нагрузкам систем, часто используемых в банках, финансах и государственном секторе.
- Однако в веб-разработке (особенно в приложениях с богатым пользовательским интерфейсом и высокой интерактивностью) React + Node.js часто выигрывают благодаря своей простоте и отличной поддержке.

Итог: Стек React + Node.js выделяется благодаря своей универсальности, простоте, огромной экосистеме и популярности в современной веб-разработке. Он не замещает более «традиционные» стеки вроде Spring или .NET, но часто является более популярным выбором для динамичных, интерактивных веб-приложений и SPA, что отражает высокий спрос на рынке.
226 3296223
>>296199
Надуманная проблема. На сервере ты генеришь одну страничку, которая использует и локальный и общий стейт. Регидрируй их отдельно как локальный и глобальный, нахуя все в одну помойку то складывать.
227 3296237
228 3296238
>>296182
Тебе уже назвали - rxjs и сервисы с явным предназначением и целью
229 3296241
>>296199

> бизнес


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



В голос с маняфантазий вкатунца. Бизнесу на все это похуй, все что он говорит "фича нужна была вчера".
230 3296242
>>296238
У tanstack-query вполне явное предназначение и цель, при чём все есть из коробки и применяется крайне просто. У rxjs предназначение довольно абстрактное, тебе нужно вокруг него делать свой велосипед, но зачем, если проще и надёжнее взять готовые и проверенные решения?
231 3296248
>>296238
Это примитивы и паттерны, которыми ты будешь реализовывать свой велосипед. Никаких задач, которые решают эти либы, сам по себе rxjs не решает.
232 3296256
>>296238
В итоге ты напишешь в лучшем случае хуевую версию react-query с багами, неполным функционалом и большим бандлсайзом, а в худшем хуйню которой будет неудобно пользоваться и дебажить всем, кроме тебя. Про то что этот код ещё и поддерживать надо будет скорее всего уже даже и не тебе я даже и думать не хочу. Дерзай, хуле.
image.png77 Кб, 660x526
233 3296264
>>295902
>>295909
А зачем тебе тут тс, что ты собрался типизировать? И зачем ты ставишь эти загрушки? Ну можно параметр конструктора типизировать, а ещё что?
234 3296272
>>296241
Вот только ты забыл, что после того, как ты нахуевертил фич, бизнес заказывает аудит, так как с такими крутыми фичами чтот собственно сам бизнес проседает. И этот самый аудит выявляет все эти проблемы и идёт уже тебе ебать мозги не фичами, а проблемами.
235 3296288
>>296248
В том и суть, что их достаточно. Велосипед ты будешь делать когда твое приложение начнет сыпаться из-за неочевидного, антипаттерного дерьма которое ты затащил.
236 3296299
>>296288
Нет, не достаточно, даже в ангуляре поверх rxjs сделали HttpClient. Так что для вью и реакта тебе придётся васянить костыли, и скорее в этом случае твоё приложение будет сыпаться, а не из-за tanstack-query и apollo, которые давно сформированы и проверены временем.
sage 237 3296300
238 3296318
>>296256
Еще раз. Как ты с этим дерьмом поддерживаемую архитектуру строить собрался?
239 3296321
>>296299
rxjs это инструменты для менеджмента стейта, ты хоть раз слышал такой принцип как Single Responsibility? Почему в rxjs должно быть что то похожее на httpclient ангуляра?
240 3296358
поработал месяцок на большом проекте, как же меня заебал зоопарк фреймворков. куча самописного дерьма. всё время ловлю флешбеки из джавы, где все на свете стандартизировано. думаю может перекатиться на какой-нибудь андроид чтоб не видеть больше этого всего пиздеца.
241 3296368
>>296358
Из чего зоопарк состоял?
242 3296379
>>296368
коа, экспресс и самописная хуйня а-ля нест
243 3296385
>>296379
Есть много мест, где всё только на несте, ну либо выкатывайся обратно в жяву/котлин, дотнет тоже норм вариант
244 3296446
>>296379
Самописную хуйню круто писать, когда ты сам джун+/мидл на первой работе и на небольшом проекте.
Пока сам придумываешь эту дрисню (а не поддерживаешь чужой набор костылей) получишь очень сильный буст к кругозору, пониманию работы фреймворков/библиотек, аналоги которых пытаешься написать.
245 3296514
>>296264
Представьте код с пикрила, только с точками с запятой. Как же отвратительно это выглядело бы, аж неприятно стало от одной мысли.
246 3296610
>>296514
Двачую. Ещё эти ебучие скобки убрать нахуй.
247 3296628
>>296610
Без них жс код работать не будет, да и они улучшают читаемость, т.к. выделяют блоки кода
248 3296717
>>296264
Странно, но сегодня тс не выдает ошибок, агенты тс прочитали и подкрутили что-то.
249 3296726
>>296628
Тебе новая строка блоки выделяет, точка с запятой это анахронизм древних (сам олд и самому уже надоело)
250 3296731
>>296318
Показывай свою "архитектуру" на rxjs. В частности как ты данные фетчишь в компоненты.
251 3296732
Как заставить эту скотину (vscode) вставлять мне по дефолту модули, а не commonjs?
"type" = "module" стоит, что ему еще надо?
252 3296753
Как вам Vite и в каких случаях его не хватает и нужен webpack? Если сталкивались конечно.
253 3296756
>>296753
Нет нормальной доки, на треть сайта фиксированный сайдбар с какими то баннерами о конференциях и прочей хуйне(сматритееее нас юзает %хуйнянейм% сматритееее!!11), такое ощущение что мне пытаются что то продать
Нет замены части плагинов из вебпака
Нет нормального гайда по миграции с вебпака на вайт
Сам конфиг с кучей неявных дефолтов, в доке это никак не описано
Перфоманс не сильно лучше вебпака, даже в бенчмарках
По большому счету это rollup в красивой обертке

Такой геморой по миграции, ради того чтобы начальная сборка на 5 секунд быстрее стартовала? Если уж переходить то на что то, то взять rspack, где разрабы хотя бы думают о совместимости, а не о маркетинге
https://github.com/farm-fe/performance-compare?tab=readme-ov-file#full-benchmark
254 3296835
>>296753
>>296756
Дебсы, вит и вебпак - несравнимые вещи. В вите бандлер - ролап, вот его и надо сравнивать с вебкапом.
255 3296842
>>295273

>Конвенция именования дефайнов старше нас с тобой вместе взятых и появилась еще во времена языка си.


А еще есть конвенция у жсеров не тащить такой мусор в код. Даже в еслинте правило
https://eslint.org/docs/latest/rules/no-underscore-dangle

И то что такое встречается даже в коде вью или реакта не говорит о том, что это общепринятая практика.
256 3296880
>>296731
Вот тебе отрефакторенный пример из твоего мусорного пакета: https://stackblitz.com/edit/github-ybszlh?file=src%2Findex.tsx
Как и должно компоненту - он просто берет готовые данные и отрисовывает их, ему не нужно знать о том из каких источников они получаются и как обрабатываются. Уровнем ниже презентационный слой, который знает как подготавливать данные от API для интерфейса. В самом низу дата аксесс слой, который знает все об API и не более того.

Вот для сравнение пример с тэнсасак - https://stackblitz.com/github/TanStack/query/tree/main/examples/react/simple?file=src%2Findex.tsx
который рассыпется при первых изменениях требований, либо как минимум будет тянуть с собой кучу ненужных зависимостей и магии, которую никто кроме бывалых тэнсасак не поймет.
257 3296894
>>296842
В eslint половина правил противоположны другой половине правил.

Еслинт не про то, что вот у нас есть правила и вот именно так надо делать. Он про то, что если в вашем проекте принято такое соглашение по коду - то вот кстати у нас есть для него подходящее правило и не придется на кодревью это проверять.
258 3296942
>>296880

>я написал 200 строк бойлерплейта чтобы дернуть одну ручку


>у меня слоёная архитектура


Ясно. А фронтенд то тут при чем?
259 3296946
>>296942
Даже на таком простом примере видна разница в размерах и времени билда. Очевидный отсос тэнсака и любителей затянуть говна в приложение. Это так, чисто макаке хоть как-то доказать, потому что она только сравнение циферок понимает, смысла объяснять что-то про архитектуру и поддерживаемость нет, для макаки это "бойлерплейт".
260 3296957
>>296946
Ору. Когда ты затащишь такое на реальное приложение то сожрешь эти 4кб уже после добавления 20 запросов своим бойлерплейтом.
image.png19 Кб, 719x61
261 3296978
Вы че там совсем офигели что ли, я час долбился с проблемой, оказывается литералы с нулем 2.0 налету переводятся к инту!!!
262 3297010
>>296957
Сначала переведи 4кб в количество строк минифицированного кода, чучело. Во-первых.
Во-вторых, это будет код приложения, а не сторонней свистоперделки с багами и вшитыми троянами.
263 3297014
>>296978
Ничего никуда не приводится, в JS число всегда будет double если не учитывать BigInt
264 3297023
>>296978
Мурзилку для начала почитай, чтобы не быть батхертом.
265 3297070
>>296880

>Вот тебе отрефакторенный пример из твоего мусорного пакета: https://stackblitz.com/edit/github-ybszlh?file=src%2Findex.tsx


Какой пиздец.

>Вот для сравнение пример с тэнсасак - https://stackblitz.com/github/TanStack/query/tree/main/examples/react/simple?file=src%2Findex.tsx


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

И Какие там ненужные зависимости? И тем более какая там магия? Это очень популярная либа, её знает почти любой, кто разрабатывал на реакте, а кто не знает, тому изучить её не трудно и не долго. Твой пример с rxjs намного более магический и разбираться в нём труднее и дольше. Сейчас бы тащить фп на фронтенд...

>>296946
Скоро сборки продакшен билда не так уж важна, если это не десятки минут. А бандл сайз ты бы лучше смотрел на реальном большом приложении, там разница будет незначительна.
266 3297076
Изначально хотелось сделать вопрос в web, но после просмотра тамошних тредов, решил, что там таким вопросом никто не занимался.
Если прописан тэг <script src="qweewqqwe...">, то какой тип запроса совершает браузер?
Была мысль, что будет GET запрос, но есть сомнения, что это так.
Ещё часто возникает вопрос, можно ли в src закинуть адрес с другим доменом или нет.
267 3297104
>>297076
Да, GET. Да, можешь засунуть любой урл. Скрипты с чужих ориджинов могут не загружаться и не выполняться в зависимости от политик сервера, который будет отдавать этот скрипт, и от политик документа/браузера. Можешь почитать про cors и secure context в браузерах.
268 3297122
>>297070

>При каких именно изменениях он рассыпается?


queryKey: ['repoData'] используется в другом компоненте, queryFn при этом в этом компоненте не задается. Этот компонент рендерится раньше чем Example компонент.
Ой, что это такое? Что-что? Ошибка? Да как же это так, у тебя же топовая архитектура, не может такого быть! Что говоришь? Совсем не связанные компоненты, которые просто зависят от одного источника данных, оказываются зависят еще и друг от друга? Давайте вынесим queyFn и будет тыкать в каждый компонент, а потом бегать и по каждому референсу и проверять что мы ничего не сломали, изменяя код этой квери.
269 3297167

>Flutter - чисто нативное приложение и рисует своими силами. Tauri чисто Web и рисует силами чужого браузера.


Вопрос: а почему никто не замутит-то именно нативное на js? Зачем всякие дарты лепить никому не нужные?
270 3297184
>>297167

>Зачем всякие дарты лепить никому не нужные?


Бабки сами себя не распилят.
271 3297200
Я увидел у Владилена Минина коммент под видео, где он рассказывает про вкат в фронтенд в 2024 году.
Текст комментария:

>Я бы добавил, что работу надо начинать искать сразу после изучения JavaScript. Как ни странно есть конторы, где этого хватит. Я именно так нашел первую работу спустя 4 месяца обучения с абсолютного нуля.



РЕАЛЬНО????!!!!!! Можно зная только html, css, js, vue, vite уже пытаться искать работу чистым фронтендером?

Просто мне на двоще сказали, что фронтендером не реально работу найти из-за 2000 тысяч человек на 2 вакансию. И что надо фуллстеком быть, там в 4 раза меньше 500 человек претендуют на 1 вакансию.

Так чё выходит реально можно пытаться чистым фронтендером идти??? А то что надо учить фуллстек - это меня на двоще затроллили и надули? Меня надули аноны? НА-ДУ-ЛИ?
272 3297237
>>297122
В чём твоя проблема? https://stackblitz.com/edit/github-pyayb6-vunv2j?file=src%2Findex.tsx
Если ComponentB будет где-то в дальней части крупного приложения рендериться первым, то просто-напросто в нём первым запустится фетч, и они вместе со вторым компонентом будут отображать лоадеры пока идёт загрузка. Двух параллельных запросов не будет.

Признайся, ты ангулярщик, который зачем-то лезет в реакт? Или вообще скуфоджавист?
273 3297283
>>297200
В каком году он вкатывался во фронт? Я нашёл свою первую работу в 12-ом году гораздо легче, чем сейчас, ещё и выбирал из контор. При этом знал JS я на уровне "полгода прогал пет-проект" и собесы были в стиле "покажите пример замыкания".
274 3297287
>>297200

>И что надо фуллстеком быть, там в 4 раза меньше 500 человек претендуют на 1 вакансию.


Фуллстеков правда в разы меньше, КМК есть даже смысл напиздеть, что ты фулстэк, если хотя бы отдалённо владеешь запрошенными технологиями (php, node, python) освоишь всякую серверную хуйню на месте.
275 3297293
Скажите, если у меня в цикле получился пустой else if, это сильно хуёво? ) Ну просто там ничего кроме continue не требуется, но и смысла вставлять continue нет, если за else if'ом ещё один else и всё.
276 3297296
>>297293
всё, переписал так, где это не понадобилось
277 3297297
>>297200
Даунизде, ты бы вместо того чтобы проценты шансиков высчитывать и мнения чужого спрашивать, пошёл бы да вкатился. Как я, взял и вкатился, напиздев с три короба в резюме. И это в 30+
278 3297350
>>297237
Ок, допустим ты дурачок и не понял примера. Тебе в компоненте А нужны другие настройки кеша, что делать будешь? Создав еще один клиент у тебя запросы будут дублироваться, как этого избежать?
279 3297358
>>297350

>Тебе в компоненте А нужны другие настройки кеша


Какие? Какие настройки кеша ты не можешь сделать с tanstack query?
280 3297359
>>297358
Отличные от компонента Б
Примере тенсасакозависимого это

queries: {
staleTime: Infinity,
cacheTime: 1000 60 60,
},

Допустим, компонент А должен обновляться, его не устраивает staleTime: Infinity, при этом API эндпоинт один.
282 3297403
>>297402
Перепутал местами компонент А с компонент Б, но суть ясна, у одно из компонентов специфично заданный staleTime, у другого дефолтный для всего клиента.
283 3297440
>>297283
Я в 12 году был в 4 классе
Что ты тут делаешь дяденька
284 3297487
Что правильнее с точки зрения чистоты кода:
указывать что конкретно импортируешь или импортировать все как объект?
В учебнике по js говорят, что первый вариант, книги по шаблонам проектирования от O'Reilly говорит, что второй.
285 3297491
>>297402
retryDelay и подобные настройки принимают только синхронные функции, что будешь делать когда это решение нужно принимать асинхронно или ретраить после завершения другой асинхронной операции?
286 3297507
>>297487
Отдельно, иначе у тебя оптимизатор билда не будет отбрасывать код который ты никогда не используешь.
288 3297542
>>297520
И как ты это в retryDelay использовать собрался?
289 3297576
>>297542
У тебя всегда синхронно есть и текущий статус и результат первой query. Тут не нужен никакой асинхронный retryDelay.
В любом случае сложной логики ты всегда можешь сделать ретрай в эффекте или засунуть асинхронную функцию в сам запрос и творить с ней любую дичь, хоть дрочить внутри миллионы запросов на миллионы разных ручек, тот же пайп от rxjs засунуть если тебе с этим работать привычнее. Сколько у тебя таких случаев на проекте от всей логики запросов? 0%? 1%? Остальные 99% случаев покрывает базовый апи tanstack(из них большинство это просто дернул ручку, отобразил загрузку или оптимистик, получил ответ). Именно поэтому он сделан так как сделан, чтобы не ебать себе мозги в типовых ситуациях.
Это примерно как доебаться что в setState() нельзя закинуть асинхронную функцию в виде инициализатора, ахуй просто с твоих маневров.
Мне сдается что ты сам не пробовал работать с подобной либой - хотя бы пару месяцев и ты свой бойлерплейт и "архитектуру" забудешь сразу как страшный сон, а для единичных сложных мест никто не запрещает тебе организовать и обработать поведение так как хочется.
290 3297648
Почему в мире js все такое все глючное? Ставишь юнит тесты, они через жопу с модулями работают. Заявлены тесты в браузере, нефига не работают. Другую либу вообще непонятно как запускать, то есть даже в доке нет инфы, зато портянка тупых примеров с excpect().toBe().
При этом npm ставит под тысячи пакетов, но удаляет только половину или треть.

Ппц, даже в мире пхп было 15 лет назад все более надежно и вообще как минимум работало.
291 3297655
>>297648
Как заплачено, так и захуячено.
Думаешь мы тут жопу рвём за сотыгу.
292 3297669
>>297576

>в любом случае можно накостылить



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

>у тебя таких случаев



Т. е. ретрай запроса только после релогина пользователя - это не типовой случай? Хорошие маневры, но я так и не понял, как это влияет на то что выбор нужно делать в пользу гибких и общих инструментов типа rxjs, а не узконаправленных типа твоего тенсасака, который еще и костылями подпирать надо.
293 3297710
>>297655
заплатили
@
все равно нахуевертили
@
js проектировался не для верчения деревьями, а для верчения на хуях снежинками хомепейджа на НГ
294 3297725
>>297491

>retryDelay и подобные настройки принимают только синхронные функции, что будешь делать когда это решение нужно принимать асинхронно


В смысле устанавливать значение retryDelay через асинхронную функцию? Чем тебя пример из доки не устраивает?
The default retryDelay is set to double (starting at 1000ms) with each attempt, but not exceed 30 seconds:
retryDelay: (attemptIndex) => Math.min(1000 2 * attemptIndex, 30000)

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


>ретрай запроса только после релогина пользователя - это не типовой случай?


Другой анон скинул Dependent Queries, почему ты с помощью них не сможешь это сделать?

И ты вообще можешь сделать другим способом, если запосы рядом. Из первого запроса (какой-нибудь getUserData) извлекать refetch:
const { data, isLoading, isError, error, refetch: refetchUserData } = useQuery({ queryKey: ['userData'], queryFn: getUserData, })
И потом его вызывать во втором запросе:
const { mutate } = useMutation({ mutationFn: login, onSuccess: () => refetchUserData() })

Либо если запросы выполняются в разных компонентах, ты можешь в компоненте логина сделать так:
const { mutate } = useMutation({ mutationFn: login, onSuccess: () => queryClient.invalidateQueries(['userData']) })
image.png16 Кб, 214x406
295 3297734
>>297669

>общих инструментов типа rxjs


Да, такой общий, что кроме как ангуляра его никгде не видно.

>узконаправленных типа твоего тенсасака


Дружище, ты решил переключиться на толстоту?
296 3297751
>>297734

>Да, такой общий, что кроме как ангуляра его никгде не видно.


На бекенде его любят некоторые, особенно с нестом. С ангуляром он напрямую не связан. И вообще это часть большой системы https://reactivex.io/

мимо
297 3297761
>>297751
Знаю, но речь про фронтенд же. Я как раз изначально спросил его, не джава-скуфидон ли он, а то они часто очень любят реактивное погромирование.
298 3297764
>>297648
Ты чем то мне напомнил этого чела
https://www.youtube.com/watch?v=XAGCULPO_DE
Уверен что ты читал доку жопой или по диагонали

>Ставишь юнит тесты


Что именно ты ставил? Опиши проблему, может поможем
299 3297783
>>297669

>Т. е. ретрай запроса только после релогина пользователя - это не типовой случай?


а retryDelay тут при чем? ты даже из названия что ли не понимаешь нахуя она нужна? это блять задержка при ошибке, а для повторного запроса у тебя есть refetch, который как раз и возвращает промис, на случай если тебе его руками захочется обработать или куда то передать
залогинился - дернул refetch() или queryClient.fetchQuery, если в сторе надо эти данные обрабатывать
разлогинился - дернул queryCache.clear или очистку стора
всё блять просто
300 3297805
>>297734
И что ты этим списком сказать хотел? rxjs тоже в любом js фреймворке можно использовать, при этом не нужны разные имплементации со свистоперделками по типу твоего тесакквери, в этом и отличие инструмента общего назначения, от очередной лишней зависимости, которая еще и под разные фреймворки переписывалась. Даже страшно представить уровень поддержки этого дерьма.
301 3297807
>>297783
У тебя ошибка будет 403, тебе нужно перезапросить авторизационный токен и после этого делать ретрай, поэтому и нужен retryDelay асинхронный, которого в твоем костыле нет.
302 3297822
>>297807
new QueryClient({
queryCache: new QueryCache({
onError: (error) => {
if (error?.response?.status === 403) refreshAuthToken()
}
})
})
303 3297824
>>297822
Так, а где ожидание получения токена перед ретраем? Токен в процессе получения, у тебя летят ретраи, как исправлять будешь, тенсасакер?
304 3297825
>>297805
Зависимость не лишняя. У тебя + 1 зависимость в проекте из-за rxjs, у меня тоже всего лишь +1 из-за tanstack query. При этом я получаю весь нужный функционал из коробки, а ты пишешь васянские портняки, велосипеды и костыли вокруг rxjs. Если на мой проект придёт новый человек, но ему не нужно будет разбираться в костылях, он будет работат с либой, которую и так давно знает.
305 3297830
>>297824
После условия добавить:
queryClient.invalidateQueries({ active: true })
306 3297834
>>297830
И где в этом ожидание запроса токена? Как летели ретраи с апдейтами, так и будут лететь. Может цикл ебнуть с дерганием этого дерьма, хорошая идея?
307 3297841
>>297807
Щас бы токены использовать в 2024 на фронте. И этот человек говорит об архитектуре какой то.

Если у тебя токен может протухнуть в любой момент и с любой ручки может вернуться 403, то придется оборачивать каждый запрос в обертку для такой ситуации. Делать какой то свой аналог interceptor в axios. При чем тут либа то и retryDelay?
https://tanstack.com/query/latest/docs/framework/react/guides/query-functions#handling-and-throwing-errors

Алсо в твоем примере на rxjs ответ тоже никак не разбирается и тоже никаких 403 не обрабатывается. Очередные маневры?

У apollo есть onError и подобие мидлвар,там это делается проще.
308 3297847
>>297841

>все просто, затащим еще одну зависимость в виде Аксиос или аполло!



Все еще не костыль? Ок. В rxjs это делается добавлением в Пайпер одного оператора, помимо сервиса отвечающего за авторизацию, который при любом подходе нужен, при этом UI компоненты никак не задеваются.
carbon (2).png621 Кб, 4096x1936
309 3297893
>>297847

>затащим еще одну зависимость в виде Аксиос или аполло!


Жопой читаешь? Аполло ты затащищь и так, если на проекте будет gql, это аналогичная reaсt-query либа, но заточенная под gql, в нем есть мидлвары и глобальный onError.
Аксиос тоже как пример привел. В любом случае в проекте будет какая то переиспользуемая дрисня над всеми запросами или как мидлвар.
И rxjs все ошибки за тебя не обработает тоже, тебе все равно придется их пропихивать по пайпам и где то обрабатывать в единой манере, а не писать на каждый запрос.

Еще раз: apollo≈reaсt-query≈swr != rxjs , тут нехуй даже сравнивать, они не взаимозаменяемы, абстракции разного уровня для разных целей, чтобы говорить о них в одном контексте. Это как сравнивать подводную лодку и топор(гыгы ебать вы тупые, вот я себе плот вырублю из пальм топором и буду так же плавать как вы на подводной лодке - мы тебя услышали)
Ты либо дурачка из себя строишь, либо не понимаешь нихуя о чем толкуешь.
Если тебе нравится писать свои велосипеды - пожалуйста. Но не надо подменять понятия и говорить что вот это настоящая АРХИТЕКТУРА, когда изначально и до сих пор речь шла лишь про инструменты.
310 3297980
Для SSR Next.js - стандарт? Не окунаться в него нет смысла?
311 3297988
>>297980
Стандарт, но некст это кал полный. Ремикс чуть лучше, но тоже калом прямо смердит. В итоге самый норм вариант это либо полное отсутствие сср, либо свой велосипед поверх renderToPipeableStream
312 3298003
>>297841

>то придется оборачивать каждый запрос


class Api {
async fetch(...) {
if(status === 403) {...}
}
}

...
const api = useApi()
useQuery({queryFn: () => api.fetch(....)}

мимо
313 3298016
>>297297

>напиздев с три короба в резюме


А без этого никак?
314 3298021
>>298016

>А без этого никак?


Слишком большой шанс вымереть, как вымерли честнозавры в позднем триасе. Их подвиг не забыт, но тем не менее.
315 3298033
>>298021
Не люблю пиздеть, так что сперва попробую залететь вьюшником на пхп галеры в своем городе, а если не получится и меня проигнорят еще на этапе отклика, то походу без волчизма никак. Тебя без пиздежа в резюме на собесы хоть приглашали или ты сразу слету приписал себе пару лишних лет опыта?
316 3298040
>>298033
Меня в 2023 не звали на 150к собесы с 2 годами опыта, как накрутил до 3х сразу залетел на 300к как раскаленный нож по маслу.
мимо
317 3298045
>>298033
Не мог несколько месяцев поменять место в том году с 3-мя годами коммерции, пока не натянул петы на глобус как сову до 4-ёх.
Начали хотя бы звать, но отбривали ещё на скрининге по ожиданиям, а я уже даже просил как было. Вот и думой.

мимо
318 3298051
>>298033

>Тебя без пиздежа в резюме на собесы хоть приглашали или ты сразу слету приписал себе пару лишних лет опыта?


Я не особо пиздел в резюме про опыт, скорее я пиздел про уровень владения тем-то и тем-то. Например, записал себя в фуллстеки, хотя на ноде делал всего лишь скрин-скрепер для одного агрегатора авиабилетов.
319 3298066
>>297988
Вот нахуя велосипед писать когда тебе некст и ремикс готовое решение дают? Тебе платят за фичи или за написание велосипедов?
320 3298073
>>298051

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


И что будешь делать если тебя кинут на проект где микросервисы с чистойархитектурой™ на несте с кэфкой и хитровыебанными sql запросами?
321 3298126
>>298073
Разберусь на месте. Раньше так и делали, это в последнее время кабаны привыкли набирать тех, кто способен в первую минуту приступить к работе с низкого старта.
Имаджинируй в СССР сантехника, которому бы сказали "ваши 20 лет опыта это всё хорошо, но вот конкретно трубы такой марки вы не прокладывали, так что мы вам перезвоним по дисковому телефону".
322 3298130
>>298126
Пока ты в этом калопроводе будешь разбираться пройдет дохуища времени, звучит как повод выкинуть на мороз
323 3298291
Вот есть два способа создать объект:
1) определить функцию f, вну ри которой будут всякие this, а потом делать new f()
2) описать класс.

Вопрос: как лучше поступить? Что будет более хорошим решением при создании объекта?
324 3298293
>>298291

>Что будет более хорошим решением при создании объекта?


Функция, которая return {}
325 3298319
>>298291
Слишком широкое понятие "объект".
Если тебе нужен словарь ключ-значение, это одно. Если экземпляр класса с методами - другое.
326 3298320
>>298291
Если ты имеешь ввиду, стоит ли в 2к24 писать функции-фабрики, вызываемые через new, то не стоит, для этого придуман сахарок "class", который кроме прочего страхует от вызова без new.
327 3298411
Что скажете насчёт feature sliced design?
С одной стороны я понимаю что структура папок должна брать за основу что то.
С другой стороны вся дока у них - это 3 странички описания общих концепций, которые в принципе не обьясняют смысла, пользы и мотивации предложенного подхода - просто делай так и все.
Все примеры напоминают хуево сделанный MVC, и разветвленный по 4-6 корневым папкам, при этом в каждом примере widgets и shared это основная помойка на половину кодбазы, где каждый кусок кода внезапно не подошёл под семантику фичи или сущности. Термина компонент вообще нет, и оглядки на композицию компонентов.
Не понятно почему у подхода за пару лет возникло уже 4 версии. Просчитались, но где?
Так же не слышал чтобы этот подход упоминался хоть как то на западе. Все мейнтейнеры в основном из СНГ, все доклады и статьи про этот подход тоже в основном из СНГ. Сложилось ощущение что в основном он нравится командам, занимающимся аутсурсом.
328 3298422
>>298411
Говнина, которая вносит 0 пользы и дохуя вреда. Баззворд, популярный у российских вкатунцов.
329 3298444
>>298411
Ты правильно мыслишь. Все эти базворды - мусор. Ты ищешь какой-то правильный способ писать код. Но его нет. Просто пиши, то, что тебе нужно. Со временем начнёшь видеть места, в которых ты делаешь несколько раз одно и то же, места в которых можно написать короче, инструменты, которые помогают делать, хорошие библиотеки, которые делают именно то, о чем ты только успел подумать, или к чему ты сам бы пришёл со временем и говняк, с кучей шизоконцепций

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

Из минусов - иногда ты всё же будешь неправ, и тебе пояснят за это, придётся извиниться, но со временем таких ситуаций будет меньше
330 3298463
>>298444
А что во фронтенде в принципе писали не идиоты? Ангуляр, солид, свелт? Vite, vitest, playwright, zustand какой-нибудь, socket.io неплох, хоть и очень стар, остальное всё какое-то через жопу...
331 3298720
>>297980

>Для SSR Next.js - стандарт? Не окунаться в него нет смысла?


Next - это не SSR.

>>298291

>Вот есть два способа создать объект:


Есть еще литерал объекта. Собственно, рекомендуемый для 99% кейсов способ.

>Что будет более хорошим решением при создании объекта?


Более хорошим будет понять, что если ты хочешь работать с объектами, ты взял не тот язык.

>>298411

>Что скажете насчёт feature sliced design?


Скажу так: открой мейнтейнеров этого говна. Там реальные школьники, у которых мышление "архитектура - это структура папок."
332 3298931
>>298720

>Next - это не SSR.


Его часто используют для SSR, он ведь предоставляет такой функционал.
333 3299049
интересно чем вам fsd не нравится? это просто организация файлов. если я пишу свои файлы я просто перемещаюсь через Go to File и мне пох. но дока у них действительно говно на remix!!!
334 3299068
>>298931

>Его часто используют для SSR, он ведь предоставляет такой функционал.


Его используют для ISR
335 3299093
>>299068
Для SSR тоже.
336 3299140
>>298463

>socket.io неплох, хоть и очень стар


Просто сокет.ио больше не нужен. Он был хорош во времена жиквери, когда в разных браузерах всё работало по-разному. Вот там он действительно творил волшебство, автоматически фалбэкаясь с вебсокетов на флэш сокеты, с них на лонг поллинг, с него на аякс и с аякса на голубиную почту.
337 3299157
>>299140
Почему не нужен? Он до сих пор очень удобен, на беке удобные фичи из коробки.
338 3299175
Моя галера обезумела. Она ищет себе фронтовичка на hh.ru за 70 к с 2 годами опыта (меня хайрили с 1.2 годами сразу на 110 к). Это как нахуй?
339 3299181
>>299175
Пузырь давно лопнул.
340 3299183
Нашёл шаблон Docus для создания документации https://docus.dev/

>Write pages inMarkdown, useVuecomponents and enjoy the power ofNuxt.


Я понятия не имею, что такое vue и nuxt, но каким-то образом это собрал, запустил, даже смог подключить plotly и написать методом тыка vue-компоненты для их отображения (очень красиво).

Единственная оставшаяся проблема – mathjax, для набора формул как в latex. Всё сука хорошо, но не получается сделать inline формулы, они всегда переносятся на новую строку блядь. Я не понимаю как "дебажить" или разбирать эти триллионы стилей (есть какое-то слово для этого?), чтобы понять откуда вылезает сраный перенос строки.

Может кто-то за деньги возьмётся? Мне просто нужно сделать красивые формулы в этом Docus'е блядь.

я плюсовик, не бейте
341 3299186
>>299175
Тебе замену ищут, скоро на мороз пойдешь
342 3299212
>>299183
Скинь хотя бы код компонента в котором происходит перенос
343 3299229
>>299212
Так я не понимаю, как это вообще всё работает. Я в шоке, че там фронтендеры современные наворотили.
344 3299243
>>299229
Ну ты же пишешь:

>не получается сделать inline формулы, они всегда переносятся на новую строку


Зачит ты куда-то поместил эти формулы, где-то они находятся
345 3299257
>>299243
Там страницы документации просто в markdown пишутся. Формулы должны на $$ $$ подхватываться.
346 3299278
>>299183

>я плюсовик


>Мне просто нужно сделать красивые


Ловите самозванца!
01.png142 Кб, 1364x329
347 3299280
Офигеть, нашел сам методом тыка.

Я вспомнил, что "деббагер" для фронтендера это инструменты разработчика в браузере. Как-то я ловил get/post методы и функции javascript в хроме, но я не замечал, что он полные списки стилей подгружает, там ещё интерактивно можно галочки у стилей пожамкать! Короче какой-то tailwind.css ставит стиль display: block, который надо вырубить. Пфф, делов то.

>>299278
Я перфекционист пиздец. У меня до этого получилось другую библиотеку с формулами подгрузить, но там шрифты некрасивые лол.
348 3299293
>>299280

> Короче какой-то tailwind.css


triggered
349 3299336
>>299068

>не для ssr а для isr


Сорта одного говна. Главное что браузер получает готовую разметку.
350 3299352
Я не понял автора.
Автор пишет, что первый код не очень, потому что каждый объект Car будет переопределять метод toString. Почему?
Я до этого читал учебник по JS и там говорилось, что все методы будут отправлены в прототип и когда происходит обращение к методу объекта, по факту идет обращение к методу прототипа. А тут автор во втором коде явно задает метод прототипу, хотя JS автоматически должен был его назначить.
Я читаю хуевую книгу или чего-то не знаю?
Untitled.jpg81 Кб, 1068x610
351 3299358
352 3299361
>>299352

>Я читаю хуевую книгу или чего-то не знаю?


Да. Тут или пример перепутан и в первом случае должен был быть код без классов на чистых прототипах, либо автор долбоеб. Про нюансы языка советую почитать лучше YDKJS https://github.com/azat-io/you-dont-know-js-ru
353 3299365
>>299361
Хорошо, спасибо за книгу.
Я сейчас пытаюсь сделать обзор анти-паттернов в JS и вот в поиске материала, потому что чувствую, что пишу говнокод и хочу исправиться.
355 3299620
Почему жопоскрипшики перепутали местами from ... import ...?
356 3299633
>>299620
Наоборот питухонщики попутали. "Импорт из" звучит логичнее чем "из импорт".
357 3299670
>>299633
Ага сначала пишешь что хочешь импортировать, а потом откуда, лол. Конечно, тулинг подогнали под кривизну, и он просто подсвечивает популярные базворды, но прикинь как работало, если сначала писали пакет, а потом уже из пакета была подсветка именно того апи, который есть в текущем пакете, а не пачки базвордов со всех концов.
358 3299697
>>299670
Чел, никто импорты вручную не пишет, вскод автоимпортит всё что угодно.
359 3299706
>>299352

>functions are redefined for each new object


Это какой-то bullshit, можешь передать автору please learn джаваскрипт.
360 3299708
>>299697

>вскод


почему не вебшторм
361 3299747
>>299352

>Автор пишет, что первый код не очень, потому что каждый объект Car будет переопределять метод toString


Автор в принципе не очень понимает, что он пишет. Инкапсуляцию предоставляют и литералы объектов, классы для этого не нужны. Наследования в JS нет вообще. А методы не переопределяются для каждого экземпляра, именно для избежания ебки с прототипом функции-конструктора классы и ввели.
362 3299776
>>299280

>"деббагер" для фронтендера это инструменты разработчика в браузере


Что значат эти кавычки?
Вообще-то у фронтендера есть дебагер для javascript кода, а не только общие девтулзы
363 3299813
>>299697
чому не coc.nvim?
364 3299896
https://youtu.be/3fDRrOHIDiI?si=dnr1C-CF1Z1uexll
Вот случайно наткнулся на свежий доклад об истории успеха внедрения react-query на одном из сервисов Яндекса. Адептам ебки с rxjs и любителям все пихать в глобальный стейт обязательно к просмотру.
365 3299910
Умею в ТС, но не знаю за правила его использования в проде. В том смысле, что не знаю когда использовать тип а когда интерфейс, где типы хранить (если они не создаются сразу в orm какой-нибудь, а ручками прописываем что с бэка получаем) и т.д. Дайте пару основополагающих штук, которых точно стоит придерживаться в тсе.

Или все зависит от галеры в которой работаю и никаких стандартов нет?
366 3299997
>>299896
А если нет в доступе дюжины анальников и неограниченного бюджета?
367 3300029
>>299776
Я без негатива. Просто для меня дебагер это когда вместе с программой идешь по исполняемому коду и следишь за состоянием. Думал, может есть какое-то слово для описания процесса, когда пытаешься декодировать иерархию стилей и выяснить, откуда лишние три пикселя margin у элемента.
368 3300031
>>299910

>что не знаю когда использовать тип а когда интерфейс


Типами делаешь ток словари ключ-значение с определённым набором полей. Всё, что инстанциируется, делаешь интерфейсами. На каждый класс хуяришь интерфейс как джавапидоры делают и в сигнатурах везде пишешь интерфейсы и нигде не пишешь классы напрямую (кроме new). Гугли SOLID, короче.
369 3300035
>>299776

>дебагер для javascript кода


А где-то вообще есть дебагер для жопаскрипт-кода, который выглядит как дебагер, типа перлового/питонового, а не как говно для хипстеров с вебвью?
370 3300050
>>299997
Тогда тем более нужно брать готовое решение в виде react query, потому что велосипеды над rxjs пилить некогда, да и знание rxjs далеко не у всех есть, нахуй кому нужна эта борщехлёбская фп-шиза в 2024, тем более во фронтенде.
371 3300057
>>299407
Откуда вы узнали про этот сайт?
372 3300068
>>300057
Так он первый в гугле выходит когда гуглишь паттерны проектирования
373 3300085
>>299670

>сначала пишешь что хочешь импортировать


Оба подхода говно. Самый близкий к нормальному подход в C++, где есть инклюды и не надо руками прописывать, какую ты хочешь функцию

А норм подход, когда сборщик сам понимает, что откуда брать и ругается, только когда есть два и более вариантов, никто не сделал
374 3300086
>>300085
голанг, дарт
375 3300087
>>299910
Что за хуйню я прочитал?

Мимо, умею в готовку, но не знаю, как нагреть сковородку
376 3300090
>>300031
Спасибо!

>>300087
Это ничего, но если ты будешь отвечать на все вопросы, которые не можешь понять, ничем хорошим это не закончится.
377 3300091
>>300086
Что голанг, дарт? Там нет этого
378 3300093
>>300090
Критерии понимания в студию
379 3300095
>>300091
Там нет заголовочных файлов. Но там импортится модуль, а не отдельные функции и структуры
380 3300098
>>300085

> никто не сделал


Было в D.
1629558059648.PNG34 Кб, 615x529
381 3300113
Не нашел css тред, спрошу тут. Как сделать align для элементов формы, чтобы было как на рисунке? Чтобы прилипли к краям вправо и влево.
Понимаю, что днищевопрос, но я нубас и только начал все изучать.
382 3300133
>>300113
Дай ссылку на макет, тоже хочу поупражняться в верстке

мимо другой вкатун
383 3300144
>>300057
Проходил собес в одну компанию, собеседующий посоветовал после провального собеса.
384 3300153
>>300113
flex
@
box
385 3300163
Всем привет. Есть вопрос по казалось бы простой, но чето нихуя не понятной теме.
Суть - есть обс, из него льется rtmp стрим видео. Льется он в node-media-server. Потом на клиенте стрим открывается в ffplay и все работает.

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

Вопрос - чем это правильно делается? Чтобы стрим из node-media-server показать в браузере. Я аникейщик, если что, все это на линуксе, знаю про npm, копнуть в жаваскрипт тоже при необходимости могу, но не глубоко. Еще момент - хотелось бы обойтись без всяких докеров и прочего. Сервер уже в вм крутится, уходить за пределы этой вм очень не хочется.
386 3300170
>>300163
как ты, вообще, до такого возраста дожил?
https://github.com/illuspas/Node-Media-Server?tab=readme-ov-file#via-flvjs-over-http-flv
387 3300171
Вышла нода 23.0 революции не случилось.Ничего интерсного
>>300153
Или гриды
388 3300185
>>300170
Охуеть, работает. Спасибо.
389 3300193
>>300171
Если не ошибаюсь у них большие фичи выкатывают именно в чётных версиях
390 3300205
>>299352
Автор дурак, который не разобрался, как работает кейворд "class" в JS. Его и ввели, чтобы вручную прототипами не жонглировать, бля.
391 3300236
>>299997
Там нет дюжины анальников. Средний проект на 200к строк и команда из 3 фронтов, об этом в начале доклада говорится. Ты ведь даже не смотрел, но уже выдумываешь контрвспуки?
392 3300412
Я даже не знал, что в JS есть ||= и ??=
О назначении догадайтесь сами.
image.png7 Кб, 286x156
393 3300449
>>300412
Как тебе такое
394 3300470
>>300449
Это вроде еще не приняли
395 3300472
>>300449
Это че за хуйня? Где почитать?
396 3300481
Там говнори из браузеров хотят убить js
https://www.youtube.com/watch?v=m1Sa1Sbyejg

>>300472
https://github.com/tc39/proposal-pipeline-operator
397 3300578
>>300449
предложению 7 лет, "Stage: 2"
значит, не примут.

похоже, что даже это не примут
https://github.com/tc39/proposal-record-tuple

да и нахер не надо так-то
398 3300622
>>300470

>Это вроде еще не приняли


И слава богу. Нахуя этот фп-сахар тащить в язык без остальных примитивов фп - не понятно.
Оператор так же неудобно набирать с клавиатуры(возможно дело привычки).
Не удивлюсь если эта хуйня еще и с JSX клнфликтовать начнет при разборе AST. Как в TSX например приходится запятую добавлять после дженериков.
399 3300643
Мне нравится как в Луа: сидит Роберто в своей Бразилии, чешет затылок. Хуяк - брекинг ченжд в версии 5.3. Хуяк - отмена брекинг ченджа в версии 5.4.
Опытные просто сидят на 5.1 и зоонаблюдают за всем этим.
400 3300652
>>300643

>Роберто


Твой протык?
402 3300732
Я уж испугался, что там какая-то нативная тайпскрипт-машина, а они там просто типы обрезают из коробки, ну кул.
404 3300859
>>300153
Типа включить флекс врап, чтоб они были с переносом на новую строку, а элайн через justify content?
Screenshot 2024-10-17 at 20.22.52.png67 Кб, 624x676
405 3300893
>>294032
Тем, что с интерфейсами можно делать такие приколы
406 3300905
>>300893
Это типа расширение такое? Без всякого дополнительного кейворда? Херовато выглядит. А если надо переопределить?
407 3300913
>>300905
Создай с другим именем,
interface Anon2 extends Anon {}
export { Anon2 as Anon }

или импортируй с другим именем
import { Anon as Anon2 } from './anon'
export interface Anon extends Anon2 {}

мимо
408 3300916
>>300913
Или если под переопределением ты понимаешь не наследование, а создание нового с такм же имнем
то просто определи и экспортируй Anon в новом файле или в том же файле в другм неймспейсе
409 3300928
>>300859
Нахуя флекс врап бестолочь?
410 3300929
нормально ли называть интерфейсы/типы точно так же как встроенные, если эти встроенные не используются?
411 3300930
>>300449
Выглядит мерзко
412 3300935
>>300928
А как сделать без него, чтоб First name и Last name вдвоем в одной строке были? И Email с Phone.
413 3300950
>>300935
flex-wrap нужен для того чтобы дети внутри флекс-родителя могли переноситься на вторую строку. А установка нескольких элементов на одной строке это дефолт поведение флекса.
414 3300952
>>300950
Если просто флекс сделать, то все 5 элементов в одну строку поставятся.
415 3300986
Какие советы дадите по минимальной потере производительности кода на JS при использовании WebGL/WebGPU?
416 3300987
Если у тебя не ряд / столбец, а что-то двумерное, то флексбокс уже не оптимальный вариант. Либо разобраться с гридами, либо разбить на более простые блоки, хоть тех же флексбоксов.
417 3301038
>>300952
Так сделай эти элементы по 50%, и flex-wrap на родителя, по итогу они будут падать вниз по два элемента на строку. Лучше бы гриды освоил. Там это проще.
418 3301195
>>294032
Интерфейс менее выразителен, чем тип, тип это супер сет интерфейса.
419 3301198
>>301038
Надо не флексы и грибы осваивать, а умение комбинировать элементы по контейнерам
image.png52 Кб, 1187x556
420 3301204
Достойно отдельного npm-пакета с миллионом скачиваний в неделю?
421 3301220
>>301204
Ни под одно определение пакета не подходит
422 3301227
>>301220
А это подходит? 70 000 000 скачиваний в неделю.
https://github.com/jonschlinkert/is-number/blob/master/index.js
423 3301327
>>301204
какую проблему решает?
424 3301354
>>301327
Сам видишь, какую. Обеспечивает единообразный перебор пяти разных типов.
425 3301469
>>301354
Нихуя, круто. Зачем это использовать на проде, где уже есть форматирование в сентри?
8JNKGCIyOsE5rCnZv95.jpg244 Кб, 1920x1080
426 3301539
Тебе замену ищут, скоро на мороз пойдешь
427 3301544
>>301354
Шизоид изобрел console.table
428 3301570
>>301204
не сработает, если в родительском окне заллогировать что-либо из фрейма. Переделывай.
429 3301582
>>300857
в 2к25 кто-то все еще пользуется фотошопом вместо фигмы?
430 3301685
>>301227
Да, на момент создания это было удобным и надежным способом для проверки на число, сейчас это легаси которое тянется от других пакетов.
431 3301709
>>300905
Тогда используй type.
Интерфейсы нужны именно для того, чтобы их вот так расширять. Например, когда хочешь добавить переменные окружения в import.meta.env
Или новый метод в String.prototype
432 3301719
>>301709

>Например, когда хочешь добавить переменные окружения в import.meta.env


Точно такое же сработает и с типами, интерфейс тут не критичен

>Или новый метод в String.prototype


За такое бьют по рукам еще со времен, когда тайпскрипта не было.
433 3301724
В жс 2025 просто обязаны быть декораторы
434 3301726
>>301724
все похуй, кто хочет уже давно их использует через бабель или аналоги
435 3301732
>>301719

>Точно такое же сработает и с типами, интерфейс тут не критичен


Не сработает, у import.meta.env уже определён интерфейс, и ты можешь его только расширить. А был бы определён тип - ты бы никак не мог его поменять
436 3301736
>>301732

>import.meta.env


Это я на примере Vite говорю
skoof.png352 Кб, 457x600
437 3301743
Где и как храните строковые константы (в случае SPA на реакте) и храните ли вообще?

Речь о всяких "Принять", "Отмена", "Вы уверены, что вы хотите продолжить без сохранения?". В общем любых текстах, что у вас на страницах приложения
438 3301745
>>301743
В i18n
439 3301747
>>301745
У вас локализация есть?

Вообще насколько это ок практика так делать (хранить строковые константы в одном месте)?
440 3301753
>>301747

>У вас локализация есть?


На 20 языков.

>Вообще насколько это ок практика так делать (хранить строковые константы в одном месте)?


Вообще подобные константы у нас хранятся в отдельном сервисе с гуем для переводчиков и мы их по api получаем. Но если у тебя сервис на один язык и гарантируется, что он не будет интернационализироваться - можешь на похуях прямо в компоненте хардкодить.
441 3301759
>>301753

>На 20 языков.


rtl поддерживаете?
отдельный набор стилей под это имеете?
442 3301762
>>301753
А если я малограмотный, и в 10 местах напишу фразу без ошибок а в других 10 местах ту же фразу с ошибкой? Не проще ли будет в одном месте отловить такой расклад?
443 3301764
>>300986
поменьше вычислений
444 3301765
>>301759

>rtl поддерживаете?


Да

>отдельный набор стилей под это имеете?


Нет, просто селектор html[dir=rtl] & {...}, и чанк со стилями грузим асинхронном поверх основного. На арабов похуй абсолютно, пусть терпят, один хуй бабла не так много приносят что бы с ними ебаться
>>301762

>А если я малограмотный, и в 10 местах напишу фразу без ошибок а в других 10 местах ту же фразу с ошибкой?


Курсы грамотности стоят не так дорого. Плагин для IDE, чекающий грамматику - того дешевле. А еще на проекте должны быть QA.
445 3301767
>>301743
Да как и везде:
Если используешь 1 раз, то хардкодишь, если больше, то выносишь в отдельную константу
446 3301768
>>301765
Денег нет на курсы, а QA проебались, например, или сами малограмотные?

Не нарушает ли такой хардкод строк принцип не повторения? Нахуя например мне харкодить из раза в раз "Принять" или "Отменить"?
447 3301770
>>301767
Что у вас юзается для работы с такими константами? Что юзаете чтобы склонять слова по числам? (одно яблоко, 2 яблока, 5 яблок)
448 3301772
>>300113
родительский <form>, внутри три <div>
в первом <div> имя, фамилия, во втором email, телефон, в третьем сообщение
input, textarea {width: 100%}
div {display: flex; gap: 37px;}
div+div {margin-top: 19px;}
449 3301781
>>301765

>Да


респект

>Нет


казуальщики
450 3301790
>>301762
Они в одном месте и отловятся - на сервере с переводами
451 3301792
>>301790
У нас нет сервера с переводами. У нас вообще один язык. Чо делать?
452 3301795
>>301764
Модули с прототайпами вместо классов, Float32Array, и массивы vec3[3] вместо vec3 {x,y,z}?
453 3301808
>>301795

>vec3[3] вместо vec3 {x,y,z}


это вроде не js
454 3301812
>>301743
Речь о всяких "Принять", "Отмена"
если у вас один язык, вообще не парься, хардкодь в шаблонах
>>301762

>А если я малограмотный


придёт тестер, даст по башке, один раз исправишь и всё, это нормально, не парься
455 3301826
>>301808
Я об этом {x:0.1, y:0.2, z:0.3}

Насколько это
vec3add(a,b)
{
return [a[0]+b[0], a[1]+b[1]]
}
производительнее вот этого?
Class vec3
{
add(a,b)
{
return {x:a.x+b.x, y:a.y+b.y}
}
}
457 3301850
>>301724
юзкейс декораторов в JS давай
458 3301856
>>301850
Для функций мемоизация вычислений например.

Что-то больше ничего адекватного и потенциально полезного в любом коде не придумывается.
20241018.png10 Кб, 309x131
459 3301873
Сап.
Помоги с парсингом странички.
Есть один сайт, по сути это лента постов. богомерзкий https://pikabu.ru/ , еслишто
Под каждым постом прикручен счетчик реакций пользователей.
При нажатии на кнопку "эмоции" появляется менюшка со значениями счетчиком - пикрелейтед.
Посмотрел код страницы - счетчиков нет. При нажатии кнопки динамически добавляется новый объект.
Посмотрел через браузерный Dev-tool в Network - при нажатии на кнопку есть только запросы к яндексу(статистика, вестимо).
Поискал класс кнопки в сорцах - нашел пару вхождений, но толку не дал.
Помоги, анон. Как это работает? Как это парсить?
460 3301876
>>301826

> Class vec3


> {


> add(a,b)


> {


> return {x:a.x+b.x, y:a.y+b.y}


> }


> }


тащемта
Class vec {
private x
private y
add(a: vec) {
this.x += a.x
this.y += a.y
}
}
461 3301877
>>301873
puppeteer
462 3301878
>>301873

>Как это работает?


по нажатию "Эмоции" в dom добавляется .popup .popup_animate .popup_show с эмоциями

>Как это парсить?


триггерить нажатие на "Эмоции", ждать, пока отработает js, добавляющий попап, парсить попап

зачем парсить пикабу?
463 3301879
>>301878
>>301877
В голос с макак, которые разворачивают браузер для того чтобы каунтеры получить.
464 3301882
>>301873
Подрочи сетевые запросы, может это жсоном приходит.
465 3301883
>>301879
кукарекая - предлагай
466 3301884
>>301879
как бы ты сделал?
467 3301885
>>301883
что тебе предлагать, для тебя страница в браузере это какая-то магия, тут предложения бессильны, иначе даунов уже давно бы гениями сделали.
468 3301886
>>301878

>>триггерить нажатие на "Эмоции", ждать, пока отработает js, добавляющий попап, парсить попап


Цель - спарсить счетчики для условных 100 постов. В автоматическом режиме.
Нужно понять механизм получения счетчиков браузером с сайта чтобы потом использовать этот механизм/запрос напрямую из кода парсера.

>>301882

>Подрочи сетевые запросы


Не, я конечно понюхал вирешарком.
Но тут httpS, ничего не видно же.
469 3301888
>>301886

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



Ну вот ты и ответил на свой вопрос, от нас что нужно? Исполнителей среди фрилансеров ищи
470 3301899
>>301888

>Исполнителей среди фрилансеров ищи


Справедливо.
С одной стороны.
А другой стороны, я же не парсер прошу, а направление куда можно копать чтобы разобраться как оно работает.
Это я с веб технологиями не очень и для меня это долго/сложно, но вы то мастера, вам такие вещи выяснить - 2 минуты посмотреть.
471 3301901
Кто-нибудь слышал вообще про фронтендеров которые зарабатывают 450к+? Я не иронизирую. Вот прямо именно фронтенд, не фуллстек? Не техлид по совместительству. Чтобы человек узко специализировался в нем? Возможно он знает остальные технологии, но туда не лезет из принципа... Тут вообще есть такие зарплаты в российских конторах? Про валютную удаленку речь пока не идет (мне чисто сориентироваться относительно всего рынка внутри РФ). Может у вас знакомые есть такие или вы слышали про кого-то конкретного?
472 3301905
>>301848
На вебгл работы нет. Вакухи зарабатывают меньше среднего реактера раза в 1.5. Если честно, я охуел от такого расклада.
473 3301907
>>301901
слышал
474 3301913
>>301905
есть такое
475 3301943
>>301856
Я вот посмотрел пропозал с декораторами - почти ничего не понял из той переусложнённой дичи. Короче, если примут, это будет ещё один yield, которым никто не пользуется, но которым валят на собесах.
476 3301944
>>301901
Я на фулстэк вот перекатываюсь с фронта, в понедельник первый день. Закупился книгами по ноде. У фронтов на мой взгляд и конкуренция выше, и зепки ниже, и эйджизм самый жёсткий. После 35 актуально.
477 3301946
>>301905
Так а че ты собрался на вебгл делать из серьёзного? С вебгл во-первых без обёрток никто не работает, нужен трижс или бабилон. И нужна видимо игровая контора, которой бы приспичило делать браузерное 3д.
478 3301963
>>301876
Ты предлагаешь каждый раз указывать первый вектор-слагаемое отдельным вызовом? А зачем?

А если мне нужно несколько разных пар векторов сложить?
479 3301989
>>301879
>>301885
Проще Puppeteer/Playwright взять и не тратить лишнее время
480 3301994
>>301901
это что ж за проект такой был, чтобы разраб за 450 окупался? не важно, фронт, бэк, хуек
481 3301998
>>301994
то есть разраб работает месяц, и это приносит конторе больше 450к... ну я хз...
482 3302031
>>301994
Любой финтех или диджитал. В том же сбере в мск сеньки как раз под 450 и имеют. Что тебя удивляет, вкатунчик?
483 3302037
>>302031
Че за проходки во вкатунцы? Зачем?

>В том же сбере в мск сеньки как раз под 450 и имеют


Это точно не фуллстек, когда они и ноды настраивают и фронт пилят?
484 3302038
>>301944

>эйджизм


Факты, факты, факты...?
485 3302042
>>302037

> когда они и ноды настраивают и фронт пилят


Что за "ноды"? Node.js? Так любой фронт должен с ним уметь работать базово, хотя бы чтобы сборку настроить и поднять локально.
Просто открыл 3 актуальные вакансии в сбере, где требуется опыта больше 3 лет. Где ты тут видишь какие то требования не релевантные фронтам?
https://developers.sber.ru/kak-v-sbere/vacancies/frontend-developer-dcb
https://developers.sber.ru/kak-v-sbere/vacancies/frontend-developer-sd
https://developers.sber.ru/kak-v-sbere/vacancies/frontend_epm
486 3302051
>>302042

>хотя бы чтобы сборку настроить


Нет, я имею ввиду что ты будешь бекенд ковырять "ведь язык-то один"...

>Где ты тут видишь какие то требования не релевантные фронтам?


Я там и зарплат не вижу.
Говорят в сбере топ синьора 350к.
487 3302055
>>302051

>Говорят в сбере топ синьора 350к.


На позиции в мухосрани - да. В МСК позициями по 450к еще год назад было мало кого удивить.

>Нет, я имею ввиду что ты будешь бекенд ковырять "ведь язык-то один"...


Ну так сходи, пособеседуйся и спроси. Там даже можно по этим ссылкам напрямую тимлиду в телегу написать, лол. Так и спроси у него "надо ли мне будет ковырять бекенд на ноде на этой позиции?"
Бэкенд на ноде это не то чтобы в целом популярная история. Да и большинство такого бекенда это BFF где просто json'ы перекладывать с разных ручек в ответ и SSR обеспечивать. Так что даже статистически нарваться на такие требования и обязанности меньше, более того - к окладу это имеет отношение довольно опосредованное.
488 3302058
>>302038
Сам поймёшь, когда тебе будут прилетать автоматические отказы на 2 из 3 вакансий при полном совпадении твоего резюме и требуемых скилов.
489 3302069
>>301963
Делаешь инстанс на каждый вектор и складываешь.
490 3302072
>>302069
Это нормально вообще?
491 3302073
>>302072
Это энтерпрайзно.
492 3302075
>>301989
Мне хватило пары минут для того чтобы понять источник каунтеров, пока ты это дерьмо разворачивать будешь, я уже спаршу весь пикабу
493 3302076
>>301994

>получает 300к что на уровне мексиканки-уборщицы в штатах, если не считать чаевые


>не может программист за месяц столько прибыли приносить, не-мо-жет



В голос с раба
494 3302081
>>301994

>это что ж за проект такой был, чтобы разраб за 450 окупался?


Фактически любой крупный проект, который не может существовать без поддержки нормальным программистом. Программист окупается не только тем, что вот он реализовал фичу и она принесла полмиллиона за месяц. Программист окупается тем, что без него компания теряла бы из-за всяких поломок и отказов больше полумиллиона в месяц.
495 3302132
>>302058
Но я в 39 из 4 собесов получил 3 офффера и в итоге пошел в мяскот на 400к.
496 3302136
>>301901
У меня оклад под 400к + годовые премии в 3-4 оклада. Итого больше 450к.

Из фулстековости во мне максимум это бфф на пару ручек прокси поднять, чтобы на клиенте меньше логики было, да токены доступа к сторонним сервисам не светились.
497 3302145
>>301943
Ты смотри не пропозал внутренностей, а примеры использования готовых декораторов. В общем, декораторы традиционно используются для выноса общего поведения.

Если не брать в расчет всякие ангуляры, у которых декоратор на декораторе и декоратором погоняет, то самое частное и самое полезное, что можно и удобно делать в виде декораторов - это мемоизация вызовов функций. Для режима разработки - логирование.
498 3302166
так и запишем,жс идеален,добавлять ничего не надо
499 3302177
>>302075
И теперь ты такой описываешь как за пару минут все понял иначе ты хуй простой и пиздобол.
500 3302204
>>302145
Чел, мемоизация это костыли, если это самое частое, то значит у тебя нет опыта работы с архитектурно грамотно построенным приложением. Декораторы это про метапрограммирование, а не костыли, запомни.
501 3302205
>>302177
Поставил брейкпоинты в код, изучил запросы в дев тулзах.
502 3302209
>>302204
Чел, метапрограммирование в рубях, где с его возможностями буквально просто написать свой собственный язык под задачу.

Джсовые декораторы - по сравнению с возможностями рубей - не более чем вынос общего кода и к настоящему метапрограммированию не имеют ни какого отношения.
503 3302212
>>302209
Руби мертв
504 3302222
>>302212
На рельсах столько всего понаписано, что руби будет умирать как Дельфи - вечно.

Но это не суть. Суть в том, что там метапрограммирование, а в декораторах жс им и не пахло никогда. Чел себе про декораторы какую-то хуйню навыдумывал, прочитав где-то умное слово.
505 3302225
>>302222
Но нового не пишут
506 3302232
>>302222
Не бывает умных слов, бывают люди для которых они такими кажутся. Например дебилы которые не знают что декораторы это аспект метапрограммирования, а не способ вхуячить неявный костыль.
507 3302237
>>302232
Еще умное слово изучил, и теперь везде суёшь аспекты?

Декораторы могут применяться при реализации метапрограммирования если в конкретном языке позволяют изменять сам декорируемый код и нагенерировать на его основе другой, но никаким аспектом метапрограммирования декораторы не являются. Метапрограммирование возможно и без декораторов. В жс же это вообще синтаксический сахар над оберткой, которая просто меняет входящие\исходящие данные.
508 3302278
Зачем так сделано?

constructor (scenes) {
scenes = { ...scenes }
...
}
509 3302296
>>302278
штоб не было сайдэфектов, когда ты в scenes удаляешь или меняешь свойство
хотя, конечно, не спасет от ссылок во вложенных объектах
510 3302431
>>302278
Чтобы жс макака без типизации не начал мутировать поля объекта и не выстрелил себе в ногу. В тайпскрипте этот костыль не нужен, решается добавлением readonly модификатора полю.
20241019.png88 Кб, 1457x701
511 3302432
>>302205
Сяп, нашел, ты душка, анон :3
512 3302434
>>302132
Стек? Опыт?
513 3302496
>>302434
Из релевантного для резюме было пара лет опыта фулстека и 3 года фронта реакт+тс.

Так как за спиной был фулстэк, то и в систем дизайне было понимание, да и в вопросах ci/cd, всякими докерами и куберами в свое время интересовался, поэтому кроме чистого фронта на собесах мог спокойно показывать свой "кругозор" в смежных областях.
514 3302532
>>301901
Что такое фуллстек?
1729345201026.png59 Кб, 652x272
515 3302559
516 3302576
>>302559

>ANAL


Это системное программирование?
517 3302579
>>302532
Когда и фронт и бэк делаешь. Но в реальности невозможно быть профессионалом в обеих областях - они слишком разные, а время на учебу и получение опыта ограничено.

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

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

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

Просто оставаться фулстеком дольше года-двух - абсолютно бессмысленно с точки зрения роста и увеличения доходов.
518 3302583
>>301901
Слышал и буквально знаю двух таких людей, но в России мало компаний столько платят сеньору, не техлиду/тимлиду. А вот на валютной удалёнке такая цифра это примерно нижняя граница для сеньора.
Обновить тред
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски

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

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