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

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

Ответить в тред Ответить в тред
<<
Назад | Вниз | Каталог | Обновить | Автообновление | 521 39 89
JS Thread #318 /js/ Аноним # OP 10/10/24 Чтв 06:16:05 3294005 1
изображение.png 100Кб, 1050x1050
1050x1050
Предыдущий тред: >>3287398 (OP)

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

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

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

Документация - https://developer.mozilla.org
Руководство для вката - https://github.com/acilsd/wrk-fet#javascript
Аноним 10/10/24 Чтв 06:27:01 3294014 2
Я напоминаю, что ts уже не нужен.
Аноним 10/10/24 Чтв 06:30:17 3294016 3
1728530976045.jpg 101Кб, 1000x995
1000x995
>>3294014
Динамикодриснявая мартышка, ты снова выходишь на связь?
Аноним 10/10/24 Чтв 06:39:32 3294018 4
>>3294016
Но ts это динамикодресня с типами. Как мне с интами работать?
Аноним 10/10/24 Чтв 07:21:43 3294032 5
Платиновый вопрос на каждом собесе по ТС:
В ЧЁМ ОТЛИЧИЕ ТИПОВ ОТ ИНТЕРФЕЙСОВ?
Аноним 10/10/24 Чтв 08:49:06 3294057 6
>>3294018
Необразованная мартышка, в тс статическая типизация.
Аноним 10/10/24 Чтв 09:23:24 3294099 7
>>3294057
Еще один, инты мне запилил быстро!
Аноним 10/10/24 Чтв 09:33:30 3294136 8
>>3294099
Какие именно, чего тебе не хватает?
Аноним 10/10/24 Чтв 10:06:53 3294196 9
image.png 317Кб, 1920x1920
1920x1920
image.png 510Кб, 888x1024
888x1024
База треда.

Ангуляр для чедов.
Вью для беток.
Реакт для омежек.
Аноним 10/10/24 Чтв 10:16:36 3294212 10
>>3294136
int'ов мне не хватает! Хочу арифметические операции с интами, как в настоящих статических языках.
Аноним 10/10/24 Чтв 10:27:23 3294221 11
>>3294212
Покажи пример что именно ты не можешь сделать в TS
Аноним 10/10/24 Чтв 11:31:22 3294274 12
Аноним 10/10/24 Чтв 11:58:03 3294297 13
Прочитал, что надо использовать void в arrow functions, которые не должны ничего возвращать.
Если просто напишешь (x) => { doSomething(x + 1) }, другие могут подумать, что ты просто написал лишние фигурные скобки. Поэтому если тебе надо, чтобы функция ничего не возвращала, стоит писать так: (x) => void doSomething(x + 1)
Аноним 10/10/24 Чтв 11:58:20 3294298 14
>>3294212
number тебя чем не устроил?

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

>>3294032
Правильный ответ - ничем, иди нахуй. Ну и интерфейс можно implements в классах
Аноним 10/10/24 Чтв 11:59:03 3294300 15
>>3294297
А еще если ты не собираешься ждать промиса то надо писать void asyncOperation()
Аноним 10/10/24 Чтв 15:01:31 3294468 16
>>3294298
>Правильный ответ - ничем
Интерфейс можно расширить с extends от интерфейса или пересечания интерфейсов, а тип нельзя extends.
Интерфейс можно переопределить, а тип нельзя
Интерфейс нельзя как юнион определить, а тип можно

мимо
Аноним 10/10/24 Чтв 15:46:45 3294506 17
>>3294468
Дрочильня омежек для техсобесов.
Аноним 10/10/24 Чтв 15:58:38 3294524 18
image.png 3Кб, 302x50
302x50
тачскрины всё ещё определяют по грубошёрстному указателю, лучше ничего не придумали?
Аноним 10/10/24 Чтв 16:00:37 3294525 19
>>3294468
>Интерфейс можно расширить с extends от интерфейса или пересечания интерфейсов, а тип нельзя extends
Тип зато можно юнион что по-сути то же самое

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

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

В целом, >>3294506, ирл всем поебать
Аноним 10/10/24 Чтв 16:04:26 3294529 20
>>3294525
Юнион и экстендс это по-твоему одно и тоже что ли?
Аноним 10/10/24 Чтв 16:13:42 3294543 21
>>3294274
Эта хуйня должна считаться на стороне бэкэнда. Ни нужно.
Аноним 10/10/24 Чтв 17:56:04 3294644 22
Аноним 10/10/24 Чтв 18:16:32 3294656 23
Здорова бандиты. Есть вопросы по тс.
1) Остается потребность в babel?
2) Насколько долгая компиляция?
3) Есть какая-то автокомпиляция налету чтобы во время кодинга не чувствовать ее?
4) Почему тс так и не подружили с дотнетом?
Аноним 10/10/24 Чтв 18:39:33 3294681 24
Аноним 10/10/24 Чтв 18:44:38 3294688 25
>>3294656
Каким образом ты чувствуешь компиляцию, поехавший?
Аноним 10/10/24 Чтв 18:59:24 3294697 26
>>3294688
Ты болен? Там вопросы.
Аноним 10/10/24 Чтв 19:09:28 3294705 27
>>3294697
То есть ты выдумал какую-то проблему "компиляции", которая как-то может "чувствоваться", а болен - я?
Аноним 10/10/24 Чтв 19:55:48 3294756 28
>>3294656
>1) Остается потребность в babel?
Остается. preset-env все еще никто не заменил
>2) Насколько долгая компиляция?
Долгая, но не настолько, что бы входить в резонанс из-за тряски. У нас на проекте с ~500к строк тс кода около 4-5 секунд в вотче перекомпиляция двух билдов для фронта и сервера. Вебпак.
>Есть какая-то автокомпиляция налету чтобы во время кодинга не чувствовать ее?
В вебпаке есть эксперимент, который позволяет компилить только то, что нужно в данный момент. Я не тестил, но вроде должно хорошо работать.
>4) Почему тс так и не подружили с дотнетом?
Зачем? И что ты понимаешь под "подружить"?
>>3294681
>swc
Хуета. В один момент столкнешься с тем, что нужен будет какой-нибудь кастомный плагин вроде бандл аналайзера и пойдешь с лицом грустной лягугки затягивать старый добрый вебпак или витю в проект.
Аноним 10/10/24 Чтв 20:07:55 3294775 29
>>3294756
вебпак умеет использовать swc
Аноним 10/10/24 Чтв 20:11:27 3294777 30
>>3294775
Не знал. И как оно? С плагинами дружит?
Аноним 10/10/24 Чтв 20:12:41 3294778 31
>>3294756
1) Вебпук актуален (был когда-то) только для фронетенд макак
2) Бандлер уже почти не нужен, скажи одмину чтобы переходил на http/2/3
Аноним 10/10/24 Чтв 20:16:49 3294782 32
>>3294778
> скажи одмину чтобы переходил на http/2/3
У нас уже давно используется CDN в нескольких странах с http3. И я могу тебе сказать, что бандел все равно нужен, даже если использовать es модули, слишком большая разница получается из-за постоянных раундтрипов, даже когда CDN находится рядом с тобой в пределах города
Аноним 10/10/24 Чтв 20:19:23 3294788 33
>>3294756
Благодарю

>4) Почему тс так и не подружили с дотнетом?
>Зачем? И что ты понимаешь под "подружить"?
Хотел дергать asp.net, но теперь вижу что тс просто лайтовая надстройка над js, это было бы сложно.
Аноним 10/10/24 Чтв 20:20:27 3294790 34
>>3294788
>Хотел дергать asp.net
Так это можно. Используй WASM.
Аноним 10/10/24 Чтв 20:23:14 3294792 35
>>3294782
DHH сказал что не нужен. Можно просто уволить фронтендомакак и нанять бекендеров, как в старые добрые писать на шаблонах, а сверху нахлобучить stimulus hotwire htmx alpine.
Аноним 10/10/24 Чтв 20:28:09 3294796 36
image.png 17Кб, 423x259
423x259
Оказалось, можно подключить проверку типов через jsDoc в vscode добавив пикрил (и добавив сам ts).
Очень удобно для меня, осталось сниппеты для jsDoc сделать.

Кто знает когда вообще планируется аннотация типов? Я так понял в ECMAScript 2025 не будет?
Аноним 10/10/24 Чтв 20:30:58 3294799 37
>>3294796
Ты не поверишь, но jsdoc работает из коробки и никакой tsconfig и ts в целом нахуй не нужны. Подсказки для библиотек написанных на ts тоже показывает автоматически
Аноним 10/10/24 Чтв 20:57:49 3294844 38
>>3294799
Мне нужна проверка еще, житбрейнских IDE был какой-то автоматический чекер, который подсвечивал.
Аноним 10/10/24 Чтв 21:02:21 3294851 39
image.png 16Кб, 681x171
681x171
Аноним 10/10/24 Чтв 21:05:27 3294855 40
>>3294799
Но без ts не будет проверки типов при компиляции.
Аноним 10/10/24 Чтв 21:12:29 3294865 41
>>3294855
eslint-plugin-jsdoc, и "компиляция" не пропустит ошибки.
Аноним 10/10/24 Чтв 21:20:36 3294868 42
>>3294865
Мимо другой анон, не использую jsdoc, зачем он нужен когда есть тайпскрипт?
Аноним 10/10/24 Чтв 21:37:28 3294878 43
>>3294868
Затем, что тайпскрипт - это громоздкая хуета, jsdoc решает вопрос "проверки типов" и "подсказок" гораздо проще
Аноним 10/10/24 Чтв 21:40:32 3294879 44
>>3294878
Чем он громоздкий? По-моему ничем. И решает вопрос проверки типов и подсказок гораздо проще и автоматически, не нужно лишние костыли подключать.
Аноним 10/10/24 Чтв 21:43:29 3294881 45
>>3294879
Лишний костыль - это тайпскрипт, все тоже самое есть без него и "подключать" нужно гораздо меньше.
Аноним 10/10/24 Чтв 21:58:51 3294887 46
>>3294756
>preset-env все еще никто не заменил
Пиздос, я правильно понял, что тс-дебилы сначала "компилируют" один раз в жс, а потом еще второй раз Бабелем? Или этот ваш коллега что-то попутал?
Аноним 10/10/24 Чтв 22:03:08 3294889 47
>>3294881
Но он не лишний и не костыль, он расширяет функционал, которого не хватает. С jsdoc нужно срать в код каким-то манясинтаксисом вместо стандартного в индустрии тайпскрипта.
Аноним 10/10/24 Чтв 22:05:04 3294891 48
>>3294889
jsdoc - стандартный инструмент в индустрии, если ты его не знаешь, то мы перезвоним.
Аноним 10/10/24 Чтв 22:05:27 3294892 49
>>3294887
Не использую бабель уже много лет, нах он нужен?
Аноним 10/10/24 Чтв 22:05:58 3294893 50
>>3294891
Я его знаю, но его далеко не везде используют, и он в целом бесполезный, если есть тайпскрипт, который есть в 99% проектов.
Аноним 10/10/24 Чтв 22:07:47 3294894 51
Как вы считаете, Тинькофф/Тбанк инвестиции это хайлоад?
Аноним 10/10/24 Чтв 22:12:16 3294896 52
>>3294893
Ну да, там где старшему покрасчику кнопок насрали в голову тайпскриптом - используют тайпскрипт, все верно.
Аноним 10/10/24 Чтв 22:16:39 3294900 53
>>3294896
То есть 99% разработчиков не правы, один ты познал истину?
Аноним 10/10/24 Чтв 22:19:30 3294902 54
>>3294900
99% разработчиков от тайпскрипта используют только расширение .ts у файлов, и есть 1% идейных дебилов, которые выводят типы ради выведения типов вместо решения задач
Аноним 10/10/24 Чтв 22:53:44 3294910 55
>>3294902
Чтобы написать ровно тебе самые типы на jsdoc надо банально больше строк, а также не реализовать упоротые дженерики с инферами и условными типами. Но 99.999% клиентского кода это банально ничего не нужно.

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

И получить в итоге лучшее от двух миров - краткость, лаконичность и мощь типов от ts и скорость сборки/пересборки для хотрелоада от ванильного js.
Аноним 10/10/24 Чтв 22:56:18 3294911 56
>>3294910
Совершенно верно, здесь лишь проблема в тс-дебилах, которые слышать ничего не хотят и считают, что у них отбирают любимую игрушку
Аноним 10/10/24 Чтв 23:05:02 3294913 57
>>3294911
Все же ts - уже стал стандартом, от него никуда не деться. Работал в трёх компаниях в мяскоте и везде был или внедрялся тс. И сейчас с третьей компании ts последний год уже полностью обязателен для всех новых проектов.

Но у меня осталась старая админка внутреннего проекта с jsdoc, отвожу на ней душу.
Аноним 10/10/24 Чтв 23:22:13 3294920 58
>>3294911
Анончик, ты пока что на стадии отрицания, или уже на стадии злости/гнева? Ведь по факту-то практически везде пишут на тайпскрипте. И чем лучше компания, чем лучше её продукт/проект, чем сильнее там команда, тем выше шанс, что там пишут именно на тайпскрипте.
Аноним 10/10/24 Чтв 23:59:29 3294935 59
Аноним 11/10/24 Птн 00:02:48 3294939 60
>>3294935
Всё-таки похоже на злость. Если ты не согласен с тем, что практически везде пишут на тайпскрипте, то как раз ты заливаешься копиумом, ведь ты пытаешься отрицать реальность.
Аноним 11/10/24 Птн 00:07:00 3294940 61
Аноним 11/10/24 Птн 00:47:06 3294948 62
>>3294940
Тяжело наверное быть тобой, когда ты вынужден отрицать неприятную тебе реальность, при том даже этот копиум не спасает тебя от злости.
Аноним 11/10/24 Птн 00:48:18 3294949 63
>>3294851
В том что ты получил дабл.
Аноним 11/10/24 Птн 00:49:56 3294950 64
image.png 5Кб, 262x192
262x192
Господа, как тестировать не-экпортные (закрытые) функции/классы?
Аноним 11/10/24 Птн 01:03:57 3294953 65
Аноним 11/10/24 Птн 01:20:40 3294960 66
>>3294948
Тяжело наверное быть тс-дебилом, который не умеет читать, выдумал воображаемых врагов, приписал им воображаемые утверждения и сражается с ними
Аноним 11/10/24 Птн 01:32:44 3294971 67
>>3294960
Я как раз почитал тебя и сделал вывод, что ты буквально отрицаешь реальность и живёшь в манямирке либо просто застрял в 2014 году, где всё делалось на чистом жс. Врагов у меня нету, я не более чем зоонаблюдаю и жду, когда у тебя стадия гнева перейдёт в стадию торга.
Аноним 11/10/24 Птн 01:33:40 3294973 68
>>3294971
О чем и речь - тс-дебил не умеет читать, но "делает выводы" космической глупости
Аноним 11/10/24 Птн 02:05:57 3295003 69
>>3294973
Космическая глупость - это гневно коупить, отрицая реальность, как будто она от этого изменится.
Аноним 11/10/24 Птн 03:50:14 3295022 70
>>3295003
ТС-дебил настойчиво продолжает спорить с вымышленными утверждениями собеседника
Аноним 11/10/24 Птн 03:53:52 3295024 71
>>3295003
Типовая дискуссия с ТС-дебилом:
- Тайпскрипт кал и моча
- АААА НЕЕЕТ ВЫ ВИДИТЕ МАМ СКАЖИ ОНИ ОТРИЦАЮТ РЕАЛЬНОСТЬ МАМ КОУПЯТ
- Дебил, ты сам это придумал
- РРЯЯЯЯ РЕАЛЬНОСТЬ ОТРИЦАЮТ МАМ СКАЖИ ИМ
Аноним 11/10/24 Птн 04:23:36 3295028 72
>>3295022
>>3295024
Ого, это уже кульминация стадии гнева, или будет продолжение? Когда у тебя мания величия, то стоит научиться быть более эмоционально стабильным. Ведь ты один прав, против тебя 99% остальных разработчиков.
Аноним 11/10/24 Птн 04:29:28 3295029 73
>>3295028
- тайпскрипт говно и моча
- РЯЯЯЯЯ У ТИБЯ ГНЕВ МАМ СКАЖИ ЕМУ ТЫ ПРОТИВ РАЗРАБОТЧИКОВ РЯЯЯЯЯ Я СДЕЛАЛ ВЫВОД ГОЛОВОЙ А ЕЩЕ Я В НЕЕ ЕМ
Аноним 11/10/24 Птн 04:33:28 3295031 74
>>3295028
От того, что ты десятый раз припишешь выдуманные тобой утверждения собеседнику, ничего не изменится, дурачок
Аноним 11/10/24 Птн 04:49:26 3295033 75
>>3295029
Капсовый визг интенсифицируется, думаю ты уже приближаешься к торгу.

>>3295031
Но я ничего не выдумывал, ты же буквально считаешь, что ты прав, а 99% других разработчиков нет. Тебе требуется лечение, ты погряз в манямирке слишком глубоко. В 2014 большинство проектов спокойно обходились чистым жс, но сейчас уже почти 2025, любой качественный да и абсолютное большинство вторсортных проектов делаются на тайпскрипте. Один ты особенный у нас. Специальный.
Аноним 11/10/24 Птн 05:18:37 3295038 76
>>3295033
Одиннадцатый раз тс-дебил приписал собеседнику выдуманные им самим утверждения, как и свой визг, выделенный капсом
Аноним 11/10/24 Птн 06:53:20 3295048 77
>>3294887
Во первых, нет. Во вторых - babel используется еще задолго до входа тс в широкие массы.
Аноним 11/10/24 Птн 06:53:36 3295049 78
Аноним 11/10/24 Птн 08:07:03 3295074 79
>>3294950
1) экспортировать их
2) апи пакета, которое должно торчать наружу, реэкспортировать в одном файле, например index.js
export myFunction from "./path/to/my/function"
3) package.json отграничить экспорт (импорт для пользователя), оставив возможность импотрировать только из index.js
"exports": {
".": "./index.js"
},
Аноним 11/10/24 Птн 08:42:07 3295083 80
>>3295074
Нефига непонятно, можно пример на гитхабе или на статью, если не сложно.
Аноним 11/10/24 Птн 08:48:30 3295085 81
>>3294950
Вот этих додиков не слушай >>3295049 >>3295074
Все это тестируется через публичный интерфейс и моки зависимостей. Тестируется конечный результат, а не отдельные составляющие класса или функции.
Допустим, у тебя есть класс с одним публичным методом initialize:

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


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

И т. д. пока не покроешь все кейсы использования.
Аноним 11/10/24 Птн 09:16:11 3295103 82
Аноним 11/10/24 Птн 09:39:34 3295124 83
>>3295103
>как тестировать не экспортные функции
>пишет гайд как тестировать экспортные функции и бонусом гайд как ограничивать импорт из пакета
>пуксреньк поток сознания

В голос с одебилевшего вкатуна
Аноним 11/10/24 Птн 09:52:22 3295139 84
>>3295124
Твое ряя юнит тесты не нужы, только конечный результат тестировать, какое отношение к вопросу имеет? Тебе не нужны, а кому-то нужны. Например сложный алгоритм протестировать, так как он может поломаться из-за зависимостей. Откуда тебе видать, что чел там не экспортировал, ванга что-ли?

Я показал пример как экспортировать внутри пакета, не экспортируя вовне. Экспортировать или не экспортировать внутри пакета, это уже вопрос феншуя либо конкретной ситуации в коде.
Аноним 11/10/24 Птн 10:13:25 3295178 85
>>3295139
Где ты хоть что то про ненужность юнит тестов увидел, шизик? Вопрос был про тестирование закрытого для внешнего мира кода в рамках юнит тестов, а не про то как заэкспортить функцию и сделать ее не импортируемой для внешних пакетов.
Аноним 11/10/24 Птн 10:53:15 3295196 86
В общем, покопался и разобрался. Я думал там как в го сделано, но в реале как всегда через одно место.

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

За день я натрахался столько, сколько не с одним языком и IDE, спасибо вам, джаваскрипщики.
Аноним 11/10/24 Птн 10:53:46 3295198 87
Аноним 11/10/24 Птн 10:56:56 3295199 88
>>3292159 →
Глянул доку таури по сайдкару.
Буквально две-три строки конфигураций и нода живет при билде.
Так что пердолинга нет, раст нинужон, таури суприме!
Аноним 11/10/24 Птн 11:12:48 3295207 89
>>3295199
Главное чтобы модные и молодежные хрустеры не забросили, за электроном хоть гиганты стоят, а этим могут обои наскучить и что тогда?
Аноним 11/10/24 Птн 11:46:15 3295230 90
>>3294950
все просто, нужно экспортировать только для тест-окружения, например:

const notExporting = () => "foobar";

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


>>3295085
>>3295074
пиздец больные, какие пакеты нах, какие package.json, у чела был простой вопрос
еще и реализацию предлагают тестировать, ахуй
Аноним 11/10/24 Птн 11:48:22 3295232 91
>>3295230
>экспортировать только для тест-окружения
Да охуенно, потому тайпгварды расставлять на каждый пук, потому у модуля будет пересечение с undefined
Аноним 11/10/24 Птн 11:59:47 3295241 92
>>3295232
к вопросу об экспортах это какое отношение имеет?
просто подскажу тебе по доброте душевной, что можно тестировать ts-код тестами на js
Аноним 11/10/24 Птн 12:20:27 3295255 93
>>3295241
>к вопросу об экспортах это какое отношение имеет?
В чем проблема сделать экспорт? Если тебе прям настолько припекает что бы не импортили этот модуль - настрой правило для услинта или насри в коде
if (__IS_AUTOTEST_RUNTIME__) {throw new Error("Пошел нахуй")}
>можно тестировать ts-код тестами на js
использовтаь чистый js в любом виде моветон уже лет 10. Едиснтвенное, где его целесообразно использовать вместо тс - всякие перформанс штуки, где добавление рантайма от тс повлечет за собой проблемы. И тесты к этому не относятся.
Аноним 11/10/24 Птн 12:42:39 3295272 94
>>3295255
>использовтаь чистый js в любом виде моветон уже лет 10
ты сказал?
>добавление рантайма от тс
что ты несешь блять, одебилевший джун-самозванец-тролль, у тс нет рантайма
>__IS_AUTOTEST_RUNTIME__
торчат уши питониста, вообще не палишься, долбоеб.
>В чем проблема сделать экспорт?
проблемы нет, это у тебя появились какие то проблемы с тайпгардами и прочей дуркой, которую ты сам высосал из пальца. вопрос изначальный от чела был в том, как протестировать без экспорта
Аноним 11/10/24 Птн 12:46:37 3295273 95
>>3295272
>ты сказал?
Да, я скозал. Никаких преимуществ писать на жс НЕТ. Эникасты находятся в топе источников багов, наряду с регулярками и прямой работой с памятью.
>у тс нет рантайма
Есть, tslib.
>питониста
Конвенция именования дефайнов старше нас с тобой вместе взятых и появилась еще во времена языка си.
Аноним 11/10/24 Птн 12:53:56 3295275 96
>>3295207
>Гиганты стоят
Гугол тоже много за чем стоял и что с того?

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

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

В то же время аппа на таури, ее сайдкары - чуть ли полностью не связанны с растом и самим таури, буквально разделенные сущности.
Могу прямо сейчас скопировать папку фронта и запилить на ионике или каком-нибудь электроне.
Аноним 11/10/24 Птн 13:00:24 3295279 97
16818857411830.jpg 25Кб, 225x224
225x224
>>3295273
>Есть, tslib.
толсто
>Конвенция именования дефайнов
срыдни с треда, долбоеб. никто так ничего в жс-мире не дефайнит, кроме единичных залетух-питонистов типа тебя
Аноним 11/10/24 Птн 13:01:49 3295281 98
Аноним 11/10/24 Птн 13:03:29 3295284 99
>>3295272
>>использовтаь чистый js в любом виде моветон уже лет 10
>ты сказал?
Индустрия сказала

Мимо
Аноним 11/10/24 Птн 13:05:57 3295287 100
>>3295275
>Гугол тоже много за чем стоял и что с того?
Конкретно тут написаны коды и строятся большо бизнес, например дискорд, да еще и нейтив.

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

У раста слишком много драм и мухожухов последнее время, какой там статус либ тоже неизвестно, но релизному языку уже 10 лет и тенденция не прям вау, а еще 10 лет ждать не очень хочется.
Аноним 11/10/24 Птн 13:05:57 3295288 101
Аноним 11/10/24 Птн 13:20:42 3295299 102
>>3295287
>>3295287
Так смысл моего поста в том, что похуй на раст, вы сайдкарами кайфуйте.

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

Нода как сайдкар и фронтендд полностью независимы, если не писать на расте, офк, а кайфовать от сайдкара.
Аноним 11/10/24 Птн 13:42:29 3295320 103
Аноним 11/10/24 Птн 13:44:20 3295322 104
Аноним 11/10/24 Птн 13:47:41 3295324 105
Аноним 11/10/24 Птн 13:54:30 3295334 106
>>3295199
Спасибо, анон. Чекну. Времени сейчас маловато и знание раста тормозит.
Аноним 11/10/24 Птн 13:59:49 3295349 107
>>3295320
>>3295324
Нихуя не понял причём свелт и турбо с шизой DHH.

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

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

мимо
Аноним 11/10/24 Птн 14:03:29 3295353 108
>>3295324
проверяются типы на jsdoc, да, кода на ts там нет
т.е. используется то за что и хвалят ts - статический анализ
никакой компиляции, никаких суперсетов языка, никакой сложной системы программирования типов ради типов - весь этот мусор нахуй нинужон
по большому счету все возможности ts на 99% проектов используются как линтер для статического анализа, генератор контрактов и автокомплит(что даже без всяких TS IDE от jetbrains умеют из коробки десяток лет - привет долбоебам жрущим бесплатный vscode, который тоже выбрала "ИНДУСТРИЯ" стандартом)
Аноним 11/10/24 Птн 14:08:48 3295362 109
>>3295353
>проверяются типы на jsdoc, да
Давно jsdoc научился типы ПРОВЕРЯТЬ, а не декларировать? Хватит срать под себя.
Аноним 11/10/24 Птн 14:12:08 3295366 110
>>3295362
Тебе уже сказали, eslint-plugin-jsdoc
Аноним 11/10/24 Птн 14:34:06 3295377 111
>>3295362
tsc хавает аннотации jsdoc и проверяет js
никакого тайпскрипта в коде свелта нет, кроме дефиниций для паблик апи, если это вообще можно назвать тайпскриптом
ты прикидываешься или на самом деле тупой?
моя мысль в том большинство людей подменяют целью "ПИСАТЬ НА TS", цель того что им нужен статический анализ, линтинг, автокомплит и возможно кодогенерация, всё
ts получил распространение лишь потому что у него лучше тулинг именно для всего этого, чего не давал jsdoc или flow, а не потому что он якобы на голову лучше js или имеет охуенную систему типов((не имеет))
Аноним 11/10/24 Птн 14:35:57 3295378 112
>>3295320
Одна контора это вся индустрия по-твоему?
Аноним 11/10/24 Птн 14:36:31 3295380 113
>>3295322
>Май 2023
И что, много кто отказался от тайпскрипт кроме руби-шиза DHH?
Аноним 11/10/24 Птн 14:37:58 3295382 114
>>3295377
> имеет охуенную систему типов((не имеет))
Имеет, его система типов ебёт почти все популярные языки.
Аноним 11/10/24 Птн 14:38:55 3295383 115
>>3295230
Да, был простой вопрос «как тестировать код который не экспортится.
Налетели одебилевшие вкатуны вроде тебя с ответами «заэкспорти». Алсо, проорал с

>export
>notExporting

Уровень читаемости твоего кода даже представлять не надо
Аноним 11/10/24 Птн 14:40:15 3295386 116
>>3295377
>jsdoc
Чел, я хочу безопасный код писать, а не дрочить простыню из комментов и надеяться на линкер.
Аноним 11/10/24 Птн 14:52:57 3295400 117
>>3295377
В тс есть конкретная фича - ты не можешь выполнить код, пока не сделаешь его корректным с точки зрения компилятора. Жсеры считают это багом, а не фичей.

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

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

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

мимо
Аноним 11/10/24 Птн 14:55:30 3295402 118
>>3295386
ts то тут при чем, дебил?
Аноним 11/10/24 Птн 14:57:35 3295404 119
>>3295400
Ты можешь зафорсить такое же поведение с jsdoc, о чем и речь. Но тс-дебил свято верит, что это послано сверху только тс и никак иначе
Аноним 11/10/24 Птн 14:57:53 3295405 120
>>3295383
Твой ответ был не тестировать?

не тот кому ты отвечал
Аноним 11/10/24 Птн 15:12:58 3295412 121
>>3295400
>В тс есть конкретная фича - ты не можешь выполнить код, пока не сделаешь его корректным с точки зрения компилятора. Жсеры считают это багом, а не фичей.

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

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

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

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

Вся разница только в том, что будет быстрее работа при пересборке (минус конь_пеляция), но ценой большего объема описания типов в комментах.
Аноним 11/10/24 Птн 15:23:33 3295422 122
>>3295402
Он обеспечивает безопасный код.
Аноним 11/10/24 Птн 15:25:24 3295423 123
>>3295412
>>3295404
Суть в том, что без тс вы не устроитесь на хорошую работу, так что жсдок не заменяет тс
Аноним 11/10/24 Птн 15:29:58 3295428 124
>>3295404
Почему ты компиляцию минуснул, а проверку типов линтером нет. Если линтер аналогичен компелятору, то от должен для всего кода AST постоить как и компилятор

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

class Person {

Поэтому либо голый динамический жс за который топит DHH, либо строгий тайпскрипт. В чем смысл других опций?
Аноним 11/10/24 Птн 15:30:47 3295431 125
>>3295423
Естественно.
Поэтому не очень понятно, зачем копротивляется местный тс-неосилятор, лучше бы пошел тс внедрять, чтобы к следующему собесу был уже опыт работы с тсом на продакшене.
Аноним 11/10/24 Птн 15:33:25 3295433 126
>>3295428
>class Person {
class Vasiya extends Person

фикс
Аноним 11/10/24 Птн 15:37:52 3295437 127
>>3295428
>В чем смысл других опций?
В том, что можно взять лучшее от двух миров, оставив за бортом мешающее.

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

Пойми одну простую вещь - из бочки мёда оказывается можно убрать почти всю ложку дегтя, так как её не перемешали.
Аноним 11/10/24 Птн 15:41:08 3295439 128
>>3295428
>Поэтому либо голый динамический жс за который топит DHH,
Не задавался вопросом, почему за голую динамикодрисню топит один шиз, а за тс все остальные?
Аноним 11/10/24 Птн 15:53:26 3295446 129
>>3295423
Ну да, ну да. Все легаси ведь давно переписали с js на ts)
Умеешь писать на жс=умеешь писать на тс. По крайней мере на фронтенде. Привыкнуть к нюансам и сахарку можно за неделю, пописывая свой пет или порефакторив чужой. На техсобесах 2-3 вопроса релевантных если и будет, то ок. Все остальное будет про алгоритмы, кишки рантайма и вебапи, браузеров, вёрстку, фреймверки, тесты, процессы, архитектуру, систем дизайн, опыт.
Я лучше возьму на работу сеньора который повидал некоторое дерьмо с жквери, первым ангуляром, бэкбоном, сборщиками типа гранта и вёрстку в ие9, но который никогда не писал на тс, потому что он вольется в проект максимум за месяц. Чем мидла/джуна, который тс считает отдельным навыком и имеет опыт с ним. Даже на проект на котором 100% известно уже используется или планируется тс.
Аноним 11/10/24 Птн 16:19:34 3295474 130
>>3294005 (OP)
где можно захостить приложение на ноде+нг бесплатно но так чтобы кредитку не требовало? типа как раньше на хероку
Аноним 11/10/24 Птн 16:25:35 3295482 131
>>3295474
На своей пеке.

надеюсь помог
Аноним 11/10/24 Птн 16:28:26 3295486 132
>>3295446
>Я лучше возьму на работу сеньора который
Молодец, а другие 99% нанимающих возьмут с опытом разработки в проектах на тайпскрипте, у них ведь поток кандидатов огромный, могут позволить себя выбирать из широкого пула кандидатов. Найдётся такой, который
>повидал некоторое дерьмо с жквери, первым ангуляром, бэкбоном, сборщиками типа гранта и вёрстку в ие9,
При этом ещё и с тс работал последние лет 5. Если сеньор не работал с тс последние лет 5, то он и скорее всего и не сеньор вовсе, да и у него не опыт, а стаж, ведь он работал на второсортных легасных помойках, а не на качественных тир 1 проектах.
Аноним 11/10/24 Птн 16:46:21 3295503 133
telegram-cloud-[...].jpg 43Кб, 800x762
800x762
Аноним 11/10/24 Птн 16:50:04 3295505 134
>>3295423
> так что жсдок не заменяет тс
Опять тс-дебилы придумывают утверждения и приписывают их собеседникам. Зачем ты выдумал это утверждение?
Аноним 11/10/24 Птн 16:51:22 3295506 135
>>3295486
Вот это мрии тс-дебила
Аноним 11/10/24 Птн 16:55:52 3295507 136
>>3295428
>это выглядит монструозно
Любитель повыводить многоэтажные типы с интерфейсами ради самих типов рассказывает про монструозность, кек.
Аноним 11/10/24 Птн 16:59:48 3295511 137
>>3295503
Напрасно смеетесь бабуля. В каждой сказке есть доля правды. Есть разные способы сделать это.
Например у тебя 100-200 рублей на дешевую впску не найдется?
1) Покупаешь дешманскую впску
2) На впску ставишь нжинкс
3) Нжинкс настраиваешь как реверс прокси
3) На своей пеке поднимаешь мега пет
4) через ssh делаешь тунель к своему пету
5) Профит
Аноним 11/10/24 Птн 17:00:01 3295512 138
>>3295446
>мидла/джуна, который тс считает отдельным навыком
Да он не просто отдельным навыком, он считает это вообще отдельной вселенной со Строгой Типизацией, а все остальное - это ДинамикоДрисня Сраная. На курсах наверное так рассказывают.
Аноним 11/10/24 Птн 17:01:30 3295515 139
>>3295511
Ты только что ngrok и сотню других подобных сервисов
Аноним 11/10/24 Птн 17:03:27 3295518 140
>>3295515
>Есть разные способы сделать это
Это отимальный способ не доверять свой комп всякому говну, а сделать шалаш самому из палок и листьев.
Аноним 11/10/24 Птн 17:08:22 3295520 141
>>3295486
Ору. Ты либо вкатун, либо долбоеб с рабской ментальностью. Тсдебил даже не понимает, что тс это не навык. Это примерно как джуны указывают себе в резюме знание sass или tailwind. Нужно ли время чтобы их освоить? Нужно, никто не спорит. Являются ли эти вещи базовыми и необходимыми? Нет. Хочешь ли ты называть себя sass-разработчиком, ts-разработчиком, jquery-разработчиком или все таки инженером? Если работодателю нужен не инженер, а исключительно ts-макака, винтик под его(а скорее даже не его, а другой тс-макаки на должности тимлида) фантазии об идеальном стеке - тогда и флаг им в руки.
Аноним 11/10/24 Птн 17:08:48 3295523 142
>>3295506
Зачем в порашу тред скатывать? По делу нечего сказать?
Аноним 11/10/24 Птн 17:10:27 3295524 143
>>3295520
>>3295512
Снова начались маняотрицания. Приведи пример тир 1 проектов и компаний, где пишут без тс.
Аноним 11/10/24 Птн 17:11:26 3295526 144
>>3295524
Здесь не было утверждений, что где-то пишут без тс, тс-дебил снова выдумал утверждения и приписал собеседнику
Аноним 11/10/24 Птн 17:13:29 3295529 145
>>3295523
По делу - мы вам перезвоним, товарищ вкатун с пет-проектом на тайпскрипте.
Аноним 11/10/24 Птн 17:18:07 3295530 146
>>3295529
>>3295526
Я пишу на тайпскрипте 5 лет, на жсе около 10. В 99% тир 1 проектов пишут на тайпскрипте, без него вы в таких проектах работать не сможете.
Аноним 11/10/24 Птн 17:19:24 3295531 147
>>3295530
Вкатунчик, ты палишься по своему отношению к тайпскрипту как к чему-то особенному.
Аноним 11/10/24 Птн 17:21:41 3295532 148
>>3295531
>Вкатунчик
Это проекции?
>ты палишься по своему отношению к тайпскрипту как к чему-то особенному.
Зачем ты выдумываешь какое-то отношение иприписываешь собеседнику? Для меня это просто один из инструментов.
Аноним 11/10/24 Птн 17:29:11 3295538 149
>>3295524
Тебе не нужно знать 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
Аноним 11/10/24 Птн 17:29:49 3295540 150
>>3295532
Ну вот так выглядишь взрослым. Не повторяй больше вкатунскую ржаку про 99% тир 1 проектов.
Аноним 11/10/24 Птн 17:33:20 3295543 151
>>3295540
>Не повторяй больше вкатунскую ржаку про 99% тир 1 проектов.
А как это противоречит тому, что тс просто один из инструментов? Он один из инструментов, но в индустрии он действительно стал настолько сильным стандартом, что его используют практически везде.
Аноним 11/10/24 Птн 17:44:59 3295553 152
>>3295543
>что его используют практически везде.
npm и yarn тоже используют везде
Надо ли мне 5 лет поработать с yarn, если я до этого 5 лет работал с npm. Нужно ли указывать это в резюме? Будут ли задавать по yarn вопросы на собесе и какие? Есть ли аналог литкода чтобы задрочить все команды ярна?
пиздец ты долбоеб конечно, братишка
Аноним 11/10/24 Птн 17:50:40 3295559 153
>>3295553
>Надо ли мне 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]
}
Аноним 11/10/24 Птн 17:51:31 3295562 154
>>3295553
Выучить yarn add вместо npm install это все таки по сложности не то же самое, что понимать, как в тупоскрипте использовать infer или как сделать тип для конструктора

мимо
Аноним 11/10/24 Птн 17:55:01 3295573 155
>>3295559
А сколько велью эта формула добавляет к продукту?

мимо кабаныч
Аноним 11/10/24 Птн 17:59:52 3295584 156
>>3295573
У моего лида спрашивай. Я в любом случае быстро напишу этот тип и пойду дальше.
Аноним 11/10/24 Птн 18:06:00 3295601 157
>>3295559
Красота какая, как минималистично! Не то, что этот монструозный жсдок
Аноним 11/10/24 Птн 18:07:03 3295603 158
>>3295601
Покажи как такой же функционал будет выглядеть на жсдоке.
Аноним 11/10/24 Птн 18:11:25 3295609 159
>>3295559
>Речь про тайпскрипт, его нужно указывать в резюме как навык, и нужно чтобы последние несколько лет он использовался в рабочих проектах, иначе ты не нужен.
Нет, не нужно. Если тебе это нужно чтобы конкурировать - то это лично твой скил ишью. Получаю по потолку рынка сеньоров уже несколько лет без всякого тс и в хуй не дую.
>Ты ведь без чатгпт не сможешь вот такой тип написать.
Выглядит несложно. За неделю можно надрочиться такую хуйню читать и писать, это же просто дженерики и преобразования над ними. Другой вопрос что заниматься этим я бы не хотел, удачи в петле или в дурке оказаться через несколько лет такого погромирования типов ради типов и ложной "безопасности".
Аноним 11/10/24 Птн 18:13:01 3295612 160
изображение.png 564Кб, 750x1000
750x1000
>>3295423
Ебать базанул так базанул.
Аноним 11/10/24 Птн 18:21:53 3295631 161
Аноним 11/10/24 Птн 18:25:27 3295641 162
>>3295631
Так тебе тип скинули, напиши такой же на жсдоке
Аноним 11/10/24 Птн 18:26:48 3295646 163
>>3295641
Это не задача, это решение
Аноним 11/10/24 Птн 18:27:25 3295649 164
>>3295609
>Получаю по потолку рынка сеньоров уже несколько лет без всякого тс и в хуй не дую.
Практика твоей тир 2 галеры не репрезентативна, в тир 1 компаниях везде тс.
>Выглядит несложно. За неделю можно надрочиться такую хуйню читать и писать, это же просто дженерики и преобразования над ними. Другой вопрос что заниматься этим я бы не хотел, удачи в петле или в дурке оказаться через несколько лет такого погромирования типов ради типов и ложной "безопасности".
А опыт работы в несколько лет ты тоже за неделю получишь?
Аноним 11/10/24 Птн 18:27:45 3295651 165
>>3295646
Значит тебе должно быть ещё проще. Решение уже есть, напиши такое же на жсдоке
Аноним 11/10/24 Птн 18:28:44 3295654 166
>>3295651
Это не так работает, решить задачу можно разными способами, не похожими друг на друга. Вот ты задачу напиши, а не свое решение
Аноним 11/10/24 Птн 18:34:25 3295663 167
>>3295654
Так и скажи, что не понимаешь, что делает этот тип
Аноним 11/10/24 Птн 18:37:10 3295667 168
>>3295663
Так и скажи, что ты занимаешься программированием типов ради выведения типов, а не решения задач бизнеса
Аноним 11/10/24 Птн 18:46:22 3295675 169
>>3295603
Да собственно также, просто тип будет описан в отдельном .ts файле и импортироваться в жсдоке
мимо
Аноним 11/10/24 Птн 18:58:22 3295688 170
>>3295649
>А опыт работы в несколько лет ты тоже за неделю получишь?
Ну пока ты дрочил свои типы несколько лет, чтобы изящно описывать как жсон по банальным крудам передаётся, я решал бизнесовые задачи, иногда очень нетривиальные. Как думаешь о чем кабанчику или тимлиду будет интереснее послушать на собесе?
>Практика твоей тир 2 галеры не репрезентативна, в тир 1 компаниях везде тс.
Гугл и Яндекс выписаны из тир1 со своими костылями и легаси. Так и запишем) Держи в курсе.
Аноним 11/10/24 Птн 19:00:05 3295691 171
>>3295085
>тестируется
>докьюмент аддЭвентЛистенер(кликк
А как написать тесты для анимаций?
Аноним 11/10/24 Птн 19:19:33 3295700 172
>>3295667
Ради решения задач бизнеса. Вот эту задачу ты решить не в состоянии, похоже.

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

>Гугл и Яндекс выписаны из тир1 со своими костылями и легаси. Так и запишем) Держи в курсе.
Какие проекты в Гугле и Яндексе не используют тс? И какой процент таких проектов от всего количества? Вопрос риторический. Особенно смешно про Гугл, который буквально создал Ангуляр, где на чистом жс в принципе невозможно писать. Про Яндекс в принципе тоже:
https://yandex.ru/jobs/vacancies?from=cp_header&professions=frontend-developer&text=typescript
Аноним 11/10/24 Птн 19:19:50 3295701 173
Аноним 11/10/24 Птн 19:22:12 3295702 174
>>3295700
Итак, задачу сформулировать тс-дебил не в силах, ясно-понятно.
Аноним 11/10/24 Птн 19:27:36 3295707 175
>>3295702
Ты не способен вывести задачу из решения, ты точно сеньор, или просто носишь лычку сеньора?
Аноним 11/10/24 Птн 19:29:31 3295710 176
>>3295688
>Яндекс
Шиз, нука покажи мне в каком проекте в яше использует ЖС вместо ТС. Сразу можешь на вики скинуть страницу или название - я проверю.
Аноним 11/10/24 Птн 19:30:49 3295713 177
>>3295688
Кого наймёт кабанчик, сеньора, который много лет решал задачи бизнеса в качественных проектах с использованием тайпскрипта, или "сеньора", который много лет решал задачи бизнеса без тайпскрипта, то есть в легасных второсортных проектах?
Аноним 11/10/24 Птн 19:52:01 3295727 178
>>3295710
https://github.com/orgs/yandex/repositories?q=lang%3Ajavascript&type=all
Поможем же Даше найти жаваскрипт в яндексе. И это только публичные oos, а сколько там внутри собственных сервисов/тулов, в тч внутри всяких дочек/внучек типа лавки/практикума/макета никто не скажет.
>>3295713
Наличие тайпскрипта в проекте не делает его первосортным. Верно так же и обратное - отсутствие тайпскрипта не делает проект второсортным. Ты сделал беспруфное утверждение(что тайпскрипт тождественен тир1 бизнесу) и пытаешься на этом построить остальную логику, беспощадная софистика, которой разве что вкатунов наебывать на покупку курсов по тайпскрипту.
Аноним 11/10/24 Птн 20:01:26 3295734 179
>>3295727
>Поможем же Даше найти жаваскрипт в яндексе. И это только публичные 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х инженеры-глыбы делают что-то особенное, выходящее за рамки обычной коммерческой разработки. А обычный коммерческий проект без тс (к ним относятся те же яндекс музыка, карты, еда, маркет, такси, аналоги гугла) - второсортный, потому что динамикошизы и жсдок-макаки типа тебя будут вместо типа как тут >>3295559 писать огромную портянку.
Аноним 11/10/24 Птн 20:06:27 3295739 180
>>3295727
>https://github.com/orgs/yandex/repositories?q=lang%3Ajavascript&type=all
Ебанат, ты показываешь не яндекс, а какие-то высратые на гитхаб говносниппеты. Все фронтовые проекты в яндексе уже давно на ТС. Во всех> технорадарах JS в холде.
>никто не скажет
Я тебе скажу. В нашем бизнес юните JS есть только в виде какого-то легаси кода, последний коммит в который был более 5 лет назад. Все CLI, либы, проекты, ui-kit'ы и прочее давно использует TS.

Так раз уж ты яндексом прикрывыешь - назови мне проект, который в написан на ЖС и который активно поддерживается. Я посмотрю исходники. Или ты напиздел и всю жизнь работал в ООО рога и копыта, делая простейшую хуйню на jquery?
Аноним 11/10/24 Птн 20:23:07 3295746 181
есть Яндекс
@
а все остальное это ООО рога и копыта
Аноним 11/10/24 Птн 20:43:55 3295765 182
image.png 22Кб, 394x603
394x603
Приводят в пример такую особенность работы кастомных пропертей, что первый див окрашивается в красный, а второй не окрашивается в синий. Но я не могу понять чем это обусловлено, в чем логика?
Аноним 11/10/24 Птн 20:53:33 3295770 183
>>3295734
>Вот что релевантно:
>в половине вакансий требуется redux
Охуенный техрадар. Прямиком из 2017
Аноним 11/10/24 Птн 21:08:15 3295778 184
>>3295746
>>3295770
Тебя уже попустили с Яндексом, но если ты мазохист и хочешь ещё, то давай посмотрим остальных из КОТВАСЯ.

Касперский, 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, так что с тайпскриптом у них хуже, но вообще у них во всех вакансиях тестировщиков указан тайпскрипт.
Аноним 11/10/24 Птн 21:21:58 3295783 185
>>3295778
Да не стоило утруждаться, уже разобрались, что вся мощь тайпскрипта необходима тир1 компаниям, чтобы увлекательно типизировать экшены редакса трехэтажными типами. Современные проблемы требуют современных решений.
Аноним 11/10/24 Птн 21:24:41 3295785 186
>>3295783
>увлекательно типизировать экшены редакса трехэтажными типами
Чел, ты всё-таки реально застрял в прошлом. Уже минимум 4 года существует redux toolkit, в котором не нужно писать большое количество бойлерплейта. Не то чтобы я фанат редакса, но с тулкитом всё намного проще. В своих проектах я другие стейт менеджеры использую, либо не использую вовсе (только tanstack query для асинк стейта).
Аноним 11/10/24 Птн 22:21:46 3295807 187
>>3295765
>на скрине три дива
>первый в красный, второй в синий

Чел... выкидывай эти примеры и тех кто его давал нахуй, такое на работе не пишут.
Аноним 11/10/24 Птн 22:24:44 3295809 188
>>3295785
Ахаха, в ахуе какой же ты инфант ебаный. Ты опять додумываешь про меня хуйню, которую сам же и высосал из пальца. Что я нихуя не юзал, нихуя не видел, нихуя не пробовал, работаю в рога и копыта, ковыряю свой жс ванильный. Думай дальше так. Чем больше таких вот снобов-нпс-болванчиков и компаний, которые технологии для проектов по техрадарам выбирают, а не исходя из инженерных изысканий, реальных требований, ограничений, dx, здравого смысла и культуры, то тем больше интересных вакансий, проектов и опыта для меня.
Самое забавное что шобла даже не осознает что весь этот техстек выбран топовыми компаниями не чтобы улучшить продукт, а чтобы упростить и удешевить найм. В моменте пузырь надувается, зарплаты растут, но достивнув плато в итоге стагнируют, когда рынок перенасыщается специалистами с удовлетворительной квалификацией. В итоге бизнес получает на длинной дистанции дохуя мидлов, готовых работать за еду в лучшем случае(привет постковидный кризис), а в худшем только дохуя мидлов на рынке. Выше наглядно такой вот раб системы с пеной у рта доказывал что мне надо конкурировать с ним за место в тир1-компаниях, учить тс, какие то года нарабатывать на этом говне, создавая ещё больше конкуренции за места. Нахуя, зачем это лично ему? Инфантильность на мой взгляд, чтобы показать свою значимость или оправдать свой выбор стека(смотрите, я ем говно с тс, но это стандарт индустрии!) ххххрр тьфу!
Аноним 11/10/24 Птн 22:55:55 3295821 189
zjcHu7COIIAm-TH[...].jpg 343Кб, 1080x1645
1080x1645
>>3295809
>снобов-нпс-болванчиков
>считает, что один он прав, а тимлиды, техлиды, архитекторы в топовых и околотоповых компаниях дурачки
Дооооо, ты такой не сноб, лол, образованный-революционер в окружении дремучих тс-дебилов

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

>тем больше интересных вакансий, проектов и опыта для меня
Ага, тем временем практически все годные проекты пишутся на тс, и это далеко не первый год так
Аноним 12/10/24 Суб 00:06:11 3295875 190
>>3295559
>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]
>}
Я не вдупляю нахуя это надо. Типа выввести тип ключей из объекта?
Аноним 12/10/24 Суб 00:10:20 3295879 191
16922886137750.mp4 4335Кб, 656x656, 00:00:10
656x656
Хуй за щеку чепухану, не написавшему тег.
Аноним 12/10/24 Суб 01:40:48 3295902 192
image.png 47Кб, 685x339
685x339
Вчера переписывал юзерскрипты, поставил тс для проверки кода, вместо быстрого прототипирования занимался типо-рисованием, как же он мешает свободе жс, да еще плохо выводит типы приходится заглушки ставить. Он же сырой ппц, что в идеи заглушки ставил когда-то что в тс, лол.
Аноним 12/10/24 Суб 01:56:45 3295903 193
>>3295902
Скинь весь скрипт, напишу тебе нормальные типы.
Аноним 12/10/24 Суб 02:21:25 3295909 194
Аноним 12/10/24 Суб 04:47:16 3295923 195
>>3295785
>>3295783
Ребятушки, а что на счет стандартного контекста?
Или редакс тулкит чем-то намного лучше?
Аноним 12/10/24 Суб 05:56:08 3295930 196
>>3295923
У контекста есть проблемы с перфомансом. Во многих случаях он подойдет- например чтобы хранить шаред стейт для большого компонента, разбитого на маленькие, или хранить тему\данные юзера(то что требует инициализации один раз и не часто меняется).
Редакс хоть без тулкита, хоть с тулкитом, хоть с санками, хоть с сагами - ебейший бойлерплейт и многословность. Из плюсов только то, что плюс-минус все с ним работали и понимают концепцию.
Для состояния запросов можно и нужно взять react-query\apollo и не хранить этот стейт от слова никак.
Для всего остального глобального стейта - mobx и zustand на выбор. Или effector если ты адепт хайп-драйвен-девелопмента.
Аноним 12/10/24 Суб 07:20:25 3295941 197
>>3295879
Я обосрался. Следующий перекат перекачу нормально.
Аноним 12/10/24 Суб 10:20:29 3295982 198
>>3295930
Для запросов и стейта нужно делать отдельные сервисы, которые будут его хранить, никакие квери аполо хуело мобиксы не нужны, максимум rxjs в сервисах
Аноним 12/10/24 Суб 11:20:40 3296013 199
>>3295982
>никакие квери аполо хуело мобиксы не нужны, максимум 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

это именно что слой по работе со стейтом запросов, не нужно(хотя конечно кто же тебе запретит?) эти данные тащить в глобальные сторы, как в далекие времена на каждую рест ручку в редаксе писали редюсер, слайс и экшены, это пиздец
Аноним 12/10/24 Суб 12:09:58 3296046 200
>>3295902
TS и не нужен для скриптов. Он нужен для командной разработки больших приложений.
Аноним 12/10/24 Суб 12:15:02 3296048 201
>>3296013
> так же будет и react-query
Не будет. React-query уже давно умеет суспендить в отличии от твоего кала, который на каждый чих вынуждает писать
if (isLoading)
if (isError)
if (isSuccess)
Аноним 12/10/24 Суб 12:25:06 3296053 202
Аноним 12/10/24 Суб 13:22:26 3296093 203
>>3296013
>отдельный сервис

Охуенно, очередной год-обжект по типу редакса. Минусы все те же только в другой обертке. Опять эти магические useQuery которые все за тебя делают, а чуть в сторону - расстрел и костыли на весь проект.
Явное лучше неявного
Глобальный стейт - зло
Вот когда эти два принципа буду соблюдены, тогда приходи.
Аноним 12/10/24 Суб 13:31:08 3296102 204
>>3296093
>Охуенно, очередной год-обжект по типу редакса.
Нихуя себе, любой стейт-менеджер, оказывается, - антипаттерн.
Аноним 12/10/24 Суб 14:00:47 3296115 205
>>3296093
Где ты тут год обжект увидел? Для слоя апи есть apollo/swc/tanstack-query, они выполняют свою задачу удобно и хорошо(и используя все современные оптимизации и концепции реакта типа саспенса). Если хочешь обмазаться глобальными сторами и реализовывать эту логику обработки ошибок, кеширования, ожидания загрузки, валидации и разбора реквеста/респонса, мидлварей, поведения для ssr, провайдера/консумера/биндинга для компонентов внутри них ручками - твой выбор, мне похуй. Тебе лишь показали возможность, эти инструменты появились не на пустом месте.
Аноним 12/10/24 Суб 14:07:26 3296116 206
>>3296115
SWR a не swc конечно же, фикс
Аноним 12/10/24 Суб 14:12:54 3296120 207
>>3296102
Не любой, а тот который хранит стейт всех частей приложения
Аноним 12/10/24 Суб 14:22:19 3296128 208
>>3296120
Чем плохо? Всегда должно быть одно централизованное место, из которого происходит управление. Иначе хрен поймешь, что где откуда управляется.
Аноним 12/10/24 Суб 14:27:18 3296135 209
>>3296128
Его нет, у тебя место которое хранит все и отдает всюду. Централизация это когда у тебя есть слои и взаимодействие между ними, центральным должен быть предметный слой с бизнес логикой. В случае глобального стейта границ нет, я могу влиять на ui пукнув в стейт из любого места.
Аноним 12/10/24 Суб 14:34:39 3296145 210
>>3296135
>я могу влиять на ui пукнув в стейт из любого места
И это хорошо. Зачем лепить себе какие-то безумные ограничения?
Аноним 12/10/24 Суб 14:36:47 3296149 211
>>3296145
Вот и пришли к начальному >>3296093
Т. е. ты только что буквально сказал "год обжекты и глобальный стейт это хорошо, вы ничего не понимаете"
Аноним 12/10/24 Суб 14:41:19 3296154 212
>>3296149
Так а где было сказано, что это плохо?
Аноним 12/10/24 Суб 14:57:23 3296180 213
>>3296154
А react-query тут причём? Из глобального стейта там только кэш, который ты можешь и не использовать вовсе. Запросил в компоненте данные, отрендерил, анмаунтил и они почистились gc. Это и есть локальный стейт блять, абстракция над фетчом со свистелками и перделками, которые тебе все равно понадобятся в проекте чуть сложнее туду-листа(и придётся писать свои велосипеды). Работать со стейтом запросов можно и в классических сторах типа редакса, мобикса, контекста, но лучше не надо - только про это и речь.
Аноним 12/10/24 Суб 14:57:39 3296182 214
Аноним 12/10/24 Суб 14:59:06 3296185 215
>>3296180
>Работать со стейтом запросов можно и в классических сторах типа редакса, мобикса, контекста, но лучше не надо - только про это и речь.
В редакс тулките есть удобный rtk query, единственный минус - до сих пор нет поддержи suspense
Аноним 12/10/24 Суб 15:02:10 3296193 216
>>3295903
Ну как? Получается?
Аноним 12/10/24 Суб 15:05:04 3296194 217
Typescript это, возможно, самый "врущий" язык, с которым мне приходилось работать.

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

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

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

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

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

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

И тут ты понимаешь, что ничего удобнее глобального стейта - еще не придумали. В одном месте собрал все данные и настройки ui - и отдал с разметкой.
Аноним 12/10/24 Суб 15:15:00 3296204 219
>>3296194
>То есть, любой может случайно изменить объект за пределами тайпскрипта, и это с удовольствием проглотиться системой

Я тебе больше скажу, можно отредактировать память процесса и вообще не важно на каком языке была написана программа - также с удовольствием программа на любом языке все сожрёт и будет работать пока не упадет из-за мусора в указателях или том же делении на ноль.
Аноним 12/10/24 Суб 15:16:43 3296207 220
>>3296185
У rtk query примерно похожий апи по получению данных в компоненте. Только для него нужен редакс и бойлерплейт на КАЖДЫЙ запрос, это пиздец. В этом и минус, это просто лишний шаг, когда тебе нужно просто получить данные и отрендерить/передать дальше.
Аноним 12/10/24 Суб 15:18:44 3296209 221
>>3296194
>Во-первых, типизация, она как бы есть, но её как бы и нет. То есть, любой может случайно изменить объект за пределами тайпскрипта, и это с удовольствием проглотиться системой.
Примеры таких объектов за пределами тайпскрипта?

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


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

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

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

>Решение для типизации было следующим - сервер, написаный на golang, который возвращал объект нужного типа. (40 строк кода). Смысл TS быстро попадает, когда в мире столько других замечательных языков программирования.
На фоне TS golang сложно назвать замечательным. Да на фоне практически чего угодно. Разве что виртуал треды крутые в го, так они и в сишарпе, есть, в котлине есть, и даже в джаве уже есть.
Аноним 12/10/24 Суб 15:18:47 3296210 222
Спросил у чата гпт рассчитать вероятность нахождения работы на том или ином стеке. ИИ ответил:
"Вероятность найти работу с React + Node.js даже выше, чем с Angular + ExpressJS. Этот стек является одним из самых популярных и востребованных в веб-разработке на сегодняшний день. Многие компании, включая стартапы и крупные организации, используют его для создания современных, высокопроизводительных веб-приложений."
Это так?
Аноним 12/10/24 Суб 15:22:18 3296214 223
>>3296210
Да, это довольно точное утверждение. Стек React + Node.js действительно очень популярен в веб-разработке и востребован на рынке труда. React часто используется для создания пользовательских интерфейсов, а Node.js — для серверной части приложений. Этот дуэт позволяет разрабатывать эффективные и масштабируемые веб-приложения.

Angular + Express.js также востребованы, но в последние годы популярность React продолжает расти, что делает его более предпочтительным для многих работодателей. Если вы хотите повысить свои шансы на трудоустройство, изучение стека React + Node.js может быть отличным выбором.
Аноним 12/10/24 Суб 15:27:05 3296219 224
>>3296210
>>3296214
Имею ввиду что из всех стеков и видов айти наш пока что мирный Скайнет указал именно на React и NodeJS.
Не Spring, не дотнет - именно React и NodeJS.
Это соответствует правде?
Аноним 12/10/24 Суб 15:32:57 3296220 225
>>3296219
Да, это соответствует реальному положению дел. 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, что отражает высокий спрос на рынке.
Аноним 12/10/24 Суб 15:37:35 3296223 226
>>3296199
Надуманная проблема. На сервере ты генеришь одну страничку, которая использует и локальный и общий стейт. Регидрируй их отдельно как локальный и глобальный, нахуя все в одну помойку то складывать.
Аноним 12/10/24 Суб 16:02:26 3296237 227
Аноним 12/10/24 Суб 16:03:30 3296238 228
>>3296182
Тебе уже назвали - rxjs и сервисы с явным предназначением и целью
Аноним 12/10/24 Суб 16:05:42 3296241 229
>>3296199
> бизнес
> сео не очень, бандл слишком большой, куча запросов от клиента, для части сервисов безы требуют прокси поднимать

В голос с маняфантазий вкатунца. Бизнесу на все это похуй, все что он говорит "фича нужна была вчера".
Аноним 12/10/24 Суб 16:07:51 3296242 230
>>3296238
У tanstack-query вполне явное предназначение и цель, при чём все есть из коробки и применяется крайне просто. У rxjs предназначение довольно абстрактное, тебе нужно вокруг него делать свой велосипед, но зачем, если проще и надёжнее взять готовые и проверенные решения?
Аноним 12/10/24 Суб 16:14:04 3296248 231
>>3296238
Это примитивы и паттерны, которыми ты будешь реализовывать свой велосипед. Никаких задач, которые решают эти либы, сам по себе rxjs не решает.
Аноним 12/10/24 Суб 16:23:18 3296256 232
>>3296238
В итоге ты напишешь в лучшем случае хуевую версию react-query с багами, неполным функционалом и большим бандлсайзом, а в худшем хуйню которой будет неудобно пользоваться и дебажить всем, кроме тебя. Про то что этот код ещё и поддерживать надо будет скорее всего уже даже и не тебе я даже и думать не хочу. Дерзай, хуле.
Аноним 12/10/24 Суб 16:38:19 3296264 233
image.png 77Кб, 660x526
660x526
>>3295902
>>3295909
А зачем тебе тут тс, что ты собрался типизировать? И зачем ты ставишь эти загрушки? Ну можно параметр конструктора типизировать, а ещё что?
Аноним 12/10/24 Суб 16:46:43 3296272 234
>>3296241
Вот только ты забыл, что после того, как ты нахуевертил фич, бизнес заказывает аудит, так как с такими крутыми фичами чтот собственно сам бизнес проседает. И этот самый аудит выявляет все эти проблемы и идёт уже тебе ебать мозги не фичами, а проблемами.
Аноним 12/10/24 Суб 17:16:33 3296288 235
>>3296248
В том и суть, что их достаточно. Велосипед ты будешь делать когда твое приложение начнет сыпаться из-за неочевидного, антипаттерного дерьма которое ты затащил.
Аноним 12/10/24 Суб 17:28:33 3296299 236
>>3296288
Нет, не достаточно, даже в ангуляре поверх rxjs сделали HttpClient. Так что для вью и реакта тебе придётся васянить костыли, и скорее в этом случае твоё приложение будет сыпаться, а не из-за tanstack-query и apollo, которые давно сформированы и проверены временем.
12/10/24 Суб 17:28:37 3296300 237
Аноним 12/10/24 Суб 17:40:35 3296318 238
>>3296256
Еще раз. Как ты с этим дерьмом поддерживаемую архитектуру строить собрался?
Аноним 12/10/24 Суб 17:43:32 3296321 239
>>3296299
rxjs это инструменты для менеджмента стейта, ты хоть раз слышал такой принцип как Single Responsibility? Почему в rxjs должно быть что то похожее на httpclient ангуляра?
Аноним 12/10/24 Суб 18:30:50 3296358 240
поработал месяцок на большом проекте, как же меня заебал зоопарк фреймворков. куча самописного дерьма. всё время ловлю флешбеки из джавы, где все на свете стандартизировано. думаю может перекатиться на какой-нибудь андроид чтоб не видеть больше этого всего пиздеца.
Аноним 12/10/24 Суб 18:42:14 3296368 241
>>3296358
Из чего зоопарк состоял?
Аноним 12/10/24 Суб 18:45:31 3296379 242
>>3296368
коа, экспресс и самописная хуйня а-ля нест
Аноним 12/10/24 Суб 18:49:26 3296385 243
>>3296379
Есть много мест, где всё только на несте, ну либо выкатывайся обратно в жяву/котлин, дотнет тоже норм вариант
Аноним 12/10/24 Суб 20:18:00 3296446 244
>>3296379
Самописную хуйню круто писать, когда ты сам джун+/мидл на первой работе и на небольшом проекте.
Пока сам придумываешь эту дрисню (а не поддерживаешь чужой набор костылей) получишь очень сильный буст к кругозору, пониманию работы фреймворков/библиотек, аналоги которых пытаешься написать.
Аноним 12/10/24 Суб 21:50:55 3296514 245
>>3296264
Представьте код с пикрила, только с точками с запятой. Как же отвратительно это выглядело бы, аж неприятно стало от одной мысли.
Аноним 12/10/24 Суб 23:05:26 3296610 246
>>3296514
Двачую. Ещё эти ебучие скобки убрать нахуй.
Аноним 12/10/24 Суб 23:22:21 3296628 247
>>3296610
Без них жс код работать не будет, да и они улучшают читаемость, т.к. выделяют блоки кода
Аноним 13/10/24 Вск 00:53:56 3296717 248
>>3296264
Странно, но сегодня тс не выдает ошибок, агенты тс прочитали и подкрутили что-то.
Аноним 13/10/24 Вск 01:27:35 3296726 249
>>3296628
Тебе новая строка блоки выделяет, точка с запятой это анахронизм древних (сам олд и самому уже надоело)
Аноним 13/10/24 Вск 01:51:10 3296731 250
>>3296318
Показывай свою "архитектуру" на rxjs. В частности как ты данные фетчишь в компоненты.
Аноним 13/10/24 Вск 01:53:18 3296732 251
Как заставить эту скотину (vscode) вставлять мне по дефолту модули, а не commonjs?
"type" = "module" стоит, что ему еще надо?
Аноним 13/10/24 Вск 07:07:23 3296753 252
Как вам Vite и в каких случаях его не хватает и нужен webpack? Если сталкивались конечно.
Аноним 13/10/24 Вск 07:57:24 3296756 253
image.png 161Кб, 1429x901
1429x901
image.png 57Кб, 800x600
800x600
>>3296753
Нет нормальной доки, на треть сайта фиксированный сайдбар с какими то баннерами о конференциях и прочей хуйне(сматритееее нас юзает %хуйнянейм% сматритееее!!11), такое ощущение что мне пытаются что то продать
Нет замены части плагинов из вебпака
Нет нормального гайда по миграции с вебпака на вайт
Сам конфиг с кучей неявных дефолтов, в доке это никак не описано
Перфоманс не сильно лучше вебпака, даже в бенчмарках
По большому счету это rollup в красивой обертке

Такой геморой по миграции, ради того чтобы начальная сборка на 5 секунд быстрее стартовала? Если уж переходить то на что то, то взять rspack, где разрабы хотя бы думают о совместимости, а не о маркетинге
https://github.com/farm-fe/performance-compare?tab=readme-ov-file#full-benchmark
Аноним 13/10/24 Вск 11:49:10 3296835 254
>>3296753
>>3296756
Дебсы, вит и вебпак - несравнимые вещи. В вите бандлер - ролап, вот его и надо сравнивать с вебкапом.
Аноним 13/10/24 Вск 12:02:32 3296842 255
>>3295273
>Конвенция именования дефайнов старше нас с тобой вместе взятых и появилась еще во времена языка си.
А еще есть конвенция у жсеров не тащить такой мусор в код. Даже в еслинте правило
https://eslint.org/docs/latest/rules/no-underscore-dangle

И то что такое встречается даже в коде вью или реакта не говорит о том, что это общепринятая практика.
Аноним 13/10/24 Вск 12:48:09 3296880 256
>>3296731
Вот тебе отрефакторенный пример из твоего мусорного пакета: 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
который рассыпется при первых изменениях требований, либо как минимум будет тянуть с собой кучу ненужных зависимостей и магии, которую никто кроме бывалых тэнсасак не поймет.
Аноним 13/10/24 Вск 13:01:40 3296894 257
>>3296842
В eslint половина правил противоположны другой половине правил.

Еслинт не про то, что вот у нас есть правила и вот именно так надо делать. Он про то, что если в вашем проекте принято такое соглашение по коду - то вот кстати у нас есть для него подходящее правило и не придется на кодревью это проверять.
Аноним 13/10/24 Вск 14:11:22 3296942 258
>>3296880
>я написал 200 строк бойлерплейта чтобы дернуть одну ручку
>у меня слоёная архитектура
Ясно. А фронтенд то тут при чем?
Аноним 13/10/24 Вск 14:20:41 3296946 259
tansuck.png 13Кб, 427x78
427x78
rxjs.png 11Кб, 419x60
419x60
>>3296942
Даже на таком простом примере видна разница в размерах и времени билда. Очевидный отсос тэнсака и любителей затянуть говна в приложение. Это так, чисто макаке хоть как-то доказать, потому что она только сравнение циферок понимает, смысла объяснять что-то про архитектуру и поддерживаемость нет, для макаки это "бойлерплейт".
Аноним 13/10/24 Вск 14:28:40 3296957 260
>>3296946
Ору. Когда ты затащишь такое на реальное приложение то сожрешь эти 4кб уже после добавления 20 запросов своим бойлерплейтом.
Аноним 13/10/24 Вск 14:56:54 3296978 261
image.png 19Кб, 719x61
719x61
Вы че там совсем офигели что ли, я час долбился с проблемой, оказывается литералы с нулем 2.0 налету переводятся к инту!!!
Аноним 13/10/24 Вск 15:26:36 3297010 262
>>3296957
Сначала переведи 4кб в количество строк минифицированного кода, чучело. Во-первых.
Во-вторых, это будет код приложения, а не сторонней свистоперделки с багами и вшитыми троянами.
Аноним 13/10/24 Вск 15:30:23 3297014 263
>>3296978
Ничего никуда не приводится, в JS число всегда будет double если не учитывать BigInt
Аноним 13/10/24 Вск 15:35:19 3297023 264
>>3296978
Мурзилку для начала почитай, чтобы не быть батхертом.
Аноним 13/10/24 Вск 16:03:53 3297070 265
>>3296880
>Вот тебе отрефакторенный пример из твоего мусорного пакета: 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 намного более магический и разбираться в нём труднее и дольше. Сейчас бы тащить фп на фронтенд...

>>3296946
Скоро сборки продакшен билда не так уж важна, если это не десятки минут. А бандл сайз ты бы лучше смотрел на реальном большом приложении, там разница будет незначительна.
Аноним 13/10/24 Вск 16:06:49 3297076 266
Изначально хотелось сделать вопрос в web, но после просмотра тамошних тредов, решил, что там таким вопросом никто не занимался.
Если прописан тэг <script src="qweewqqwe...">, то какой тип запроса совершает браузер?
Была мысль, что будет GET запрос, но есть сомнения, что это так.
Ещё часто возникает вопрос, можно ли в src закинуть адрес с другим доменом или нет.
Аноним 13/10/24 Вск 16:25:29 3297104 267
>>3297076
Да, GET. Да, можешь засунуть любой урл. Скрипты с чужих ориджинов могут не загружаться и не выполняться в зависимости от политик сервера, который будет отдавать этот скрипт, и от политик документа/браузера. Можешь почитать про cors и secure context в браузерах.
Аноним 13/10/24 Вск 16:40:33 3297122 268
>>3297070
>При каких именно изменениях он рассыпается?
queryKey: ['repoData'] используется в другом компоненте, queryFn при этом в этом компоненте не задается. Этот компонент рендерится раньше чем Example компонент.
Ой, что это такое? Что-что? Ошибка? Да как же это так, у тебя же топовая архитектура, не может такого быть! Что говоришь? Совсем не связанные компоненты, которые просто зависят от одного источника данных, оказываются зависят еще и друг от друга? Давайте вынесим queyFn и будет тыкать в каждый компонент, а потом бегать и по каждому референсу и проверять что мы ничего не сломали, изменяя код этой квери.
Аноним 13/10/24 Вск 17:11:46 3297167 269
>Flutter - чисто нативное приложение и рисует своими силами. Tauri чисто Web и рисует силами чужого браузера.
Вопрос: а почему никто не замутит-то именно нативное на js? Зачем всякие дарты лепить никому не нужные?
Аноним 13/10/24 Вск 17:49:04 3297184 270
>>3297167
>Зачем всякие дарты лепить никому не нужные?
Бабки сами себя не распилят.
Аноним 13/10/24 Вск 18:15:19 3297200 271
Я увидел у Владилена Минина коммент под видео, где он рассказывает про вкат в фронтенд в 2024 году.
Текст комментария:
>Я бы добавил, что работу надо начинать искать сразу после изучения JavaScript. Как ни странно есть конторы, где этого хватит. Я именно так нашел первую работу спустя 4 месяца обучения с абсолютного нуля.


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

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

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

Признайся, ты ангулярщик, который зачем-то лезет в реакт? Или вообще скуфоджавист?
Аноним 13/10/24 Вск 19:14:17 3297283 273
>>3297200
В каком году он вкатывался во фронт? Я нашёл свою первую работу в 12-ом году гораздо легче, чем сейчас, ещё и выбирал из контор. При этом знал JS я на уровне "полгода прогал пет-проект" и собесы были в стиле "покажите пример замыкания".
Аноним 13/10/24 Вск 19:16:21 3297287 274
>>3297200
>И что надо фуллстеком быть, там в 4 раза меньше 500 человек претендуют на 1 вакансию.
Фуллстеков правда в разы меньше, КМК есть даже смысл напиздеть, что ты фулстэк, если хотя бы отдалённо владеешь запрошенными технологиями (php, node, python) освоишь всякую серверную хуйню на месте.
Аноним 13/10/24 Вск 19:22:25 3297293 275
Скажите, если у меня в цикле получился пустой else if, это сильно хуёво? ) Ну просто там ничего кроме continue не требуется, но и смысла вставлять continue нет, если за else if'ом ещё один else и всё.
Аноним 13/10/24 Вск 19:28:07 3297296 276
>>3297293
всё, переписал так, где это не понадобилось
Аноним 13/10/24 Вск 19:29:10 3297297 277
>>3297200
Даунизде, ты бы вместо того чтобы проценты шансиков высчитывать и мнения чужого спрашивать, пошёл бы да вкатился. Как я, взял и вкатился, напиздев с три короба в резюме. И это в 30+
Аноним 13/10/24 Вск 22:19:02 3297350 278
>>3297237
Ок, допустим ты дурачок и не понял примера. Тебе в компоненте А нужны другие настройки кеша, что делать будешь? Создав еще один клиент у тебя запросы будут дублироваться, как этого избежать?
Аноним 13/10/24 Вск 22:29:40 3297358 279
>>3297350
>Тебе в компоненте А нужны другие настройки кеша
Какие? Какие настройки кеша ты не можешь сделать с tanstack query?
Аноним 13/10/24 Вск 22:31:41 3297359 280
>>3297358
Отличные от компонента Б
Примере тенсасакозависимого это

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

Допустим, компонент А должен обновляться, его не устраивает staleTime: Infinity, при этом API эндпоинт один.
Аноним 13/10/24 Вск 23:45:45 3297402 281
Аноним 13/10/24 Вск 23:47:15 3297403 282
>>3297402
Перепутал местами компонент А с компонент Б, но суть ясна, у одно из компонентов специфично заданный staleTime, у другого дефолтный для всего клиента.
Аноним 14/10/24 Пнд 02:58:04 3297440 283
>>3297283
Я в 12 году был в 4 классе
Что ты тут делаешь дяденька
Аноним 14/10/24 Пнд 08:08:33 3297487 284
Что правильнее с точки зрения чистоты кода:
указывать что конкретно импортируешь или импортировать все как объект?
В учебнике по js говорят, что первый вариант, книги по шаблонам проектирования от O'Reilly говорит, что второй.
Аноним 14/10/24 Пнд 08:17:36 3297491 285
>>3297402
retryDelay и подобные настройки принимают только синхронные функции, что будешь делать когда это решение нужно принимать асинхронно или ретраить после завершения другой асинхронной операции?
Аноним 14/10/24 Пнд 08:49:08 3297507 286
>>3297487
Отдельно, иначе у тебя оптимизатор билда не будет отбрасывать код который ты никогда не используешь.
Аноним 14/10/24 Пнд 09:00:04 3297520 287
Аноним 14/10/24 Пнд 09:31:33 3297542 288
>>3297520
И как ты это в retryDelay использовать собрался?
Аноним 14/10/24 Пнд 10:25:04 3297576 289
>>3297542
У тебя всегда синхронно есть и текущий статус и результат первой query. Тут не нужен никакой асинхронный retryDelay.
В любом случае сложной логики ты всегда можешь сделать ретрай в эффекте или засунуть асинхронную функцию в сам запрос и творить с ней любую дичь, хоть дрочить внутри миллионы запросов на миллионы разных ручек, тот же пайп от rxjs засунуть если тебе с этим работать привычнее. Сколько у тебя таких случаев на проекте от всей логики запросов? 0%? 1%? Остальные 99% случаев покрывает базовый апи tanstack(из них большинство это просто дернул ручку, отобразил загрузку или оптимистик, получил ответ). Именно поэтому он сделан так как сделан, чтобы не ебать себе мозги в типовых ситуациях.
Это примерно как доебаться что в setState() нельзя закинуть асинхронную функцию в виде инициализатора, ахуй просто с твоих маневров.
Мне сдается что ты сам не пробовал работать с подобной либой - хотя бы пару месяцев и ты свой бойлерплейт и "архитектуру" забудешь сразу как страшный сон, а для единичных сложных мест никто не запрещает тебе организовать и обработать поведение так как хочется.
Аноним 14/10/24 Пнд 11:25:36 3297648 290
Почему в мире js все такое все глючное? Ставишь юнит тесты, они через жопу с модулями работают. Заявлены тесты в браузере, нефига не работают. Другую либу вообще непонятно как запускать, то есть даже в доке нет инфы, зато портянка тупых примеров с excpect().toBe().
При этом npm ставит под тысячи пакетов, но удаляет только половину или треть.

Ппц, даже в мире пхп было 15 лет назад все более надежно и вообще как минимум работало.
Аноним 14/10/24 Пнд 11:33:33 3297655 291
>>3297648
Как заплачено, так и захуячено.
Думаешь мы тут жопу рвём за сотыгу.
Аноним 14/10/24 Пнд 12:09:32 3297669 292
>>3297576
>в любом случае можно накостылить

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

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

Т. е. ретрай запроса только после релогина пользователя - это не типовой случай? Хорошие маневры, но я так и не понял, как это влияет на то что выбор нужно делать в пользу гибких и общих инструментов типа rxjs, а не узконаправленных типа твоего тенсасака, который еще и костылями подпирать надо.
Аноним 14/10/24 Пнд 12:48:15 3297710 293
>>3297655
заплатили
@
все равно нахуевертили
@
js проектировался не для верчения деревьями, а для верчения на хуях снежинками хомепейджа на НГ
Аноним 14/10/24 Пнд 12:57:34 3297725 294
>>3297491
>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']) })
Аноним 14/10/24 Пнд 13:03:30 3297734 295
image.png 16Кб, 214x406
214x406
>>3297669
>общих инструментов типа rxjs
Да, такой общий, что кроме как ангуляра его никгде не видно.
>узконаправленных типа твоего тенсасака
Дружище, ты решил переключиться на толстоту?
Аноним 14/10/24 Пнд 13:16:48 3297751 296
>>3297734
>Да, такой общий, что кроме как ангуляра его никгде не видно.
На бекенде его любят некоторые, особенно с нестом. С ангуляром он напрямую не связан. И вообще это часть большой системы https://reactivex.io/

мимо
Аноним 14/10/24 Пнд 13:22:18 3297761 297
>>3297751
Знаю, но речь про фронтенд же. Я как раз изначально спросил его, не джава-скуфидон ли он, а то они часто очень любят реактивное погромирование.
Аноним 14/10/24 Пнд 13:24:17 3297764 298
>>3297648
Ты чем то мне напомнил этого чела
https://www.youtube.com/watch?v=XAGCULPO_DE
Уверен что ты читал доку жопой или по диагонали
>Ставишь юнит тесты
Что именно ты ставил? Опиши проблему, может поможем
Аноним 14/10/24 Пнд 13:46:09 3297783 299
>>3297669
>Т. е. ретрай запроса только после релогина пользователя - это не типовой случай?
а retryDelay тут при чем? ты даже из названия что ли не понимаешь нахуя она нужна? это блять задержка при ошибке, а для повторного запроса у тебя есть refetch, который как раз и возвращает промис, на случай если тебе его руками захочется обработать или куда то передать
залогинился - дернул refetch() или queryClient.fetchQuery, если в сторе надо эти данные обрабатывать
разлогинился - дернул queryCache.clear или очистку стора
всё блять просто
Аноним 14/10/24 Пнд 13:58:38 3297805 300
>>3297734
И что ты этим списком сказать хотел? rxjs тоже в любом js фреймворке можно использовать, при этом не нужны разные имплементации со свистоперделками по типу твоего тесакквери, в этом и отличие инструмента общего назначения, от очередной лишней зависимости, которая еще и под разные фреймворки переписывалась. Даже страшно представить уровень поддержки этого дерьма.
Аноним 14/10/24 Пнд 14:00:46 3297807 301
>>3297783
У тебя ошибка будет 403, тебе нужно перезапросить авторизационный токен и после этого делать ретрай, поэтому и нужен retryDelay асинхронный, которого в твоем костыле нет.
Аноним 14/10/24 Пнд 14:16:48 3297822 302
>>3297807
new QueryClient({
queryCache: new QueryCache({
onError: (error) => {
if (error?.response?.status === 403) refreshAuthToken()
}
})
})
Аноним 14/10/24 Пнд 14:19:08 3297824 303
>>3297822
Так, а где ожидание получения токена перед ретраем? Токен в процессе получения, у тебя летят ретраи, как исправлять будешь, тенсасакер?
Аноним 14/10/24 Пнд 14:20:11 3297825 304
>>3297805
Зависимость не лишняя. У тебя + 1 зависимость в проекте из-за rxjs, у меня тоже всего лишь +1 из-за tanstack query. При этом я получаю весь нужный функционал из коробки, а ты пишешь васянские портняки, велосипеды и костыли вокруг rxjs. Если на мой проект придёт новый человек, но ему не нужно будет разбираться в костылях, он будет работат с либой, которую и так давно знает.
Аноним 14/10/24 Пнд 14:26:25 3297830 305
>>3297824
После условия добавить:
queryClient.invalidateQueries({ active: true })
Аноним 14/10/24 Пнд 14:29:45 3297834 306
>>3297830
И где в этом ожидание запроса токена? Как летели ретраи с апдейтами, так и будут лететь. Может цикл ебнуть с дерганием этого дерьма, хорошая идея?
Аноним 14/10/24 Пнд 14:34:10 3297841 307
>>3297807
Щас бы токены использовать в 2024 на фронте. И этот человек говорит об архитектуре какой то.

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

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

У apollo есть onError и подобие мидлвар,там это делается проще.
Аноним 14/10/24 Пнд 14:39:47 3297847 308
>>3297841
>все просто, затащим еще одну зависимость в виде Аксиос или аполло!

Все еще не костыль? Ок. В rxjs это делается добавлением в Пайпер одного оператора, помимо сервиса отвечающего за авторизацию, который при любом подходе нужен, при этом UI компоненты никак не задеваются.
Аноним 14/10/24 Пнд 15:25:05 3297893 309
carbon (2).png 621Кб, 4096x1936
4096x1936
>>3297847
>затащим еще одну зависимость в виде Аксиос или аполло!
Жопой читаешь? Аполло ты затащищь и так, если на проекте будет gql, это аналогичная reaсt-query либа, но заточенная под gql, в нем есть мидлвары и глобальный onError.
Аксиос тоже как пример привел. В любом случае в проекте будет какая то переиспользуемая дрисня над всеми запросами или как мидлвар.
И rxjs все ошибки за тебя не обработает тоже, тебе все равно придется их пропихивать по пайпам и где то обрабатывать в единой манере, а не писать на каждый запрос.

Еще раз: apollo≈reaсt-query≈swr != rxjs , тут нехуй даже сравнивать, они не взаимозаменяемы, абстракции разного уровня для разных целей, чтобы говорить о них в одном контексте. Это как сравнивать подводную лодку и топор(гыгы ебать вы тупые, вот я себе плот вырублю из пальм топором и буду так же плавать как вы на подводной лодке - мы тебя услышали)
Ты либо дурачка из себя строишь, либо не понимаешь нихуя о чем толкуешь.
Если тебе нравится писать свои велосипеды - пожалуйста. Но не надо подменять понятия и говорить что вот это настоящая АРХИТЕКТУРА, когда изначально и до сих пор речь шла лишь про инструменты.
Аноним 14/10/24 Пнд 16:13:41 3297980 310
Для SSR Next.js - стандарт? Не окунаться в него нет смысла?
Аноним 14/10/24 Пнд 16:18:08 3297988 311
>>3297980
Стандарт, но некст это кал полный. Ремикс чуть лучше, но тоже калом прямо смердит. В итоге самый норм вариант это либо полное отсутствие сср, либо свой велосипед поверх renderToPipeableStream
Аноним 14/10/24 Пнд 16:24:11 3298003 312
>>3297841
>то придется оборачивать каждый запрос
class Api {
async fetch(...) {
if(status === 403) {...}
}
}

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

мимо
Аноним 14/10/24 Пнд 16:34:55 3298016 313
>>3297297
>напиздев с три короба в резюме
А без этого никак?
Аноним 14/10/24 Пнд 16:37:44 3298021 314
>>3298016
>А без этого никак?
Слишком большой шанс вымереть, как вымерли честнозавры в позднем триасе. Их подвиг не забыт, но тем не менее.
Аноним 14/10/24 Пнд 16:45:26 3298033 315
>>3298021
Не люблю пиздеть, так что сперва попробую залететь вьюшником на пхп галеры в своем городе, а если не получится и меня проигнорят еще на этапе отклика, то походу без волчизма никак. Тебя без пиздежа в резюме на собесы хоть приглашали или ты сразу слету приписал себе пару лишних лет опыта?
Аноним 14/10/24 Пнд 16:47:57 3298040 316
>>3298033
Меня в 2023 не звали на 150к собесы с 2 годами опыта, как накрутил до 3х сразу залетел на 300к как раскаленный нож по маслу.
мимо
Аноним 14/10/24 Пнд 16:50:30 3298045 317
>>3298033
Не мог несколько месяцев поменять место в том году с 3-мя годами коммерции, пока не натянул петы на глобус как сову до 4-ёх.
Начали хотя бы звать, но отбривали ещё на скрининге по ожиданиям, а я уже даже просил как было. Вот и думой.

мимо
Аноним 14/10/24 Пнд 16:52:29 3298051 318
>>3298033
>Тебя без пиздежа в резюме на собесы хоть приглашали или ты сразу слету приписал себе пару лишних лет опыта?
Я не особо пиздел в резюме про опыт, скорее я пиздел про уровень владения тем-то и тем-то. Например, записал себя в фуллстеки, хотя на ноде делал всего лишь скрин-скрепер для одного агрегатора авиабилетов.
Аноним 14/10/24 Пнд 17:00:54 3298066 319
>>3297988
Вот нахуя велосипед писать когда тебе некст и ремикс готовое решение дают? Тебе платят за фичи или за написание велосипедов?
Аноним 14/10/24 Пнд 17:06:53 3298073 320
>>3298051
> Например, записал себя в фуллстеки, хотя на ноде делал всего лишь скрин-скрепер для одного агрегатора авиабилетов.
И что будешь делать если тебя кинут на проект где микросервисы с чистойархитектурой™ на несте с кэфкой и хитровыебанными sql запросами?
Аноним 14/10/24 Пнд 18:14:07 3298126 321
>>3298073
Разберусь на месте. Раньше так и делали, это в последнее время кабаны привыкли набирать тех, кто способен в первую минуту приступить к работе с низкого старта.
Имаджинируй в СССР сантехника, которому бы сказали "ваши 20 лет опыта это всё хорошо, но вот конкретно трубы такой марки вы не прокладывали, так что мы вам перезвоним по дисковому телефону".
Аноним 14/10/24 Пнд 18:17:32 3298130 322
>>3298126
Пока ты в этом калопроводе будешь разбираться пройдет дохуища времени, звучит как повод выкинуть на мороз
Аноним 14/10/24 Пнд 21:19:38 3298291 323
Вот есть два способа создать объект:
1) определить функцию f, вну ри которой будут всякие this, а потом делать new f()
2) описать класс.

Вопрос: как лучше поступить? Что будет более хорошим решением при создании объекта?
Аноним 14/10/24 Пнд 21:21:35 3298293 324
>>3298291
>Что будет более хорошим решением при создании объекта?
Функция, которая return {}
Аноним 14/10/24 Пнд 22:08:18 3298319 325
>>3298291
Слишком широкое понятие "объект".
Если тебе нужен словарь ключ-значение, это одно. Если экземпляр класса с методами - другое.
Аноним 14/10/24 Пнд 22:12:17 3298320 326
>>3298291
Если ты имеешь ввиду, стоит ли в 2к24 писать функции-фабрики, вызываемые через new, то не стоит, для этого придуман сахарок "class", который кроме прочего страхует от вызова без new.
Аноним 15/10/24 Втр 01:29:15 3298411 327
Что скажете насчёт feature sliced design?
С одной стороны я понимаю что структура папок должна брать за основу что то.
С другой стороны вся дока у них - это 3 странички описания общих концепций, которые в принципе не обьясняют смысла, пользы и мотивации предложенного подхода - просто делай так и все.
Все примеры напоминают хуево сделанный MVC, и разветвленный по 4-6 корневым папкам, при этом в каждом примере widgets и shared это основная помойка на половину кодбазы, где каждый кусок кода внезапно не подошёл под семантику фичи или сущности. Термина компонент вообще нет, и оглядки на композицию компонентов.
Не понятно почему у подхода за пару лет возникло уже 4 версии. Просчитались, но где?
Так же не слышал чтобы этот подход упоминался хоть как то на западе. Все мейнтейнеры в основном из СНГ, все доклады и статьи про этот подход тоже в основном из СНГ. Сложилось ощущение что в основном он нравится командам, занимающимся аутсурсом.
Аноним 15/10/24 Втр 02:21:38 3298422 328
>>3298411
Говнина, которая вносит 0 пользы и дохуя вреда. Баззворд, популярный у российских вкатунцов.
Аноним 15/10/24 Втр 06:32:18 3298444 329
>>3298411
Ты правильно мыслишь. Все эти базворды - мусор. Ты ищешь какой-то правильный способ писать код. Но его нет. Просто пиши, то, что тебе нужно. Со временем начнёшь видеть места, в которых ты делаешь несколько раз одно и то же, места в которых можно написать короче, инструменты, которые помогают делать, хорошие библиотеки, которые делают именно то, о чем ты только успел подумать, или к чему ты сам бы пришёл со временем и говняк, с кучей шизоконцепций

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

Из минусов - иногда ты всё же будешь неправ, и тебе пояснят за это, придётся извиниться, но со временем таких ситуаций будет меньше
Аноним 15/10/24 Втр 07:26:50 3298463 330
>>3298444
А что во фронтенде в принципе писали не идиоты? Ангуляр, солид, свелт? Vite, vitest, playwright, zustand какой-нибудь, socket.io неплох, хоть и очень стар, остальное всё какое-то через жопу...
Аноним 15/10/24 Втр 13:27:32 3298720 331
>>3297980
>Для SSR Next.js - стандарт? Не окунаться в него нет смысла?
Next - это не SSR.

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

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

>>3298411
>Что скажете насчёт feature sliced design?
Скажу так: открой мейнтейнеров этого говна. Там реальные школьники, у которых мышление "архитектура - это структура папок."
Аноним 15/10/24 Втр 16:55:34 3298931 332
>>3298720
>Next - это не SSR.
Его часто используют для SSR, он ведь предоставляет такой функционал.
Аноним 15/10/24 Втр 18:54:39 3299049 333
интересно чем вам fsd не нравится? это просто организация файлов. если я пишу свои файлы я просто перемещаюсь через Go to File и мне пох. но дока у них действительно говно на remix!!!
Аноним 15/10/24 Втр 19:13:23 3299068 334
>>3298931
>Его часто используют для SSR, он ведь предоставляет такой функционал.
Его используют для ISR
Аноним 15/10/24 Втр 19:23:08 3299093 335
Аноним 15/10/24 Втр 20:10:41 3299140 336
>>3298463
>socket.io неплох, хоть и очень стар
Просто сокет.ио больше не нужен. Он был хорош во времена жиквери, когда в разных браузерах всё работало по-разному. Вот там он действительно творил волшебство, автоматически фалбэкаясь с вебсокетов на флэш сокеты, с них на лонг поллинг, с него на аякс и с аякса на голубиную почту.
Аноним 15/10/24 Втр 20:23:27 3299157 337
>>3299140
Почему не нужен? Он до сих пор очень удобен, на беке удобные фичи из коробки.
Аноним 15/10/24 Втр 20:32:18 3299175 338
Моя галера обезумела. Она ищет себе фронтовичка на hh.ru за 70 к с 2 годами опыта (меня хайрили с 1.2 годами сразу на 110 к). Это как нахуй?
Аноним 15/10/24 Втр 20:36:23 3299181 339
>>3299175
Пузырь давно лопнул.
Аноним 15/10/24 Втр 20:38:35 3299183 340
Нашёл шаблон Docus для создания документации https://docus.dev/
>Write pages inMarkdown, useVuecomponents and enjoy the power ofNuxt.
Я понятия не имею, что такое vue и nuxt, но каким-то образом это собрал, запустил, даже смог подключить plotly и написать методом тыка vue-компоненты для их отображения (очень красиво).

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

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

я плюсовик, не бейте
Аноним 15/10/24 Втр 20:40:25 3299186 341
>>3299175
Тебе замену ищут, скоро на мороз пойдешь
Аноним 15/10/24 Втр 21:08:53 3299212 342
>>3299183
Скинь хотя бы код компонента в котором происходит перенос
Аноним 15/10/24 Втр 21:27:40 3299229 343
>>3299212
Так я не понимаю, как это вообще всё работает. Я в шоке, че там фронтендеры современные наворотили.
Аноним 15/10/24 Втр 21:51:19 3299243 344
>>3299229
Ну ты же пишешь:
>не получается сделать inline формулы, они всегда переносятся на новую строку
Зачит ты куда-то поместил эти формулы, где-то они находятся
Аноним 15/10/24 Втр 22:01:46 3299257 345
>>3299243
Там страницы документации просто в markdown пишутся. Формулы должны на $$ $$ подхватываться.
Аноним 15/10/24 Втр 22:34:13 3299278 346
>>3299183
>я плюсовик
>Мне просто нужно сделать красивые
Ловите самозванца!
Аноним 15/10/24 Втр 22:43:06 3299280 347
01.png 142Кб, 1364x329
1364x329
Офигеть, нашел сам методом тыка.

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

>>3299278
Я перфекционист пиздец. У меня до этого получилось другую библиотеку с формулами подгрузить, но там шрифты некрасивые лол.
Аноним 15/10/24 Втр 23:18:01 3299293 348
>>3299280
> Короче какой-то tailwind.css
triggered
Аноним 16/10/24 Срд 02:21:04 3299336 349
>>3299068
>не для ssr а для isr
Сорта одного говна. Главное что браузер получает готовую разметку.
Аноним 16/10/24 Срд 07:01:47 3299352 350
IMG202410160657[...].jpg 308Кб, 1080x1231
1080x1231
IMG202410160657[...].jpg 252Кб, 1080x1061
1080x1061
Я не понял автора.
Автор пишет, что первый код не очень, потому что каждый объект Car будет переопределять метод toString. Почему?
Я до этого читал учебник по JS и там говорилось, что все методы будут отправлены в прототип и когда происходит обращение к методу объекта, по факту идет обращение к методу прототипа. А тут автор во втором коде явно задает метод прототипу, хотя JS автоматически должен был его назначить.
Я читаю хуевую книгу или чего-то не знаю?
Аноним 16/10/24 Срд 07:22:46 3299358 351
Untitled.jpg 81Кб, 1068x610
1068x610
Аноним 16/10/24 Срд 07:33:45 3299361 352
>>3299352
>Я читаю хуевую книгу или чего-то не знаю?
Да. Тут или пример перепутан и в первом случае должен был быть код без классов на чистых прототипах, либо автор долбоеб. Про нюансы языка советую почитать лучше YDKJS https://github.com/azat-io/you-dont-know-js-ru
Аноним 16/10/24 Срд 07:41:46 3299365 353
>>3299361
Хорошо, спасибо за книгу.
Я сейчас пытаюсь сделать обзор анти-паттернов в JS и вот в поиске материала, потому что чувствую, что пишу говнокод и хочу исправиться.
Аноним 16/10/24 Срд 09:22:53 3299407 354
Аноним 16/10/24 Срд 12:31:12 3299620 355
Почему жопоскрипшики перепутали местами from ... import ...?
Аноним 16/10/24 Срд 12:44:45 3299633 356
>>3299620
Наоборот питухонщики попутали. "Импорт из" звучит логичнее чем "из импорт".
Аноним 16/10/24 Срд 13:09:56 3299670 357
>>3299633
Ага сначала пишешь что хочешь импортировать, а потом откуда, лол. Конечно, тулинг подогнали под кривизну, и он просто подсвечивает популярные базворды, но прикинь как работало, если сначала писали пакет, а потом уже из пакета была подсветка именно того апи, который есть в текущем пакете, а не пачки базвордов со всех концов.
Аноним 16/10/24 Срд 13:35:39 3299697 358
>>3299670
Чел, никто импорты вручную не пишет, вскод автоимпортит всё что угодно.
Аноним 16/10/24 Срд 13:39:10 3299706 359
>>3299352
>functions are redefined for each new object
Это какой-то bullshit, можешь передать автору please learn джаваскрипт.
Аноним 16/10/24 Срд 13:41:15 3299708 360
>>3299697
>вскод
почему не вебшторм
Аноним 16/10/24 Срд 14:12:44 3299747 361
>>3299352
>Автор пишет, что первый код не очень, потому что каждый объект Car будет переопределять метод toString
Автор в принципе не очень понимает, что он пишет. Инкапсуляцию предоставляют и литералы объектов, классы для этого не нужны. Наследования в JS нет вообще. А методы не переопределяются для каждого экземпляра, именно для избежания ебки с прототипом функции-конструктора классы и ввели.
Аноним 16/10/24 Срд 14:36:43 3299776 362
>>3299280
>"деббагер" для фронтендера это инструменты разработчика в браузере
Что значат эти кавычки?
Вообще-то у фронтендера есть дебагер для javascript кода, а не только общие девтулзы
Аноним 16/10/24 Срд 15:06:44 3299813 363
Аноним 16/10/24 Срд 16:49:45 3299896 364
https://youtu.be/3fDRrOHIDiI?si=dnr1C-CF1Z1uexll
Вот случайно наткнулся на свежий доклад об истории успеха внедрения react-query на одном из сервисов Яндекса. Адептам ебки с rxjs и любителям все пихать в глобальный стейт обязательно к просмотру.
Аноним 16/10/24 Срд 17:03:43 3299910 365
Умею в ТС, но не знаю за правила его использования в проде. В том смысле, что не знаю когда использовать тип а когда интерфейс, где типы хранить (если они не создаются сразу в orm какой-нибудь, а ручками прописываем что с бэка получаем) и т.д. Дайте пару основополагающих штук, которых точно стоит придерживаться в тсе.

Или все зависит от галеры в которой работаю и никаких стандартов нет?
Аноним 16/10/24 Срд 18:29:13 3299997 366
>>3299896
А если нет в доступе дюжины анальников и неограниченного бюджета?
Аноним 16/10/24 Срд 19:09:57 3300029 367
>>3299776
Я без негатива. Просто для меня дебагер это когда вместе с программой идешь по исполняемому коду и следишь за состоянием. Думал, может есть какое-то слово для описания процесса, когда пытаешься декодировать иерархию стилей и выяснить, откуда лишние три пикселя margin у элемента.
Аноним 16/10/24 Срд 19:13:47 3300031 368
>>3299910
>что не знаю когда использовать тип а когда интерфейс
Типами делаешь ток словари ключ-значение с определённым набором полей. Всё, что инстанциируется, делаешь интерфейсами. На каждый класс хуяришь интерфейс как джавапидоры делают и в сигнатурах везде пишешь интерфейсы и нигде не пишешь классы напрямую (кроме new). Гугли SOLID, короче.
Аноним 16/10/24 Срд 19:17:23 3300035 369
>>3299776
>дебагер для javascript кода
А где-то вообще есть дебагер для жопаскрипт-кода, который выглядит как дебагер, типа перлового/питонового, а не как говно для хипстеров с вебвью?
Аноним 16/10/24 Срд 19:32:23 3300050 370
>>3299997
Тогда тем более нужно брать готовое решение в виде react query, потому что велосипеды над rxjs пилить некогда, да и знание rxjs далеко не у всех есть, нахуй кому нужна эта борщехлёбская фп-шиза в 2024, тем более во фронтенде.
Аноним 16/10/24 Срд 19:40:29 3300057 371
>>3299407
Откуда вы узнали про этот сайт?
Аноним 16/10/24 Срд 19:55:13 3300068 372
>>3300057
Так он первый в гугле выходит когда гуглишь паттерны проектирования
Аноним 16/10/24 Срд 20:18:09 3300085 373
>>3299670
>сначала пишешь что хочешь импортировать
Оба подхода говно. Самый близкий к нормальному подход в C++, где есть инклюды и не надо руками прописывать, какую ты хочешь функцию

А норм подход, когда сборщик сам понимает, что откуда брать и ругается, только когда есть два и более вариантов, никто не сделал
Аноним 16/10/24 Срд 20:20:15 3300086 374
Аноним 16/10/24 Срд 20:21:36 3300087 375
>>3299910
Что за хуйню я прочитал?

Мимо, умею в готовку, но не знаю, как нагреть сковородку
Аноним 16/10/24 Срд 20:27:05 3300090 376
>>3300031
Спасибо!

>>3300087
Это ничего, но если ты будешь отвечать на все вопросы, которые не можешь понять, ничем хорошим это не закончится.
Аноним 16/10/24 Срд 20:27:31 3300091 377
>>3300086
Что голанг, дарт? Там нет этого
Аноним 16/10/24 Срд 20:29:51 3300093 378
>>3300090
Критерии понимания в студию
Аноним 16/10/24 Срд 20:35:47 3300095 379
>>3300091
Там нет заголовочных файлов. Но там импортится модуль, а не отдельные функции и структуры
Аноним 16/10/24 Срд 20:44:02 3300098 380
>>3300085
> никто не сделал
Было в D.
Аноним 16/10/24 Срд 21:05:12 3300113 381
1629558059648.PNG 34Кб, 615x529
615x529
Не нашел css тред, спрошу тут. Как сделать align для элементов формы, чтобы было как на рисунке? Чтобы прилипли к краям вправо и влево.
Понимаю, что днищевопрос, но я нубас и только начал все изучать.
Аноним 16/10/24 Срд 21:55:53 3300133 382
>>3300113
Дай ссылку на макет, тоже хочу поупражняться в верстке

мимо другой вкатун
Аноним 16/10/24 Срд 22:12:28 3300144 383
>>3300057
Проходил собес в одну компанию, собеседующий посоветовал после провального собеса.
Аноним 16/10/24 Срд 22:24:54 3300153 384
Аноним 16/10/24 Срд 22:47:20 3300163 385
Всем привет. Есть вопрос по казалось бы простой, но чето нихуя не понятной теме.
Суть - есть обс, из него льется rtmp стрим видео. Льется он в node-media-server. Потом на клиенте стрим открывается в ffplay и все работает.

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

Вопрос - чем это правильно делается? Чтобы стрим из node-media-server показать в браузере. Я аникейщик, если что, все это на линуксе, знаю про npm, копнуть в жаваскрипт тоже при необходимости могу, но не глубоко. Еще момент - хотелось бы обойтись без всяких докеров и прочего. Сервер уже в вм крутится, уходить за пределы этой вм очень не хочется.
Аноним 16/10/24 Срд 22:56:32 3300170 386
Аноним 16/10/24 Срд 23:03:55 3300171 387
Вышла нода 23.0 революции не случилось.Ничего интерсного
>>3300153
Или гриды
Аноним 16/10/24 Срд 23:49:40 3300185 388
>>3300170
Охуеть, работает. Спасибо.
Аноним 17/10/24 Чтв 00:01:48 3300193 389
>>3300171
Если не ошибаюсь у них большие фичи выкатывают именно в чётных версиях
Аноним 17/10/24 Чтв 00:22:06 3300205 390
>>3299352
Автор дурак, который не разобрался, как работает кейворд "class" в JS. Его и ввели, чтобы вручную прототипами не жонглировать, бля.
Аноним 17/10/24 Чтв 04:00:47 3300236 391
>>3299997
Там нет дюжины анальников. Средний проект на 200к строк и команда из 3 фронтов, об этом в начале доклада говорится. Ты ведь даже не смотрел, но уже выдумываешь контрвспуки?
Аноним 17/10/24 Чтв 11:11:45 3300412 392
Я даже не знал, что в JS есть ||= и ??=
О назначении догадайтесь сами.
Аноним 17/10/24 Чтв 11:49:50 3300449 393
image.png 7Кб, 286x156
286x156
Аноним 17/10/24 Чтв 12:10:29 3300470 394
>>3300449
Это вроде еще не приняли
Аноним 17/10/24 Чтв 12:12:41 3300472 395
>>3300449
Это че за хуйня? Где почитать?
Аноним 17/10/24 Чтв 12:18:36 3300481 396
Аноним 17/10/24 Чтв 13:28:03 3300578 397
Аноним 17/10/24 Чтв 14:56:35 3300622 398
>>3300470
>Это вроде еще не приняли
И слава богу. Нахуя этот фп-сахар тащить в язык без остальных примитивов фп - не понятно.
Оператор так же неудобно набирать с клавиатуры(возможно дело привычки).
Не удивлюсь если эта хуйня еще и с JSX клнфликтовать начнет при разборе AST. Как в TSX например приходится запятую добавлять после дженериков.
Аноним 17/10/24 Чтв 15:25:32 3300643 399
Мне нравится как в Луа: сидит Роберто в своей Бразилии, чешет затылок. Хуяк - брекинг ченжд в версии 5.3. Хуяк - отмена брекинг ченджа в версии 5.4.
Опытные просто сидят на 5.1 и зоонаблюдают за всем этим.
Аноним 17/10/24 Чтв 15:39:19 3300652 400
>>3300643
>Роберто
Твой протык?
Аноним 17/10/24 Чтв 16:30:24 3300715 401
Аноним 17/10/24 Чтв 16:40:18 3300732 402
Я уж испугался, что там какая-то нативная тайпскрипт-машина, а они там просто типы обрезают из коробки, ну кул.
Аноним 17/10/24 Чтв 19:24:42 3300857 403
Аноним 17/10/24 Чтв 19:25:35 3300859 404
>>3300153
Типа включить флекс врап, чтоб они были с переносом на новую строку, а элайн через justify content?
Аноним 17/10/24 Чтв 20:24:10 3300893 405
Screenshot 2024[...].png 67Кб, 624x676
624x676
>>3294032
Тем, что с интерфейсами можно делать такие приколы
Аноним 17/10/24 Чтв 20:37:59 3300905 406
>>3300893
Это типа расширение такое? Без всякого дополнительного кейворда? Херовато выглядит. А если надо переопределить?
Аноним 17/10/24 Чтв 20:48:49 3300913 407
>>3300905
Создай с другим именем,
interface Anon2 extends Anon {}
export { Anon2 as Anon }

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


мимо
Аноним 17/10/24 Чтв 20:53:03 3300916 408
>>3300913
Или если под переопределением ты понимаешь не наследование, а создание нового с такм же имнем
то просто определи и экспортируй Anon в новом файле или в том же файле в другм неймспейсе
Аноним 17/10/24 Чтв 21:26:03 3300928 409
>>3300859
Нахуя флекс врап бестолочь?
Аноним 17/10/24 Чтв 21:29:43 3300929 410
нормально ли называть интерфейсы/типы точно так же как встроенные, если эти встроенные не используются?
Аноним 17/10/24 Чтв 21:30:52 3300930 411
Аноним 17/10/24 Чтв 21:43:13 3300935 412
>>3300928
А как сделать без него, чтоб First name и Last name вдвоем в одной строке были? И Email с Phone.
Аноним 17/10/24 Чтв 22:01:12 3300950 413
>>3300935
flex-wrap нужен для того чтобы дети внутри флекс-родителя могли переноситься на вторую строку. А установка нескольких элементов на одной строке это дефолт поведение флекса.
Аноним 17/10/24 Чтв 22:03:17 3300952 414
>>3300950
Если просто флекс сделать, то все 5 элементов в одну строку поставятся.
Аноним 17/10/24 Чтв 23:07:36 3300986 415
Какие советы дадите по минимальной потере производительности кода на JS при использовании WebGL/WebGPU?
Аноним 17/10/24 Чтв 23:09:59 3300987 416
Если у тебя не ряд / столбец, а что-то двумерное, то флексбокс уже не оптимальный вариант. Либо разобраться с гридами, либо разбить на более простые блоки, хоть тех же флексбоксов.
Аноним 18/10/24 Птн 01:00:17 3301038 417
>>3300952
Так сделай эти элементы по 50%, и flex-wrap на родителя, по итогу они будут падать вниз по два элемента на строку. Лучше бы гриды освоил. Там это проще.
Аноним 18/10/24 Птн 08:36:51 3301195 418
>>3294032
Интерфейс менее выразителен, чем тип, тип это супер сет интерфейса.
Аноним 18/10/24 Птн 08:38:58 3301198 419
>>3301038
Надо не флексы и грибы осваивать, а умение комбинировать элементы по контейнерам
Аноним 18/10/24 Птн 08:45:53 3301204 420
image.png 52Кб, 1187x556
1187x556
Достойно отдельного npm-пакета с миллионом скачиваний в неделю?
Аноним 18/10/24 Птн 09:18:16 3301220 421
>>3301204
Ни под одно определение пакета не подходит
Аноним 18/10/24 Птн 09:31:16 3301227 422
Аноним 18/10/24 Птн 11:36:05 3301327 423
>>3301204
какую проблему решает?
Аноним 18/10/24 Птн 11:57:10 3301354 424
>>3301327
Сам видишь, какую. Обеспечивает единообразный перебор пяти разных типов.
Аноним 18/10/24 Птн 13:48:52 3301469 425
>>3301354
Нихуя, круто. Зачем это использовать на проде, где уже есть форматирование в сентри?
Аноним 18/10/24 Птн 14:51:40 3301539 426
8JNKGCIyOsE5rCn[...].jpg 244Кб, 1920x1080
1920x1080
Тебе замену ищут, скоро на мороз пойдешь
Аноним 18/10/24 Птн 14:55:53 3301544 427
>>3301354
Шизоид изобрел console.table
Аноним 18/10/24 Птн 15:12:14 3301570 428
>>3301204
не сработает, если в родительском окне заллогировать что-либо из фрейма. Переделывай.
Аноним 18/10/24 Птн 15:22:35 3301582 429
>>3300857
в 2к25 кто-то все еще пользуется фотошопом вместо фигмы?
Аноним 18/10/24 Птн 17:39:06 3301685 430
>>3301227
Да, на момент создания это было удобным и надежным способом для проверки на число, сейчас это легаси которое тянется от других пакетов.
Аноним 18/10/24 Птн 18:06:20 3301709 431
>>3300905
Тогда используй type.
Интерфейсы нужны именно для того, чтобы их вот так расширять. Например, когда хочешь добавить переменные окружения в import.meta.env
Или новый метод в String.prototype
Аноним 18/10/24 Птн 18:13:51 3301719 432
>>3301709
>Например, когда хочешь добавить переменные окружения в import.meta.env
Точно такое же сработает и с типами, интерфейс тут не критичен
>Или новый метод в String.prototype
За такое бьют по рукам еще со времен, когда тайпскрипта не было.
Аноним 18/10/24 Птн 18:15:32 3301724 433
В жс 2025 просто обязаны быть декораторы
Аноним 18/10/24 Птн 18:16:08 3301726 434
>>3301724
все похуй, кто хочет уже давно их использует через бабель или аналоги
Аноним 18/10/24 Птн 18:21:35 3301732 435
>>3301719
>Точно такое же сработает и с типами, интерфейс тут не критичен
Не сработает, у import.meta.env уже определён интерфейс, и ты можешь его только расширить. А был бы определён тип - ты бы никак не мог его поменять
Аноним 18/10/24 Птн 18:24:05 3301736 436
>>3301732
>import.meta.env
Это я на примере Vite говорю
Аноним 18/10/24 Птн 18:30:35 3301743 437
skoof.png 352Кб, 457x600
457x600
Где и как храните строковые константы (в случае SPA на реакте) и храните ли вообще?

Речь о всяких "Принять", "Отмена", "Вы уверены, что вы хотите продолжить без сохранения?". В общем любых текстах, что у вас на страницах приложения
Аноним 18/10/24 Птн 18:31:44 3301745 438
Аноним 18/10/24 Птн 18:33:42 3301747 439
>>3301745
У вас локализация есть?

Вообще насколько это ок практика так делать (хранить строковые константы в одном месте)?
Аноним 18/10/24 Птн 18:38:33 3301753 440
>>3301747
>У вас локализация есть?
На 20 языков.
>Вообще насколько это ок практика так делать (хранить строковые константы в одном месте)?
Вообще подобные константы у нас хранятся в отдельном сервисе с гуем для переводчиков и мы их по api получаем. Но если у тебя сервис на один язык и гарантируется, что он не будет интернационализироваться - можешь на похуях прямо в компоненте хардкодить.
Аноним 18/10/24 Птн 18:47:06 3301759 441
>>3301753
>На 20 языков.
rtl поддерживаете?
отдельный набор стилей под это имеете?
Аноним 18/10/24 Птн 18:51:02 3301762 442
>>3301753
А если я малограмотный, и в 10 местах напишу фразу без ошибок а в других 10 местах ту же фразу с ошибкой? Не проще ли будет в одном месте отловить такой расклад?
Аноним 18/10/24 Птн 18:53:17 3301764 443
>>3300986
поменьше вычислений
Аноним 18/10/24 Птн 18:56:29 3301765 444
>>3301759
>rtl поддерживаете?
Да
>отдельный набор стилей под это имеете?
Нет, просто селектор html[dir=rtl] & {...}, и чанк со стилями грузим асинхронном поверх основного. На арабов похуй абсолютно, пусть терпят, один хуй бабла не так много приносят что бы с ними ебаться
>>3301762
>А если я малограмотный, и в 10 местах напишу фразу без ошибок а в других 10 местах ту же фразу с ошибкой?
Курсы грамотности стоят не так дорого. Плагин для IDE, чекающий грамматику - того дешевле. А еще на проекте должны быть QA.
Аноним 18/10/24 Птн 19:02:22 3301767 445
>>3301743
Да как и везде:
Если используешь 1 раз, то хардкодишь, если больше, то выносишь в отдельную константу
Аноним 18/10/24 Птн 19:03:11 3301768 446
>>3301765
Денег нет на курсы, а QA проебались, например, или сами малограмотные?

Не нарушает ли такой хардкод строк принцип не повторения? Нахуя например мне харкодить из раза в раз "Принять" или "Отменить"?
Аноним 18/10/24 Птн 19:04:27 3301770 447
>>3301767
Что у вас юзается для работы с такими константами? Что юзаете чтобы склонять слова по числам? (одно яблоко, 2 яблока, 5 яблок)
Аноним 18/10/24 Птн 19:06:11 3301772 448
>>3300113
родительский <form>, внутри три <div>
в первом <div> имя, фамилия, во втором email, телефон, в третьем сообщение
input, textarea {width: 100%}
div {display: flex; gap: 37px;}
div+div {margin-top: 19px;}
Аноним 18/10/24 Птн 19:10:46 3301781 449
>>3301765
>Да
респект
>Нет
казуальщики
Аноним 18/10/24 Птн 19:16:56 3301790 450
>>3301762
Они в одном месте и отловятся - на сервере с переводами
Аноним 18/10/24 Птн 19:23:06 3301792 451
>>3301790
У нас нет сервера с переводами. У нас вообще один язык. Чо делать?
Аноним 18/10/24 Птн 19:33:09 3301795 452
>>3301764
Модули с прототайпами вместо классов, Float32Array, и массивы vec3[3] вместо vec3 {x,y,z}?
Аноним 18/10/24 Птн 19:55:02 3301808 453
>>3301795
>vec3[3] вместо vec3 {x,y,z}
это вроде не js
Аноним 18/10/24 Птн 20:01:43 3301812 454
>>3301743
Речь о всяких "Принять", "Отмена"
если у вас один язык, вообще не парься, хардкодь в шаблонах
>>3301762
>А если я малограмотный
придёт тестер, даст по башке, один раз исправишь и всё, это нормально, не парься
Аноним 18/10/24 Птн 20:27:42 3301826 455
>>3301808
Я об этом {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}
}
}
Аноним 18/10/24 Птн 21:29:22 3301848 456
rainb-w.webm 3979Кб, 1280x720, 00:01:09
1280x720
rainb-w-o.webm 15815Кб, 1281x720, 00:01:44
1281x720
wobs-w.webm 144Кб, 1280x720, 00:00:01
1280x720
webgl
Аноним 18/10/24 Птн 21:31:51 3301850 457
>>3301724
юзкейс декораторов в JS давай
Аноним 18/10/24 Птн 21:50:28 3301856 458
>>3301850
Для функций мемоизация вычислений например.

Что-то больше ничего адекватного и потенциально полезного в любом коде не придумывается.
Аноним 18/10/24 Птн 22:17:51 3301873 459
20241018.png 10Кб, 309x131
309x131
Сап.
Помоги с парсингом странички.
Есть один сайт, по сути это лента постов. богомерзкий https://pikabu.ru/ , еслишто
Под каждым постом прикручен счетчик реакций пользователей.
При нажатии на кнопку "эмоции" появляется менюшка со значениями счетчиком - пикрелейтед.
Посмотрел код страницы - счетчиков нет. При нажатии кнопки динамически добавляется новый объект.
Посмотрел через браузерный Dev-tool в Network - при нажатии на кнопку есть только запросы к яндексу(статистика, вестимо).
Поискал класс кнопки в сорцах - нашел пару вхождений, но толку не дал.
Помоги, анон. Как это работает? Как это парсить?
Аноним 18/10/24 Птн 22:22:52 3301876 460
>>3301826
> 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
}
}
Аноним 18/10/24 Птн 22:24:23 3301877 461
Аноним 18/10/24 Птн 22:28:31 3301878 462
>>3301873
>Как это работает?
по нажатию "Эмоции" в dom добавляется .popup .popup_animate .popup_show с эмоциями
>Как это парсить?
триггерить нажатие на "Эмоции", ждать, пока отработает js, добавляющий попап, парсить попап

зачем парсить пикабу?
Аноним 18/10/24 Птн 22:29:48 3301879 463
>>3301878
>>3301877
В голос с макак, которые разворачивают браузер для того чтобы каунтеры получить.
Аноним 18/10/24 Птн 22:31:01 3301882 464
>>3301873
Подрочи сетевые запросы, может это жсоном приходит.
Аноним 18/10/24 Птн 22:32:06 3301883 465
>>3301879
кукарекая - предлагай
Аноним 18/10/24 Птн 22:34:09 3301884 466
Аноним 18/10/24 Птн 22:34:13 3301885 467
>>3301883
что тебе предлагать, для тебя страница в браузере это какая-то магия, тут предложения бессильны, иначе даунов уже давно бы гениями сделали.
Аноним 18/10/24 Птн 22:34:21 3301886 468
>>3301878
>>триггерить нажатие на "Эмоции", ждать, пока отработает js, добавляющий попап, парсить попап
Цель - спарсить счетчики для условных 100 постов. В автоматическом режиме.
Нужно понять механизм получения счетчиков браузером с сайта чтобы потом использовать этот механизм/запрос напрямую из кода парсера.

>>3301882
>Подрочи сетевые запросы
Не, я конечно понюхал вирешарком.
Но тут httpS, ничего не видно же.
Аноним 18/10/24 Птн 22:36:34 3301888 469
>>3301886
>Нужно понять механизм получения счетчиков браузером с сайта чтобы потом использовать этот механизм/запрос напрямую из кода парсера.

Ну вот ты и ответил на свой вопрос, от нас что нужно? Исполнителей среди фрилансеров ищи
Аноним 18/10/24 Птн 22:50:01 3301899 470
>>3301888
>Исполнителей среди фрилансеров ищи
Справедливо.
С одной стороны.
А другой стороны, я же не парсер прошу, а направление куда можно копать чтобы разобраться как оно работает.
Это я с веб технологиями не очень и для меня это долго/сложно, но вы то мастера, вам такие вещи выяснить - 2 минуты посмотреть.
Аноним 18/10/24 Птн 22:51:02 3301901 471
Кто-нибудь слышал вообще про фронтендеров которые зарабатывают 450к+? Я не иронизирую. Вот прямо именно фронтенд, не фуллстек? Не техлид по совместительству. Чтобы человек узко специализировался в нем? Возможно он знает остальные технологии, но туда не лезет из принципа... Тут вообще есть такие зарплаты в российских конторах? Про валютную удаленку речь пока не идет (мне чисто сориентироваться относительно всего рынка внутри РФ). Может у вас знакомые есть такие или вы слышали про кого-то конкретного?
Аноним 18/10/24 Птн 22:53:41 3301905 472
>>3301848
На вебгл работы нет. Вакухи зарабатывают меньше среднего реактера раза в 1.5. Если честно, я охуел от такого расклада.
Аноним 18/10/24 Птн 22:56:44 3301907 473
Аноним 18/10/24 Птн 23:00:59 3301913 474
Аноним 18/10/24 Птн 23:35:28 3301943 475
>>3301856
Я вот посмотрел пропозал с декораторами - почти ничего не понял из той переусложнённой дичи. Короче, если примут, это будет ещё один yield, которым никто не пользуется, но которым валят на собесах.
Аноним 18/10/24 Птн 23:40:06 3301944 476
>>3301901
Я на фулстэк вот перекатываюсь с фронта, в понедельник первый день. Закупился книгами по ноде. У фронтов на мой взгляд и конкуренция выше, и зепки ниже, и эйджизм самый жёсткий. После 35 актуально.
Аноним 18/10/24 Птн 23:44:44 3301946 477
>>3301905
Так а че ты собрался на вебгл делать из серьёзного? С вебгл во-первых без обёрток никто не работает, нужен трижс или бабилон. И нужна видимо игровая контора, которой бы приспичило делать браузерное 3д.
Аноним 19/10/24 Суб 00:06:35 3301963 478
>>3301876
Ты предлагаешь каждый раз указывать первый вектор-слагаемое отдельным вызовом? А зачем?

А если мне нужно несколько разных пар векторов сложить?
Аноним 19/10/24 Суб 00:50:42 3301989 479
>>3301879
>>3301885
Проще Puppeteer/Playwright взять и не тратить лишнее время
Аноним 19/10/24 Суб 01:00:50 3301994 480
>>3301901
это что ж за проект такой был, чтобы разраб за 450 окупался? не важно, фронт, бэк, хуек
Аноним 19/10/24 Суб 01:03:25 3301998 481
>>3301994
то есть разраб работает месяц, и это приносит конторе больше 450к... ну я хз...
Аноним 19/10/24 Суб 02:17:04 3302031 482
>>3301994
Любой финтех или диджитал. В том же сбере в мск сеньки как раз под 450 и имеют. Что тебя удивляет, вкатунчик?
Аноним 19/10/24 Суб 02:36:56 3302037 483
>>3302031
Че за проходки во вкатунцы? Зачем?

>В том же сбере в мск сеньки как раз под 450 и имеют
Это точно не фуллстек, когда они и ноды настраивают и фронт пилят?
Аноним 19/10/24 Суб 02:38:22 3302038 484
>>3301944
>эйджизм
Факты, факты, факты...?
Аноним 19/10/24 Суб 03:22:04 3302042 485
>>3302037
> когда они и ноды настраивают и фронт пилят
Что за "ноды"? 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
Аноним 19/10/24 Суб 04:03:06 3302051 486
>>3302042
>хотя бы чтобы сборку настроить
Нет, я имею ввиду что ты будешь бекенд ковырять "ведь язык-то один"...

>Где ты тут видишь какие то требования не релевантные фронтам?
Я там и зарплат не вижу.
Говорят в сбере топ синьора 350к.
Аноним 19/10/24 Суб 04:53:38 3302055 487
>>3302051
>Говорят в сбере топ синьора 350к.
На позиции в мухосрани - да. В МСК позициями по 450к еще год назад было мало кого удивить.
>Нет, я имею ввиду что ты будешь бекенд ковырять "ведь язык-то один"...
Ну так сходи, пособеседуйся и спроси. Там даже можно по этим ссылкам напрямую тимлиду в телегу написать, лол. Так и спроси у него "надо ли мне будет ковырять бекенд на ноде на этой позиции?"
Бэкенд на ноде это не то чтобы в целом популярная история. Да и большинство такого бекенда это BFF где просто json'ы перекладывать с разных ручек в ответ и SSR обеспечивать. Так что даже статистически нарваться на такие требования и обязанности меньше, более того - к окладу это имеет отношение довольно опосредованное.
Аноним 19/10/24 Суб 05:12:30 3302058 488
>>3302038
Сам поймёшь, когда тебе будут прилетать автоматические отказы на 2 из 3 вакансий при полном совпадении твоего резюме и требуемых скилов.
Аноним 19/10/24 Суб 06:32:01 3302069 489
>>3301963
Делаешь инстанс на каждый вектор и складываешь.
Аноним 19/10/24 Суб 06:36:52 3302072 490
>>3302069
Это нормально вообще?
Аноним 19/10/24 Суб 06:38:02 3302073 491
Аноним 19/10/24 Суб 07:08:43 3302075 492
>>3301989
Мне хватило пары минут для того чтобы понять источник каунтеров, пока ты это дерьмо разворачивать будешь, я уже спаршу весь пикабу
Аноним 19/10/24 Суб 07:11:17 3302076 493
>>3301994
>получает 300к что на уровне мексиканки-уборщицы в штатах, если не считать чаевые
>не может программист за месяц столько прибыли приносить, не-мо-жет

В голос с раба
Аноним 19/10/24 Суб 07:28:11 3302081 494
>>3301994
>это что ж за проект такой был, чтобы разраб за 450 окупался?
Фактически любой крупный проект, который не может существовать без поддержки нормальным программистом. Программист окупается не только тем, что вот он реализовал фичу и она принесла полмиллиона за месяц. Программист окупается тем, что без него компания теряла бы из-за всяких поломок и отказов больше полумиллиона в месяц.
Аноним 19/10/24 Суб 10:13:40 3302132 495
>>3302058
Но я в 39 из 4 собесов получил 3 офффера и в итоге пошел в мяскот на 400к.
Аноним 19/10/24 Суб 10:18:13 3302136 496
>>3301901
У меня оклад под 400к + годовые премии в 3-4 оклада. Итого больше 450к.

Из фулстековости во мне максимум это бфф на пару ручек прокси поднять, чтобы на клиенте меньше логики было, да токены доступа к сторонним сервисам не светились.
Аноним 19/10/24 Суб 10:26:15 3302145 497
>>3301943
Ты смотри не пропозал внутренностей, а примеры использования готовых декораторов. В общем, декораторы традиционно используются для выноса общего поведения.

Если не брать в расчет всякие ангуляры, у которых декоратор на декораторе и декоратором погоняет, то самое частное и самое полезное, что можно и удобно делать в виде декораторов - это мемоизация вызовов функций. Для режима разработки - логирование.
Аноним 19/10/24 Суб 10:46:31 3302166 498
так и запишем,жс идеален,добавлять ничего не надо
Аноним 19/10/24 Суб 10:49:55 3302177 499
>>3302075
И теперь ты такой описываешь как за пару минут все понял иначе ты хуй простой и пиздобол.
Аноним 19/10/24 Суб 11:05:40 3302204 500
>>3302145
Чел, мемоизация это костыли, если это самое частое, то значит у тебя нет опыта работы с архитектурно грамотно построенным приложением. Декораторы это про метапрограммирование, а не костыли, запомни.
Аноним 19/10/24 Суб 11:06:28 3302205 501
>>3302177
Поставил брейкпоинты в код, изучил запросы в дев тулзах.
Аноним 19/10/24 Суб 11:15:18 3302209 502
>>3302204
Чел, метапрограммирование в рубях, где с его возможностями буквально просто написать свой собственный язык под задачу.

Джсовые декораторы - по сравнению с возможностями рубей - не более чем вынос общего кода и к настоящему метапрограммированию не имеют ни какого отношения.
Аноним 19/10/24 Суб 11:18:37 3302212 503
Аноним 19/10/24 Суб 11:33:34 3302222 504
>>3302212
На рельсах столько всего понаписано, что руби будет умирать как Дельфи - вечно.

Но это не суть. Суть в том, что там метапрограммирование, а в декораторах жс им и не пахло никогда. Чел себе про декораторы какую-то хуйню навыдумывал, прочитав где-то умное слово.
Аноним 19/10/24 Суб 11:34:53 3302225 505
Аноним 19/10/24 Суб 11:46:04 3302232 506
>>3302222
Не бывает умных слов, бывают люди для которых они такими кажутся. Например дебилы которые не знают что декораторы это аспект метапрограммирования, а не способ вхуячить неявный костыль.
Аноним 19/10/24 Суб 11:57:16 3302237 507
>>3302232
Еще умное слово изучил, и теперь везде суёшь аспекты?

Декораторы могут применяться при реализации метапрограммирования если в конкретном языке позволяют изменять сам декорируемый код и нагенерировать на его основе другой, но никаким аспектом метапрограммирования декораторы не являются. Метапрограммирование возможно и без декораторов. В жс же это вообще синтаксический сахар над оберткой, которая просто меняет входящие\исходящие данные.
Аноним 19/10/24 Суб 13:04:34 3302278 508
Зачем так сделано?

constructor (scenes) {
scenes = { ...scenes }
...
}
Аноним 19/10/24 Суб 13:43:08 3302296 509
>>3302278
штоб не было сайдэфектов, когда ты в scenes удаляешь или меняешь свойство
хотя, конечно, не спасет от ссылок во вложенных объектах
Аноним 19/10/24 Суб 15:16:46 3302431 510
>>3302278
Чтобы жс макака без типизации не начал мутировать поля объекта и не выстрелил себе в ногу. В тайпскрипте этот костыль не нужен, решается добавлением readonly модификатора полю.
Аноним 19/10/24 Суб 15:17:22 3302432 511
20241019.png 88Кб, 1457x701
1457x701
>>3302205
Сяп, нашел, ты душка, анон :3
Аноним 19/10/24 Суб 15:17:40 3302434 512
Аноним 19/10/24 Суб 15:56:15 3302496 513
>>3302434
Из релевантного для резюме было пара лет опыта фулстека и 3 года фронта реакт+тс.

Так как за спиной был фулстэк, то и в систем дизайне было понимание, да и в вопросах ci/cd, всякими докерами и куберами в свое время интересовался, поэтому кроме чистого фронта на собесах мог спокойно показывать свой "кругозор" в смежных областях.
Аноним 19/10/24 Суб 16:19:52 3302532 514
>>3301901
Что такое фуллстек?
Аноним 19/10/24 Суб 16:41:01 3302559 515
1729345201026.png 59Кб, 652x272
652x272
Аноним 19/10/24 Суб 17:09:48 3302576 516
>>3302559
>ANAL
Это системное программирование?
Аноним 19/10/24 Суб 17:14:29 3302579 517
>>3302532
Когда и фронт и бэк делаешь. Но в реальности невозможно быть профессионалом в обеих областях - они слишком разные, а время на учебу и получение опыта ограничено.

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

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

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

Просто оставаться фулстеком дольше года-двух - абсолютно бессмысленно с точки зрения роста и увеличения доходов.
Аноним 19/10/24 Суб 17:21:29 3302583 518
>>3301901
Слышал и буквально знаю двух таких людей, но в России мало компаний столько платят сеньору, не техлиду/тимлиду. А вот на валютной удалёнке такая цифра это примерно нижняя граница для сеньора.
Аноним # OP 19/10/24 Суб 21:46:17 3302871 519
Аноним # OP 19/10/24 Суб 21:46:34 3302872 520
Аноним # OP 19/10/24 Суб 21:46:42 3302873 521
Настройки X
Ответить в тред X
15000
Добавить файл/ctrl-v
Стикеры X
Избранное / Топ тредов