Это копия, сохраненная 3 сентября 2023 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Больше пары строк кода в посте или на скриншоте ведут в ад.
Для программирования на HTML https://codesandbox.io
Для Node.js с консолькой https://repl.it/languages/nodejs
Если рассчитываешь получить дельный ответ, сформулируй правильно вопрос: «что я хочу получить, что я для этого делаю, что я вместо этого получаю». Если/когда самостоятельно найдёшь решение — поделись в треде, мы за тебя переживаем.
Документация - https://developer.mozilla.org
Руководство для вката - https://github.com/acilsd/wrk-fet#javascript
В один прекрасный день, один вкатыш задался вопросом, который мучил его уже долгое время - как в одну цифру вставить строку или функцию? Он обращался к совету, но никто не мог ему помочь, потому что по умолчанию, если присвоить цифре какое-то значение, то это значение будет присутствовать у всех цифр.
Собрались различные эксперты и начали обсуждать возможные варианты и способы решения этой проблемы. Но никакое предложение не приносило результатов, и совет стал отчаянно пытаться угодить вкатышу.
И тут, как из ниоткуда, на совет явился древний маг. Все замерли в ожидании, не зная, что ожидать от него. Растерянный совет переглядывался и пошел ко дну в безнадежных попытках решить задачу.
Но древний маг начал писать на черной доске непростительный код, который вызывал у всех присутствующих благоговейный трепет. Это был код, который никто не должен был видеть, и о котором не смели говорить.
Совет объявил, что подобный код никогда ранее не звучал в этом треде и не должен. Вскоре после этого маг покинул помещение, и вкатыша больше никто не видел.
Однако, со временем по всему интернету начали ходить слухи о древнем маге, который иногда посещает треды и карает тех, кто не знает сути, тех, кто не жаждет знания. И так появилась легенда.
Ну то есть, просто export {}, а потом, где надо, его импортирую и беру оттуда значения. Так же в объекте есть методы, которыми манипулирую значения.
Реактивность мне в этом случае не нужна.
Какие подводные?
Посмотри singleton.
Да, в меру нормально. Вынести какой-то конфиг/менеджер/сервис, которые могут существовать в отрыве от фреймворка.
так это не синглтон. У синглтона есть жизненный цикл. Это же просто глобальный объект.
>не используя фичу, которая нужна для реактивности потому что мне не нужна реактивность
Какой ты умный!
эээ лееее реактивным всё сделай эээээ
Проебал реактивность и создал god-object.
// ZalupaManager.ts
class ZalupaManager {}
export default new ZalupaManager(); // create instance on import
// app.ts
import zalupeneger from "@gdeto/ZalupaManager"; // Instantiated ZalupaManager;
import kewl from "@gdeto/kewl";
/ ...
*/
// kewl.ts
import zalupeneger from "@gdeto/ZalupaManager"; // same exactly ZalupaManager;
export default {};
>create instance on import
А ну если перед export default поставить вызов конструктора, то он точно не во время импорта создастся!
В моём понимании глобальный объект - это типа реквест манагер, в нём просто определены допустим возможные реквесты и декораторы реквестов, как функции. А синглтоном может быть например тредпул какой нить, или текстур манагер, т. е. что-то что держит хендлы на внешние ресурсы какие нить. Ну может консенсус действительно в том что синглтон это глорифаед глобал обжект, уже извините за мой ингришь
Проёбанный комментарий, но больше инстансов у тебя точно не станет, да. Если речь про мусорный
if (this.instance) {
this.instance = new ZalupaManager();
}
и конструирование в рантайме - то да, простите пожалуйста.
>>56619
Как верно заметил перфоратор выше, синглтона может не быть до востребования. Обращаешся ты к нему условно через ZalupaManager.instance или ZalupaManager.getInstance(), которые обычно статичные, и того один инстанс на класс.
>больше инстансов у тебя точно не станет, да
Если я напишу
>const zM = new ZalupaManager();
>export default zM;
То иснтансов может быть больше одного?
Мне кажется, что ты имеешь в виду export default new class {...}
У тебя содержимое модуля выполнится и загрузится в кеш один раз.
На повторные вызовы ты получишь тот же zm
>Как верно заметил перфоратор выше, синглтона может не быть до востребования. Обращаешся ты к нему условно через ZalupaManager.instance или ZalupaManager.getInstance(), которые обычно статичные, и того один инстанс на класс.
Да, это тоже, короче синглтон это глобальный объект создание которого ты явно испирируешь, один хуй я веб макака и не представляю где такое может пригодиться, разве что гейдев велосипедный
А в том варианте как у меня будет выполнятся больше одного раза что ли?
Он в любом случае зарезолвится в {__default: new ZalupaManager}, что в первом, что во втором случае.
Смотри пик 2 пик 4, при обоих вариантах импорта, переменной и явного указания new Class в дефолте - объект сконструируется на импорт один раз.
Далее покложится в кэш, последующие импорты будут дёргать инициализированный залупенежер из кэша, без повторных конструирований.
Я тебе об этом и говорю. Ты же изначально АЖ целый коммент поставил, мол создавать инстанс на импорте. Я тебе вопрос задал: что, если создавать инстанс не на импорте?
>// create instance on import
Это комментарий, который я не стёр.
>>56611
Больше было похоже на doyob.
Если не дойоб, и реализация синглтона, с созданием инстанса если его нет при обращении, pls refer >>56626
>Как верно заметил перфоратор выше, синглтона может не быть до востребования. Обращаешся ты к нему условно через ZalupaManager.instance или ZalupaManager.getInstance(), которые обычно статичные, и того один инстанс на класс.
Ну тогда я не понимаю, что ты не понимаешь
Шизойдной истеричкой с неврастинией в белой рубашке, а Вы?
Шизоидом с больной жопой.
Так это санитары у него телефон отобрали, вот и балуются.
36 т.р.
haha, spipavsya, impostor!
А что не так? Соевые дегенераты насмотрятся ваших ютабов, где говорят что Next.js на пару с реактом теперь бэкенд фреймворки и хуярят свои стартапы. Да там и похуй на самом деле, главное спихнуть первому попавшему покупателю и можно новый стартап пилить.
ВАЙ ДАРАХОЙ, ВОТ ТЕБЕ APP ROUTER, ДЕЛАЙ SELECT НА СЕРВИРИ, ХТМЛ ОТДАВАЙ ЖЫСКРИПТОМ ДОГОНЯЙ
ВАЙ ВАЙ, ДАРАХОЙ, А ВОТ ЕЩЁ И ПОСТГРЯ В ОБЛАКЕ
ЛЮБИМЫЙ НАШ, НЕ ЗАБУДЬ ПОБЕДИТЬ НА ФУНКЦИИ И ОБЛАЧКО ЗАЛИТЬ
План быстр. И надёжен, как швейцарские часы.
реклама спонсирована компанией Лидочки
Я всё жду уже 2 года, как начал менять места, когда начнут что-то спрашивать кроме одной и той же шаблонной хуйни с промисами, зысом, иногда ещё могут и про статические методы промиса спросить, охуеть, не помню даже когда про генераторы последний раз спрашивали, хорошо если не пояснять за хойстинг вары леты консты, пару раз спрашивали про... фриз и сил, без погружения в дескрипторы, а ебать, ФУНКЦИИ ПРОТОТИПА АРРАЙ, НАЗОВИ, ПЕРЕЧИСЛИ. Ну ёбаный стыд. Ну вроде должен был этот этап пройти давно, а в итоге с чего вкатился, к тому через 2 года вернулся. Уровень ёбки иначе не ощущается. Иногда могут задачек разве что подкинуть или ссаный лайвкодинг провести, до которого просят сделать окололиткодную задачку, к которой нет тестов - пиши сам (про это думай сам, в задании не сказано, но ты же хочешь убедиться в работе?). В итоге делаешь ТЕСТ (кек, да, мне не жалко своё время), дальше отсасываешь на лайвкодинге с элементарной хуйнёй из-за невров (чуть не отвалилась трансляция/звук пропал/да хуй его знает, атмосферное давление высокое), потому что толи долго делал задание, толи что-то не понравилось в реализации, толи вилка высокая. На всё отвечаешь из теоретических вопросов - тебе даже в лицо не напишут, почему ты не подошёл.
Ебало моё можете даже имаджинировать, когда интервьювер даёт задачку, делаешь неявные преобразование из-за параолимпийского духа, спрашивает ЧТО ЭТО ЗА ХУЙНЯ И КАК ОНО РАБОТАЕТ...
я вот щас спецификацию ковыряю, раньше мне она чёто сложноватой казалась, щас норм идёт, наверно общей инфы нахватался и теперь технические подробности легче даются. Но бля, я даже не представляю, зачем в теории это знать надо, кроме кабинетной выдрочки на собесах. Но походу никто этого не знает кроме гуру которые разрабатывают движки и фичи языка, ибо просто нинужно.
Ну есть не только фреймворки. Есть всё ещё ванилла. Это либо прикладное применение в ноде, либо условно, решения для браузера.
Одно время мониторил, мелькало несколько вакансий на антифродовое решение. Там надо знать как браузер(ы) робят, баги, уязвимости.
Или всякие тулзы пилить со знанием devtools протокола.
Светлошизы, вьюдебилы, ангулярогоспода, реактопараши, ваши ебалы?
Скоро все перекатимся в кампле жысы.
Мимо не antonmak1
Проорал.
Да, долистал до конца, вижу. 👍👍👍
>компанией Лидочки
Инцел, спокуху оформи. Тред не про поклонение тухлождырым а про поклонение прототипным
всем похуй на минорные релизы да и на мажорные тоже, потому что там нихуя не добавляют интересного
Главное чтобы антиверцел шизы горели зацикленные на одном единственном верцеле. А кто там лидочке поклоняется мне вообще по барабану.
Да ты сам верцелшизу гоняешь в треде упоминанием твоей нормибляди ебаной, которая нихуя не умеет кроме как шлепать формы на актуально стэке
Каких?
Ок. Моки таймеров. Честно, не знаю как я без них жил. И без бэка на ноде тоже.
> using / await using
https://github.com/tc39/proposal-explicit-resource-management
Я уже по названию чую шарповый паттерн, для забывающих подчистить ресурсы. Пик 2. Ну ктобы сомневался.
Ребяты-команды на 14-ой и 16-ой ноде неистово ликуют
Скажите мне, нахуя? Ну вот просто нахуя?
Вам, блять, так сложно файл.css сделать что ли? Вы ебанутые? Вы нахуя кссесы, блять, тащите в жс? Это что-то на уровне инлайн стилей, ну пиздец.
>так сложно файл.css сделать что ли? Вы ебанутые? Вы нахуя кссесы, блять, тащите в жс? Это что-то на уровне инлайн стилей, ну пиздец.
Еще один вкатун порвался от изоляции стилей! Спешите видеть!
А, хуйня из тиктока на ютубе. Видел. Лучше пусть завезут мне group в stage 3 из экспериментального
А на чём? Фронт в любом случае на жс, мобильный апп для стартапа тоже очень часто на реакт нейтиве делается, бек на ноде тоже очень часто в стартапах в США используют
в ангуляре по умолчанию а во воюшке скопед.
но да, я вкатун, который не понимает нахуя нужно это извращение.
https://dev.to/jasmin/what-is-new-in-es2023-4bcm
Хабы больного шизофазией, которого на этом пикабу даже не минуснули.
Перечислил буквально всё кроме JS и TS
> экспертное мнение по синтаксису жабаскрипта
Не проецируй свою битриксовую реальность на нодогоспод.
Мне надо.
Да, выделили целый абзац, чтобы скорректировать использование корректного выражения для #! в новой исторической реальности.
Ухх бля, вот тогда заживём. А нет какого-то варианта хуярить сразу WASM и загружать как WASM модуль не отходя от браузера?
Если честно до сих считаю, что реакт взлетел только из-за jsx.
паттерн матчинг
краткий синтаксис для "вернуть копию объекта с одним изменённым свойством",
неиронично чтобы конструкция вида a == b == c возвращала true если значения равны попарно (да, я дебил)
чтобы последний элемент массива можно было получить без уродливых конструкций
switch-case как выражение
более приятный и краткий синтаксис для перебора и манипуляции с символами юникода
>a == b == c
Я вот сейчас прикинул, а где оно работает так?
>паттерн матчинг
Люто двачую, поскорей бы.
>чтобы последний элемент массива можно было получить без уродливых конструкций
Буквально array.at(-1), но есть нюанс. Это геттер, чтобы модифицировать элемент придётся всё ещё хуевертить.
>более приятный и краткий синтаксис для перебора и манипуляции с символами юникода
👀
когда-то хотелось написать const a, b = func1(), func2(), а так то ли только с варами можно было, то ли вообще нельзя
ещё в котлине прикольное было что иф работает как экспрешшин
const a = if ('') {return 0} else if ([]) {return 1} else {return -1}
Выглядят получше кажется чем то же самое на тернариках вложженных/let'е с переопределением/switch true
Обсёрваблы хочу. Но оно вообще в stage 1 сдохло. Ну или потоки или сигналы/слоты хотя-бы. Короче что-нибудь чтобы EventEmitter/EventTarget можно было закопать и типизировать события наконец в ТС.
Деструкторы, апи чтобы пинать GC.
И какого-нибудь сахара для вот этой истории: https://blog.logrocket.com/async-await-is-the-wrong-abstraction/
Ещё хочу чтобы ?.[] и ?.() закопали нахуй обратно
>EventEmitter
>типизировать события наконец в ТС
эвентэмиттер прекрасно типизируется с мезозоя, чего не скажешь о таргете
>краткий синтаксис для "вернуть копию объекта с одним изменённым свойством",
structuredClone же завезли. А дальше тыкай уже обычным foo.bar.baz = ...
То ты хуйню какую-то пытаешься сделать, функции не клонируются вообще никак.
Могли бы там конечно предусмотреть маппер вместо исключения чтобы я мог обмазаться своей логикой по функциям и дом нодам.
>Они одинаковые же
Нет. EventEmitter это нодовское api и он может эмиттить всё что угодно в неограниченном количестве. EventTarget - стандарт и эмитит только инстансы Event через EventTarget.prototype.dispatchEvent
Типизации
Декораторы было бы неплохо. До сих пор в пропозалах сидят что-то.
Мне недавно в Зиге понравилось что вообще всё экспрешен (кроме объявлений функций, лол)
И всякие break возвращают из цикла какое-то значение например или у return есть типа noreturn, значащий что в этот экспрешен мы не вернёмся, но все равно можно использовать если ты в какой-то момент обнаруживаешь что функция должна вернуть ошибку например.
Так пусть в8 макаки добавят возможность взять указатель на какой-либо тип данных, ухи они на поводу у макак прыгают?
>?.() закопали нахуй обратно
Формошлеп обыкновенный, который ничего кроме шлепания форм и крудов не делал.
>Многопоточность
В жс уже есть полноценная многопоточность с мьютексами уже неебическое количество времени во всех браузерах и движках, вот только всем на неё похуй ибо задач нет.
>вместо нормального присваивания джун решил выбенутся оптимизацией и добавил массив, создание итератора и две его итерации
Ето пиздец на самом деле, который потенциально мог бы быть решён оптимизирующим компилятором, и не равно тому что он хочет. Лишние аллокации, цикломемо траты.
Чтоб из темперманки скрипт это делал, или фиг JS пустят такое сделать?
Можно.
>>57345
я не знаю, ребят, вы там какой-то хай перфоманс пишите, откуда такая запара по поводу одиночной аллокации в коде, который будет выполнен один раз? Да я и сам такими бреднями, страдал, for-циклы использовал вместо forEach (потом кстати оказалось, что forEach наборот, лучше оптимизирован).
Функциональщина.
array
.map() - O(n) O(n)
.filter() - O(n) O(n) - гарбач коллехтор напрягся
[.map()]
.sort
В том же шарпее с LINQ получилось бы гораздо эффективнее. Собственно, как и наваять подобный запрос в SQL.
В динамикохуйне на каждый чих аллокации и циклы. А потом у нас страницы не откликаются, жрут по гигу, а программисты макаки - пидоры.
В JS за функциональщину надо платить.
forEach - даже в случае закоса под фкнкуионаленько как правило не используют, в пользу for of
>forEach - даже в случае закоса под фкнкуионаленько как правило не используют, в пользу for of
Еще один шизофреник. Сегодня в дурке день открытых дверей?
Да, я видел fp-ts, видео законы под функционаленько, видел императивную архитектуру. Можете не выпускать.
>Я видел такое, что вам, людям, и не снилось... Аллокации и циклы, пылающий от их оптимизации компилятор; закосы под функционаленько, императивную архитектуру... Все эти мгновения затеряются во времени, как слёзы в дожде. Время... умирать
Зачем ты лезешь в мою камеру? Она на одного.
Это слишком охуенно, чтобы быть правдой
А тут есть адепты DENO и местных фронтенд фреймворков?
да дено здох обоссавшись и обосравшись когда в ноду запихнули отсутствующие web api
Ну разве что макаки какие-то. Я бы побоялся брать дено в прод.
>девам
Тухлодырые не нужны.
>в отрыве от фронтальных фреймворков
Негативное. Скриптовые языки созданы для максимально быстрого решения задач, а не проведения R&D с высиранием своих новых фреймворков заместо уже существующих.
Нии, речь не о фреймворках. А именно о тулзах. Например вы работаете в компании предоставляющей услуги телефонии. Пилите плагин для бровзера / плагин под стор какой-то CRM.
Именно в отрыве от ангуляро свелто реактов с crample литами интегрированными с wasm собранным на флаттере.
>>57328
worker_threads модуль? Это не такая многопоточность, как в голанге. Нода одно ядро процессора жрёт по дефолту, ограничение оперативной памяти 1Гб по дефолту, тред пул сайз livuv = 4. Это не green threads/lightweight threads/fibers. В голанге просто пишешь go перед функцией и он спокойно наспавнит тебе хоть миллион горутин, у каждой стек сайз всего 2 килобайта изначально, если не ошибаюсь, и обмен сообщениями удобно устроен через каналы.
атомикс
>Например вы работаете в компании предоставляющей услуги телефонии.
Ну и зачем нам пилить свой астериск на жопасрипте?
>плагин для бровзера
Ничем не отличается от обычного формошлепства.
>плагин под стор какой-то CRM.
Что это за "плагин под стор"? Вроде нормальные люди называют такие вещи базами данных и не пилят их на жопасрипте по понятным причинам.
>Ну и зачем нам пилить свой астериск на жопасрипте?
webrtc, астериски, по возможности, идут нахуй с инфры.
Всякие янусы-анусы в качестве сигнальных серверов. Даже если со стороны своих астерисков смотреть своё решение для интеграции в сторонние системы. Шобы не плотить за лицензии.
>Ничем не отличается от обычного формошлепства.
Пон
>Что это за "плагин под стор"?
Стор плагинов CRM_NAME, либо браузерный экстеншон.
Так вот и я об этом спрашиваю, насколько зашкварно, если в резюме будет место работы JS макакеном без фрейморвка, после опыта с фреймворками?
Спрошу иначе, делает ли меня JS proficiency как таковое более востребованным?
Да, я уже в край ебонулся к концу недели.
Thanks a lot, good sir.
Интернетов на сегодня хватит
https://www.youtube.com/watch?v=r-GSGH2RxJs
Ну да. Но на ноде это тоже можно делать и так делают, IoT и риалтайм проектов не так уж мало
единица нигде не обьявлена, как она сохраняется и как передается? втф
>единица нигде не обьявлена
на пике буквально 1+, ты жопой смотришь?
>как она сохраняется
как литерал в коде, очевидно же по скрину
>как передается
шиз, где тут что передается? Иди галоперидола наверни.
в кате надо посчитать через сколько итераций мы получим палиндром из цифр, если в функцию передать 88 то 0 итераций, если 87, то
87 + 78 = 165
165 + 561 = 726
726 + 627 = 1353
1353 + 3531 = 4884 - palindrome
как он из этой функции получает 4?
Обычно через параметры проносят стейт, тут чуть по-другому.
Deno охуенный, но похоже мёртворождённый.
Сижу жду когда он либо захватит мир, либо его труп проплывёт мимо нас как было с Дартом.
я где-то год назад верстку заказывал, мне парень с серьезным ебалом все на пуге сделал, лол.
адепты всегда найдутся. на том же жиквери и сейчас новые проекты пишут.
>его труп проплывёт мимо нас как было с Дартом
Труп уже уплыл. Его главной фичей было наличие нативных web api. Как только они появились у ноды, дено перестал выделятся чем-либо кроме отсутствия багов.
>с серьезным ебалом все на пуге сделал, лол
В чем проблема пуга? Для версткашлепов ничего лучше нет же.
Это бесполезно и при воркерах и при передаче апи, никакого смысла клонировать их нет
Джава и сишарп позволяют клонировать функции прямо как участки памяти и передавать по апи в виде бинарника, жс так не может.
Уже получше, но замыкание это все равно не сохранит. Только чистые функции, и то ограниченно. Придется писать костыль который все зависимости складывает в строку.
>клонировать функции прямо как участки памяти и передавать по апи в виде бинарника
Наркоманы чтоле?
мимо
Зачем весткашлепу JSX нахуй?
>клонировать функции прямо как участки памяти и передавать по апи в виде бинарника
Ну допустим, ты склонил функцию/метод и передал его в воркер. Как тогда должноработать замыкание? Сохранять ссылки на оригинал? А если случится race condition?
>никаким целям не служит
Буквально одна единственная цель - быстро верстать шаблоны, которые затем подхватит пыхадебил/реактомакака/вьюдодик/ангулярошиз и добавит интерактивности. И он с этой целью справляется очень даже хорошо, в отличии от ванильного HTML и прочих JSX
Можно собрать шаблон на JSX, в чём проблема? Буквально vanilla-jsx какой-нибудь или условно TS в preserve. Реактодебил ещё и спасибо скажет.
Имеет смысл только пыходебилу подхватить, потому что смузи фронтенду придётся всю эту каловую массу нативного html /pug говна на компоненты разбить, от этого времени больше тратится.
>Можно собрать шаблон на JSX, в чём проблема?
В том, что названия пропов не всегда соответствуют названию атрибутов.
Чёт я доёба вообще не понимаю. Чья это проблема, пыходебила? Реактмакаки? Они с пропами не разберутся? JSX как-то не так выглядит после генерации HTML?
Рантайм типизация, чтоб ебейшая прям, чтобы чихнуть не мог без типов, каждый пердеж, каждая строчка обмазана типами. Я в рот ебал всё, что не типизировано, просто идите нахуй. Если бы не TS, то уже сменил бы язык наверное. Еще хотелось бы, чтобы рякт был полноценным фреймворком, но ладно там к нему RTK есть более-менее приличный, но все равно все пишут от балды просто как придется, по настроению
Киллерфич ещё хватает: тайпскрипт и фаервол в ноде никогда не появятся скорее всего.
Пакетный менеджер хоть и уебанский, но зато полностью децентрализованный, это тоже может ещё выстрелить.
data: {},
get(t, k, r) {
let m = this.data[r] ?? t;
return m[k];
},
set(t, k, v, r) {
let m = this.data[r] ?? (this.data[r] = {});
m[k] = v;
},
})
Слишком ехидно, а теперь пока пишу ответ, вижу что шрифт не нулёвый.
И че это, долбоеб?
Number.prototype.__proto__ = new Proxy(Number.prototype.__proto__, {
data: {},
get(t, k, r) {
let m = this.data[r] ?? t;
return m[k];
},
set(t, k, v, r) {
let m = this.data[r] ?? (this.data[r] = {});
m[k] = v;
},
});
Не спрашивай того, чего не готов узнать.
Это N̴̫̬̹̽ů̷̪͓̿̾͂́̆͠m̸̟̩̬̩̣̿͝b̴̛̮̬̝̘̹̂̋̍̀̔é̴̼̯̱̤̭̇̉͘͝r̷̞͓̗̀̉̀.̶̧̈́̀p̸͚̖̺̣͈̠̝̻̓̔r̶̹̭͇̪͗͑̀̔̅͒̅͝o̸̺̱̺͎͆̍́̊̏̈́̾̒ͅt̶̪̪̯͙̀̕̕ô̷̫̬̲̦̭̭̘̆͗̒͐̈̀͆t̴̨͍̖̮̒̃̔͑́͊ỵ̶̢̛̳̳̜̫̀́́̉̒͂p̵̡̖͙̗͉͆̏͛͛̕͘͜ͅe̸̛̺̣͓̞͇̖̓͛͋͗͛̑͜.̴͍̗̬̘͙̱̦͖̾̄͊͂̃̈́̈́͘_̴̛̝̬͙̺̤̫̓̓̄̆̀̋_̷̡͗̄͑̃͝p̷̡̹͖̫̺̪̥̓̊̏̏ṟ̵͎͉̓̌̅͂̌o̴͚͗͛̕̕͠͠t̶̛̜͖̮͛̉̏̈́͘o̷̡̳̓̆̄̌_̴̦̗͎̟̤͙̱̄̌̈̀̚͝_̶̤̠͙̹͓̓̒̑̐͗̓̒ ̶̺̊̐̋̂, зеленый.
>тайпскрипт
Его и в дено нет. И в буне.
>фаервол в ноде
???
>Пакетный менеджер
существует в отрыве от ноды с мезозоя
Ты из какого треда к нам залетел? Вообще ортогонально посту ответил.
ТС есть в дено. Фаервол в нём тоже есть. Пакетного менеджера в дено как раз нет как такового, де факто дено – децентрализированый пакетный менеджер на HTTP стеке.
>Тс легко подключается к ноде
Тс не подключается к ноде НИКАК.
>>59331
>ТС есть в дено
Покажи, где там ТС. Именно ТС, а не установка tsc в пачке с самим бинарником дено.
>Фаервол
Значение знаешь?
>децентрализированый
>вынуждает хардкодить определенный эндпоинт для установки is-odd
И не поспоришь даже.
> Тс не подключается к ноде НИКАК.
Очередной автоматон с квадратно-гнездовым мышлением, ты? Реально не понимаешь контекст или притворяешься?
Покажи как ты к ноде тс подключишь, олух. Я прекрасно понимаю, что ты нодой можешь скомпилить тс в жс, но речь идёт именно про подключение к ноде.
Лол, реально в контекст не может, вот с такими программистами анальниками вам придётся часто пересекаться на работе, господа вкатывальщики
Так ты просто транспилишь код и отдаешь в ноду уже транспилированный JS.
Я где-то написал, что это не костыль? ЧОТЫРЕ ГЛАЗА. ЧОТЫРЕ.
Явно. Просадка в производительности будет, или время на первый запуск для транспиляции. Ну и проверки типов в режиме реального времени не будет.
>проверки типов в режиме реального времени
Ебанутый проверкатиповшиз, любой интерпретатор с самой слабой типизацией проверяет типы в режиме реального времени.
А как люболй интерпретатор ЖСа проверит, что мой объект имплементит определенный интерфейс?
Проверки типов не будет. Проверкой может заниматься ts, котрый в режиме статического анализатора в иде работает.
Транспиляции всего проета не будет. Будет транспиляция во время выполнения. Это просто как бы ты код обернул в дополитеные функции. Для разработки не ощутимо. Зато не нужно компилятором прогонять целиком проект перед запуском тестов хуестов. Для прода уже подрубаешь ts
Иди в пыху. Она будет интерфейсы проверять прямо на проде. Как будто у тебя интерфейсы в рантайме меняются
В смысле контракты у вызываемого кода. Так то-ты можешь квадратное совать в круглое.
А зачем? Иде же не нужно выполнять код. Только ast построить чтобы проверить типы
А код тестов на ts запускается нодой с бабелем, зато не тормозит как ts-node
> проверит, что мой объект имплементит определенный интерфейс?
Очевидно, выкинув ошибку, когда ты дергаешь нереализованный метод.
> проверит, что мой объект имплементит определенный интерфейс?
Очевидно, выкинув ошибку, когда ты дергаешь нереализованный метод.
https://www.youtube.com/watch?v=w2n5HkUNEv4
Специально для тебя. Влиленин Линин.
https://www.youtube.com/watch?v=H91aqUHn8sE
Мимо никогда не занимался такой хуйней, заебал постить своих сойджаков.
В видео речь идёт о компиляции ТС в ЖС, олух. Покажи как тс к ноде "подключить"
Вот я смотрю видосы про историю реакта и не могу понять, а в чем идея перерендера всего DOM отличается от того, как работал фронтэнд до реакта. Тем более, что они как сами говорят вроде как все не перерисовывают, это некоторая условность.
Есть где то более-менее емкое объяснение этого? Можно начиная с того, как в браузерах работает рендеринг DOM. Я из гуи хорошо понимаю только как immediate mode работает, в вузике писал простой 3д рендерер.
Почитал бегло ваш гайд для вката, но ничего с акцентом на это не нашел.
Мне не для вката правда, просто интересно, так то я дата сатанист.
Долбить DOM API новыми элементами нихуя не дешёво и запускает рефлоу/репенинт. Либо много одинаковых костылей костылить из проекта в проект.
> Есть где то более-менее емкое объяснение этого? Можно начиная с того, как в браузерах работает рендеринг DOM.
Работа браузера, как парсит страницу, что в какой последовательности натягивает, DOM, CSSOM, reflow, repaint.
Виртуальный дом в реакте должен был решить проблему с дёрганьём дорого браузерного API, подёргать которое в некоторых случаях уже само по себе запускает reflow/repaint, путём создания JS модели дом дерева и сверки состояния приложения с этой моделью, для точечного обновления нод по необходимости
> так то я дата сатанист.
Ждём от тебя датаплотов на вью под хардбасс
Вот, в принципе, хоть отсюда начать https://developer.mozilla.org/en-US/docs/Web/Performance/How_browsers_work
1) HTML жвижок браузера и js жвижок это независимые вещи
2) DOM это структура внутри HTML движка
3) Жс фрейморки строят структуру данных в JS соответствующую DOM дереву. Это называют Virtual DOM
4) Манипулировать VDOM сильно легче чем DOM
5) Жс фреймворки имеют медтод, который вычисляет разницу между текущим состоянием DOM и результирующим (после изменения состояния модели). С помощью этого метода обновляются только те части DOM, что должны были изменится.
PS Есть фреймворки без VDOM, но они все рано вычисляют, то что должно обновится механизмом changes detection
Можно пихать дополнительные проверки, бить по руками на ревью за вызовы типо element.style.height = "height + 10"px, так как это будет запускать пересчёт каркаса страницы с последующей перекраской.
Создавать нужные элементы через document.createElement(...), навешивании всех атрибутов, креплеии влолженных элементов, и только потом крепить в HTML DOM то что получилось.
И прочие практики.
Как ты мог заметить, уже слишком много ручной еботни, которую удобно завернули в фреймворки.
ты можешь писать на тсе в ноде. в чем проблема?
опиши проблему, сойджак. по твоим доебам нихуя не понятно хули ты копротивляешься.
В ванилла жс есть по сути микропатчинг дома - ручками манипулируем DOM, обновляем только то что надо обновить, но определяем мы это самостоятельно. Это довольно геморно, к тому же есть данные которые остаются неизменными, или имеют различные паттерны изменения, и всё равно иногда приходится для простоты перерисовать весь DOM шаблона или значительную его часть. Реакт и ко. дали нам виртуальную модель DOM, и взяли на себя ответственность определять какая его часть изменилась. Для этого они поддерживают облегчённую виртуальную структуру VDOM, которой по идее быстрее манипулировать. Затем уже появились новые фреймворки которые как прежде микропатчат DOM, но на автомате отслеживают изменения - свелт, солид итд. Они не имеют VDOM, что делает их экономичнее в плане памяти. Почему сразу не сделали так? Хз если честно.
Можно как-то сделать, чтобы глобальные видел?
(У меня несложный скрипт на Ноде, не хочу для него всякие отдельные package.json/node_modules и т.д.)
Не знаю, братан. Какая-то хуйня, братан. Попробуй открыть в редакторе папку с файлом, а не конкретно файл.
крепись, братан, сам в похожей ситуации, на текущей РАБотке деградирую уже много месяцев, новый проект не дают, а чтобы перекатиться нужно себя поувереннее в плане базы и технологий чувствовать.
Да пиздос.
Вручную скопировал папку node_modules в домашнюю папку из ~/node-v18/lib/node/node_modules
и заработало.
Похоже, оно ожидает, что модули должны быть в руте домашней папки.
Я на Линуксе, может быть поэтому. Тут пердолиться постоянно нужно.
Хотя импорты без тайпскрипта нормально работают.
Не знаю братан, у меня нода стоит через nvm, типы глобально закидывать - моветон. При необходимости добавляют в devDependency.
В VS Code уже есть поддержка TS из коробки.
~/.nvm/versions/node/v20.0.0/lib/node_modules$ ls
corepack eslint npm prettier serve
>Хотя импорты без тайпскрипта нормально работают.
Запусти.
Ищи стажировки. Ищи компании которые имеют инфру на ноде, и у которых есть стажировки. На ХХ этих стажировок не будет.
Разрабатывай анус литкодом. Он тебе понадобится на 146%.
За остальными требованиями... Ну это же жыэс лол, сайтики делоть, базовые знания HTML + CSS ещё никому не вредили.
Ничего не ломается.
Все работает.
Виндовслахта +15.
Не раскачиваем лодку.
У нас весь софт рабочий.
Есть все аналоги.
Игоры не нужны.
Да и все игоры уже портируют.
Если что-то сломалось сами виноваты.
Линукс не причем.
Читайте документацию чтобы чинить свои ошибки.
Чините Линукс который вы испортили своими руками.
>Ничего не ломается.
Если не трогать
>Все работает.
Возможно.
>Виндовслахта +15.
Windows 11 Open Beta Test
>Не раскачиваем лодку.
Я - Титаник
>У нас весь софт рабочий.
Ловишь документ, который анально костылился таким образом, что нормально открывается и печатается только дестопным офисом под виндой, не отображается корректно даже в веб версии, не говоря про аналогичные эксперименты под никсами и либрой
>Есть все аналоги.
Мы всё ещё про анальных адептов, или тех кто понимает, для чего ему ОС?
>Игоры не нужны.
Не игорал больше двух лет по причине ноугеймз, буду ждать переиздание скайрима
>Да и все игоры уже портируют.
Каждый раз проигрываю с мантр любителей поебаться с вайном, протоном и лутрисом. Нужно только конфиг покрутить, чтобы оптимизировать фпсы и получить на 10% фпс меньше.
>Если что-то сломалось сами виноваты.
Да, скорее всего ето так. * install -y xD
>Линукс не причем.
xD
>Читайте документацию чтобы чинить свои ошибки.
Хорошо, когда она хотя бы есть
>Чините Линукс который вы испортили своими руками.
Как же бывает поздно, когда уже поздно. Но лучше крутить какой-нибудь админ гайд.
>>60017-этот
>Ничего не ломается.
Если не трогать
>Все работает.
Возможно.
>Виндовслахта +15.
Windows 11 Open Beta Test
>Не раскачиваем лодку.
Я - Титаник
>У нас весь софт рабочий.
Ловишь документ, который анально костылился таким образом, что нормально открывается и печатается только дестопным офисом под виндой, не отображается корректно даже в веб версии, не говоря про аналогичные эксперименты под никсами и либрой
>Есть все аналоги.
Мы всё ещё про анальных адептов, или тех кто понимает, для чего ему ОС?
>Игоры не нужны.
Не игорал больше двух лет по причине ноугеймз, буду ждать переиздание скайрима
>Да и все игоры уже портируют.
Каждый раз проигрываю с мантр любителей поебаться с вайном, протоном и лутрисом. Нужно только конфиг покрутить, чтобы оптимизировать фпсы и получить на 10% фпс меньше.
>Если что-то сломалось сами виноваты.
Да, скорее всего ето так. * install -y xD
>Линукс не причем.
xD
>Читайте документацию чтобы чинить свои ошибки.
Хорошо, когда она хотя бы есть
>Чините Линукс который вы испортили своими руками.
Как же бывает поздно, когда уже поздно. Но лучше крутить какой-нибудь админ гайд.
>>60017-этот
Линукс != Я. Так что мимо. Сижу работаю на линухе 15 лет. Пережил всякое говно, вроде переезда на системд. Зато я знаю интрумент, а не визжу что нет автоматического подтирателя задницы.
С нуля нереально. Заглохнет. Сначала нужно написать 100500 мелких проектов, а потом уже использовать их как снипеты для мегапроекта.
Да. Все мы ходим вокруг да около одной идеи длительное время, пока полностью не разочаруемся. Так устроен мозг. Пока есть доминантный очаг возбуждения, ты пишешь пет. Потом возбуждение угасает, ты бросаешь. Но опыт остается. В следующий раз когда мозг получит дозу нейромедиаторов, он зажгется примерно в той же области коры.
А смысл кодерство бросать? Оно само по себе способно существовать как занятие, независимо работаешь ты на дядю или нет.
решил вкатится, сижу третий день смотрю гайды и словил тилта с этим ксс. вчера полчаса не мог понять почему стили не применяются. оказалось создал лист ксс в другой папке и ссылка не работала. потом два гайда по позиционированию посмотрел все равно не получается сделать то что я хочу. в инете много инфы по элементам но мизерно мало по атрибутам. знания какие то поверхностные. японимаю что еслия упорюсь и буду сидетья рано или поздно пойму как пользоваться блочной системой, но какой какой ценой, энергии я трачу горазо больше чем даже в алгебре и английском где у меня уже какие то скиллы имеются. потом сама работа фронэндера в 2к23 какое то говно. желающих ворваться туда толпы, стажеров толпы. вакансии на фронтэнд смотрят по 20 дебилов одновременно. я не понимаю нахуя я туда лезу. сама работа фронтэндера это мрак. предстоит только слегка что то там чинить редактировать. ты не дизайнер а правщик готового. ты ничего не создаешь. почему я обязательно должен пройти через фронэнд чистилище чтобы стать программисстом? наконец пока я сижу дрочу разметочный код который даже не программирование. есть нейросети которые уже пишут код. и за время которое я убью на вкатывание они уже проникнут в каждую компанию сокращая штат таких дебилов как я.
меня постоянно тянут на дно мысли что надо учиться упарвлять нейросетями быстрей и полезней чем та хуйня что дрочу я. но браться за понимание нейросетей мне совершенно точно рано. я лох в айти. короче я хуй знает кому я это пишу, просто хотел выговорится.
А вот на уроке программирования на сайте шараги могут сидеть одновременно 30 человек, но качество таких людей имидж?
А куда ушел?
Цукерберг смог же
Ну да,но один я написал аж на 70%.
Были заготовки на дописку,но пришло осознание что я делаю хрень
Пацаны, заебался постигать азы питона, принимайте пополнение. Сейчас поковыряю штиэмейли с жабаскриптом, потом уже вернусь к петухону, от лёгкого к сложному, так сказать.
Никогда ранее это наречее не звучало в этом треде!
Начни с чего-нибудь базового сначала.
Пиши на prototype парадигме, чтобы по началу не путался.
Один пакетный менеджер чтобы всех найти.
>решил вкатится, сижу третий день смотрю гайды и словил тилта
обосрался. для вката надо посидеть хотя бы неделю
922x720, 1:29
>для вката надо посидеть хотя бы неделю
Через неделю уже можно считаться вкатившимся жабаскриптором?
Если он сидит на дваче, то как минимум намберпрототайпером.
>пикрелейтед
В моем ВУЗе ННГУ буквально так учили сям. Потом он занял первое место на чемпионате по программированию в 2020. Оправдывайтесь.
Раз в год даже палка
768x576, 0:10
Ты хоть тыщу форм нашлепай, всё равно 10к за смену.
всё таки работка за зарплату развращает человека. Я могу пинать хуи сколько угодно, симулировать бурную деятельность, закрывать по 2 таски в день, и мне всё равно будут платить. А хули нам работягам...
>развращает человека
Так причем тут человек, если сама суть наменого труда не очень хорошо ложится на умственный труд? По хорошему программист должен получать какой-то небольшой постоянный уровень за то, что находится онлайн в течении дня (что бы в случае критических инцидентов быстро починить), а остальное - за закрытие тикетов в жире в размере N рублей * количество стори поинтов.
Ну может тимлид посчитать.
Зато товарищ начальник будет доволен.
Они выходит из дома целый раз в конце неделе или у них есть жена, а им самим уже за 30?
<30
Как же деды заебали делать и делать новое апи к одному и тому же, уже методов 5 сделать кастомный элемент, нахуя?? У нас же реакт есть.
Так там не кастомный элемент, слепошарый еблан.
> ксс
В 2023 никто не учит css. Уже давно настала другая эра. Вместо этого кала учи tailwind. Заодно и разберёшь бестпрактики.
Практически каждая вакансия, где фуллстек, аля React+nodejs/php/c#/java - на выходе меньше чем за чистый фронт на React без этой вот гомоебли.
Думойте.
самчитайсвоюпарашнуюпростыню
На нодежс вообще бывают какие-нить сложные задачи? В моём понимании если за фулстяк дают меньше чем за чистый рякт это значит что работа сама по себе дновая, выгружать жсоны по кд и править вёрстку
> если за фулстяк дают меньше чем за чистый рякт это значит что работа сама по себе дновая
То это значит, что микрокабанчику нужен мастер на все руки и он оптимизирует расходы.
>>60700
Спасибо инфоцыганам и воннаби миддлам не джуниорам, которые задемпинговали всё что можно и почти уничтожили джунов как лычку на рынке вакансий. Теперь миддл вместо джуна.
С той разницей, что миддл знает свою цену на рынке и в его вакансии на том же ХХ вилки не будет. Про анальные чаты и прочие сурсы я не говорю сейчас.
Кабан кабаныч выслушивая в очередной раз от хрюши про 600 откликов за 2 дня знает что делает, скручивая зарплатную вилку куда ему надо. И с количеством желающих остаётся только запастись терпением, нужным количеством роллов монетки и искать самого шарящего за миску риса. Как и какие-то уебоны, которые на ХХ развесили объявлений на фронта по разным регионам за 70-140 лол.
> strong junior $350-1200
1200 ждуну, да норм. Не вижу проблемы.
В моём бадишопе миддлам давали меньше, перераспределяя оплату их труда на забенченных каличей и интерн/джунов, готовящихся к залёту.
У таких ждунов стартовая была как раз в районе 30к.
Но речь не уровень продуктовых компаний/нормальных галер
>на фронта по разным регионам за 70-140 лол.
нужон миддл™
> Но речь не про уровень продуктовых компаний/нормальных галер
быстрафикс
>>60745
Но это всё лирика, лучше объясните мне, я могу как-то достать референс лексического контекста, чтобы закостылить свой bind/call/apply без использования нативных bind/call/apply? Подразумевая, что на нерасширяемый объект я не могу повесить новое поле и вызвать функцию с него? Потому что тот же самый bind/call/apply кладёт хуй даже на зафриженный объект, и позволяет явную передачу контекста.
Проорал в двойне.
Новый перспективный веб-фреймворк Cample.js. Реактивность без VDOM
На сегодняшний момент (версия 3.0.1), фреймворк является активно поддерживаемым в разработке нового функционала. Есть поддержка работы с данными, которые благодаря реактивности без виртуального DOM отображаются крайне быстро:
Тесты быстродействия фреймворка(js-framework-benchmark)
Тесты быстродействия фреймворка
(js-framework-benchmark)
Это не самый быстрый результат из всех, которые существуют на данный момент среди фреймворков. Но, поэтому речь идёт о перспективности.
К примеру, у Vue скорость создания 1000 строк составляет 42 секунды, а у Svelte 48.4 секунды (на момент написания статьи).
Конечно, эти фреймворки во много раз превосходят Cample.js по функционалу и сравнение недостаточно полное. Но, в данном сравнении берётся лишь такой пункт как скорость.
Сама разработка фреймворка началась около года назад. Тогда, была выбрана модель создания компонентов через экземпляры классов. То-есть, компоненты создаются следующим путём:
const component = new Component("new-component",
`<div class="component">
{{component_text}}
</div>`)
На мой взгляд, данная структура является удобной и достаточно практичной. Чтобы не писать постоянно большие конструкции из new Component, была введена также функция, с которой компоненты обрабатываются таким-же образом, но при этом сам код существенно уменьшается.
const newComponent = component("new-component",
`<div class="component">
{{component_text}}
</div>`)
Также, была выбрана модель обработки данных через функцию, возвращающую объект с данными. Сами данные отображаются в HTML template благодаря интерполяции строк.
const newComponent = component("new-component",
`<div class="component">
{{component_text}}
</div>`),
{
data: () => {
return {
component_text: "Text",
};
},
})
Эта конструкция позволяет обрабатывать данные гораздо лучше, чем если бы просто передавался объект.
Также, для изменения данных используются функции, которые передаются через свойство script. Сами функции объявляются в объекте functions.
const newComponent = component("new-component",
`<div class="component" id="el">
{{component_text}}
</div>`),
{
data: () => {
return {
component_text: "Text",
};
},
script: [
({ elements, functions }) => {
const setText = (e) => {
functions?.setText((data) => {
return "NewText";
});
};
elements?.el?.addEventListener("click", setText);
},
{
start: "afterLoad",
el: [{ el: "#el" }],
},
],
functions: {
setText: "component_text",
},
})
Также, у фреймворка присутствует объект each, который повторяет HTML разметку в зависимости от данных.
const newEach = each("new-each",
()=>["val"],
"<div>{{data}}</div>",
{
valueName:"data"
}
);
Все эти компоненты обрабатываются через экземпляр объекта Cample следующим способом.
cample("#example", {
trimHTML: true,
}).render(
`
<div class="example_page">
{{newComponent}}
{{newEach}}
</div>
`,
{
newComponent,
newEach
}
);
Конечно, большинство функций, которые необходимы сегодня для создания prod сайта пока не поддерживаются, но работа над фреймворком идёт.
Фреймворк также довольно неплох тем, что основан на реактивности без виртуального DOM, которая в теории может быть гораздо быстрее, чем реализация через виртуальный DOM.
Если у вас есть мнение по данному фреймворку, будет очень интересно почитать о нём в комментариях! Спасибо большое за прочтение статьи.
Ссылки:
https://github.com/Camplejs/Cample.js
Новый перспективный веб-фреймворк Cample.js. Реактивность без VDOM
На сегодняшний момент (версия 3.0.1), фреймворк является активно поддерживаемым в разработке нового функционала. Есть поддержка работы с данными, которые благодаря реактивности без виртуального DOM отображаются крайне быстро:
Тесты быстродействия фреймворка(js-framework-benchmark)
Тесты быстродействия фреймворка
(js-framework-benchmark)
Это не самый быстрый результат из всех, которые существуют на данный момент среди фреймворков. Но, поэтому речь идёт о перспективности.
К примеру, у Vue скорость создания 1000 строк составляет 42 секунды, а у Svelte 48.4 секунды (на момент написания статьи).
Конечно, эти фреймворки во много раз превосходят Cample.js по функционалу и сравнение недостаточно полное. Но, в данном сравнении берётся лишь такой пункт как скорость.
Сама разработка фреймворка началась около года назад. Тогда, была выбрана модель создания компонентов через экземпляры классов. То-есть, компоненты создаются следующим путём:
const component = new Component("new-component",
`<div class="component">
{{component_text}}
</div>`)
На мой взгляд, данная структура является удобной и достаточно практичной. Чтобы не писать постоянно большие конструкции из new Component, была введена также функция, с которой компоненты обрабатываются таким-же образом, но при этом сам код существенно уменьшается.
const newComponent = component("new-component",
`<div class="component">
{{component_text}}
</div>`)
Также, была выбрана модель обработки данных через функцию, возвращающую объект с данными. Сами данные отображаются в HTML template благодаря интерполяции строк.
const newComponent = component("new-component",
`<div class="component">
{{component_text}}
</div>`),
{
data: () => {
return {
component_text: "Text",
};
},
})
Эта конструкция позволяет обрабатывать данные гораздо лучше, чем если бы просто передавался объект.
Также, для изменения данных используются функции, которые передаются через свойство script. Сами функции объявляются в объекте functions.
const newComponent = component("new-component",
`<div class="component" id="el">
{{component_text}}
</div>`),
{
data: () => {
return {
component_text: "Text",
};
},
script: [
({ elements, functions }) => {
const setText = (e) => {
functions?.setText((data) => {
return "NewText";
});
};
elements?.el?.addEventListener("click", setText);
},
{
start: "afterLoad",
el: [{ el: "#el" }],
},
],
functions: {
setText: "component_text",
},
})
Также, у фреймворка присутствует объект each, который повторяет HTML разметку в зависимости от данных.
const newEach = each("new-each",
()=>["val"],
"<div>{{data}}</div>",
{
valueName:"data"
}
);
Все эти компоненты обрабатываются через экземпляр объекта Cample следующим способом.
cample("#example", {
trimHTML: true,
}).render(
`
<div class="example_page">
{{newComponent}}
{{newEach}}
</div>
`,
{
newComponent,
newEach
}
);
Конечно, большинство функций, которые необходимы сегодня для создания prod сайта пока не поддерживаются, но работа над фреймворком идёт.
Фреймворк также довольно неплох тем, что основан на реактивности без виртуального DOM, которая в теории может быть гораздо быстрее, чем реализация через виртуальный DOM.
Если у вас есть мнение по данному фреймворку, будет очень интересно почитать о нём в комментариях! Спасибо большое за прочтение статьи.
Ссылки:
https://github.com/Camplejs/Cample.js
Чел, мне вообще похуй на чем писать. На чем будут больше платить, и будет больше возможностей для работы, на том и буду писать, сечешь? Хоть на jQuery, хоть на 1C, хоть на бересте блядь. Я срал на весь этот кодинг, мне нужны только деньги
интересно почему ангуляр для чедов, если как раз это фреймворк который диктует больше, чем гибкий реакт, который мы можем как истинные чеды вертеть на хую
Вот так я себе и представляю каждый раз критиков реакта, просто лоботомиты с параличем мозга, которые взамен популярного, адекватного, с большим сообществом и кодовой базой реакта приносят какое-то говно на лопате, причем лопата перемотана синей изолентой, а говно, если уж совсем сильно пахнет, предлагают завернуть в платочек. Просто ссал и срал вам на головы, ебанные дегенераты, идите в пизду
Двачую. В реакт в 19 или 20 версии добавят компилятор, которые будет автоматически добавлять useCallback, useMemo и memo, тогда реакт будет ебать по перформансу всех
Ну и нахуй это говно нужно когда для вебкомпонентов есть няшный, задокументированный, с большим сообществом, легко интегрируем с реактом, разрабатываемый большой корпорацией lit?
Какой компилятор ебать, реакторазрабам бы для начала suspense и use допилить до нормального состояния.
Ну это в теории. Я больше спросил какие задачи реально на работах дают, если задачи того же порядка что обычно на "труъ" языках типа сисярпе, жавы, го (ёба микросервисы, гигамегасложная и важная логика типа финтеха, крипты итд итд) то пиздец конечно.
потому что база - она одна.
база - едина.
каждый раз когда базовичок пишет код, из под его рук текут реки базового кода, он переглядывается с другим ангуляргосподином и между ними невидимая базовая связь, они пишут один код, в одном стиле и даже если они наймут нового базовичка, он сразу пойме: "Это база", и начнет писать код пропитанной базой код.
в то же время: сойбои и омежки "вертят" код как им вздумается, а потом код вертит ими. а новый омежка залетев в команду будет пукать и хрюкать спрашивая "а как оно работает", "а как оно влияет".
У меня возникла спонтанная мысль на фоне зарплатных обсуждений. Хочу биндить контекст без экзотических объектов из нативных бинд/калаплаев, даже к нерасширяемым объектам, как бинд. Меня посетила лишь одна гениальная идея, но попробовать получится позже.
Ангуляр является одним из самых популярных и мощных фреймворков для разработки веб-приложений. Он предоставляет полный набор инструментов и функциональности для создания сложных и масштабируемых приложений. Вот несколько причин, почему ангуляр считается базой:
1. Мощная архитектура: Ангуляр использует компонентную архитектуру, которая позволяет разделить приложение на независимые компоненты. Это упрощает разработку, тестирование и поддержку кода.
2. Обширная документация: Ангуляр имеет обширную документацию и активное сообщество разработчиков. Это позволяет быстро находить ответы на вопросы и решать проблемы.
3. Инструменты разработки: Ангуляр поставляется с мощными инструментами разработки, такими как Angular CLI, который упрощает создание проектов, генерацию компонентов и управление зависимостями.
4. Поддержка от Google: Ангуляр разрабатывается и поддерживается командой Google. Это гарантирует стабильность, безопасность и постоянное развитие фреймворка.
Теперь давайте поговорим о React и Vue. Хотя это также популярные фреймворки, у них есть свои особенности, которые могут сделать их менее подходящими для разработчиков.
1. Обучение и опыт: Если команда разработчиков уже имеет опыт работы с ангуляром, им может быть проще продолжить использовать его, чем изучать новый фреймворк.
2. Масштабируемость и сложность: Ангуляр предлагает более строгую структуру и больше инструментов для управления сложными проектами. Если проект требует высокой масштабируемости или имеет сложные требования, ангуляр может быть более подходящим выбором.
3. Компания и сообщество: Некоторые компании могут предпочитать использовать фреймворк, который имеет большую поддержку от крупных компаний, таких как Google. Это может дать им больше уверенности в стабильности и будущем развитии фреймворка.
Гикбрейнс лахта, успокойся. Мы не будем брать твои курсы. Советую тебе тоже сдохнуть и перестать цыганить.
Да я в курсе, видел в исходниках. Но факт того, что они из обещанного еще для 17 ряхта не риализовали ровным счетом ничего (разве что suspense) отрицать нельзя.
tbh ебало вкатывальщика ангулярщика с курсов мне представить ещё сложнее, чем ебало реактиста. Вторых, правда, я уже видел.
Чел, зависит от проекта. Где-то простые круды, где-то микросервисы с CQRS/Event Sourcing или гексагональной архитектурой.
Ну это понятно. Просто вдруг окажется, что большая часть вакансий это как раз круды, отсюда и сравнительно низкая зп.
вот да, они же там какой-то офскрин рендеринг ещё обещали, батчинг хуятчинг, теперь вообще ёба конпелятор обещают. Пиздеть умеют короче. Но где это всё? Ещё года 2 а то и 3 выкатывать будут
Люди перестали изучать возможности, а учат ограничения. Почти все программисты современности обладают магическим мышлением и мало того, что понятия не имею как устроены вещи и инструменты которыми они пользуются. Они даже не интересуются этим.
Вместо того, чтобы изучить феномен графитации и законов по которым она работает, люди пытаются запоминать список предметов, которые точно упадут на землю, если их подросить вверх.
То же самое в программирование. То же самое в жс. То же самое в любом языке или сфере.
Может кто-то даже наконец поймет, что в жс нет никаких переменных, и на самом деле все они - это свойства объектов с условным классом Scope. И что эти объект выстроены в цепочку наслеования. И внезапно заметит, что с подобным пониманием у него больше не возникнет сложности с пониманием того, ка кработают контексты вызовв в жс, как работает ранее статическое и позднее динамическое связывание.
Ну, а кто-то быть может погрузиться еще глубже и узнает о вещах, вроде того, что код
some(123) = 456
валидный жс-код, и почему именно.
Наконец, когда хоть кто-то, кого мои увлекательные примеры нестандартных приемов заинтересовали, перестанет заниматься тупым заучиванием правил, а перейдет к изучению принципов из которых эти правила можно вывести - мир станет лучше.
А в реальной работе, о которой ты говоришь во всяком случае, это не применяется в том виде, в которм ты может быть подразумеваешь. Ты не встретишь чтобы кто-то расширял проксей примитив в продакшн корпоративном коде. Но можешь встретить чтобы это было использовано в тестировании. А понимание принципов того, почему это работает, может понадобится например для написания нативных модулей для движков, биндингов к чему-лио и пробросом этого в жс рантаймы.
Ты должен обладать пытливым умом, любопытством и эрудицей. А не стремлением к тому, чтобы вписать себе резюме строчку знания определенной технологии, которую ты на самом деле не знаешь.
Либо ты любишь свое дело. Либо ты будешь выебан по самые гланды, выгоришь и будешь страдать, прозябая в невежестве, так никогда и не поняв, почему у тебя не получается стать мастером своего дела.
Люди перестали изучать возможности, а учат ограничения. Почти все программисты современности обладают магическим мышлением и мало того, что понятия не имею как устроены вещи и инструменты которыми они пользуются. Они даже не интересуются этим.
Вместо того, чтобы изучить феномен графитации и законов по которым она работает, люди пытаются запоминать список предметов, которые точно упадут на землю, если их подросить вверх.
То же самое в программирование. То же самое в жс. То же самое в любом языке или сфере.
Может кто-то даже наконец поймет, что в жс нет никаких переменных, и на самом деле все они - это свойства объектов с условным классом Scope. И что эти объект выстроены в цепочку наслеования. И внезапно заметит, что с подобным пониманием у него больше не возникнет сложности с пониманием того, ка кработают контексты вызовв в жс, как работает ранее статическое и позднее динамическое связывание.
Ну, а кто-то быть может погрузиться еще глубже и узнает о вещах, вроде того, что код
some(123) = 456
валидный жс-код, и почему именно.
Наконец, когда хоть кто-то, кого мои увлекательные примеры нестандартных приемов заинтересовали, перестанет заниматься тупым заучиванием правил, а перейдет к изучению принципов из которых эти правила можно вывести - мир станет лучше.
А в реальной работе, о которой ты говоришь во всяком случае, это не применяется в том виде, в которм ты может быть подразумеваешь. Ты не встретишь чтобы кто-то расширял проксей примитив в продакшн корпоративном коде. Но можешь встретить чтобы это было использовано в тестировании. А понимание принципов того, почему это работает, может понадобится например для написания нативных модулей для движков, биндингов к чему-лио и пробросом этого в жс рантаймы.
Ты должен обладать пытливым умом, любопытством и эрудицей. А не стремлением к тому, чтобы вписать себе резюме строчку знания определенной технологии, которую ты на самом деле не знаешь.
Либо ты любишь свое дело. Либо ты будешь выебан по самые гланды, выгоришь и будешь страдать, прозябая в невежестве, так никогда и не поняв, почему у тебя не получается стать мастером своего дела.
Я знаю это в теории, на собесе могу пересказать как ёбаный студент наизусть. Нюанс в том что я не работал с этой хренью ни разу, за пределами обучения.
я за два года ни разу не использовал большую часть стандарных методов массива.
но я их знаю.
проблем не вижу.
>Scope
Откуда эта хрень вообще взялась? В спецификации не нашёл никакого Scope, Scope Chaining и подобной мути. Зато в хроме через console.dir для функции можно вывести какой-то [[Scopes]] . Это чё такое?
Посмотри, банально, хотя бы что есть. Лучше забыть как оно работает/что точно делает и что принимает, чем не знать, что такой функционал вообще есть, а потом экстренно покидать корабль.
Что-то полезное, на твой взгляд, можно вообще выписать, чтобы зафиксировать в памяти. Ещё лучше - попракать.
Если область применения нужна, сейчас вообще проблем нет - можно спросить гугл или гопоту. Вторая даже шаблонный пример накинет защеку. Хоть на это её хватает.
>>61315
В тексте выражается мнение, что в JavaScript не существует переменных, а все переменные на самом деле являются свойствами объектов с условным классом Scope. Также указывается, что эти объекты строятся в цепочку наследования.
Далее утверждается, что если человек осознает это понимание, то ему будет легче понять, как работают контексты вызова в JavaScript, а также статическое и динамическое связывание.
Это высказывание отражает особенности работы JavaScript и его концепцию области видимости (scope). В JavaScript переменные создаются с помощью ключевого слова var или let и являются свойствами объекта с определенной областью видимости. Область видимости может быть глобальной или локальной, и переменные могут быть доступны только внутри своей области видимости.
Также в JavaScript существует механизм цепочки областей видимости, который называется цепочкой областей видимости (scope chain). При поиске значения переменной JavaScript сначала ищет ее в текущей области видимости, а затем во внешних областях видимости по цепочке.
Контекст вызова в JavaScript определяет значение ключевого слова this внутри функции. Контекст вызова может быть установлен явно с помощью методов call(), apply() или bind(), или он может быть определен неявно в зависимости от контекста вызова функции.
Статическое связывание в JavaScript означает, что связывание переменных с их значениями происходит во время компиляции программы. Динамическое связывание, с другой стороны, означает, что связывание переменных происходит во время выполнения программы.
Понимание этих концепций помогает разработчикам лучше понять, как работает JavaScript и как использовать его возможности для разработки приложений.
При использовании чата гопоты интернет может стать менее приятным и безопасным местом. Чаты гопоты могут быть заполнены оскорблениями, нецензурной лексикой и негативным поведением. Это может создавать неприятную атмосферу и приводить к конфликтам между пользователями. К счастью, существуют другие платформы и сообщества, где люди могут общаться более вежливо и конструктивно.
Такая же зп как у остальных, если чисто бекенд. Если фуллстек, то там часто проект второсортные и ниже, поэтому и платят меньше.
А таких вакансий много? Я чёт в своей мухосрани даже не видел, если нодежс то сразу фулстек, и зп дно
Практика на нем для меня похожа на старую игру и вылезающими из дырок сусликов и молотком где ты забиваешь одного суслика, а из другой дырки появляется новый
Для примера могу привести задачу, очень простую, нужно сделать список с пагинацией, фильтрами и чтением/записью query string - а для того чтобы манагеры могли удобно копипастить друг другу ссылки
Список я сделал, пагинацию прикрутил, пробросил api, но с пробросом параметров в строку запроса я поел говна
В императивном нокауте подобная фигня решается на раз - два, при инициализации компонента ты читаешь строку, парсишь ее, забрасываешь значения в обсервабл откуда их подхватывают поля формы, а при изменении этих полей берешь и подставляешь строку в зад, как это делать с реактом я так до сих пор не могу понять
Окей, подзадача 1 - вытащить парамы и засунуть их в стейт, отвечающий за значение инпутов фильтров. Казалось бы официальная дока говорит нам что нужно вызывть useEffect с пустым массивом зависимостей и тогда это отработает только один раз при создании компонента как мне и нужно, но вот проблема, если сделать так то линтер начинает ругаться на то что отсутствует зависимость от searchParams из react-router-dom, который я использую для получения параметров. Хорошо, а как тогда? Я не хочу чтобы состояние строки отслеживалось в процессе жизни компонента, но если я засуну searchParams в зависимости то произойдет именно это. Ладно решил я, хочет линтер зависимость пока поставлю, даст бог не полезет боль
Но боль полезла и полезла она при обратной передаче параметров в строку. Строка ставится через тот же useSearchParams, useEffect отслеживает изменение стейта и передает этот стейт в строку поиска. Как только я закодил эту часть я получил циркулярку выевшую всю память выделенную под вкладку. Я понял механизм, изменение читает юзэффект из п.1, обновляет стейт, юзэффект стейта обновляет строку, изменение читает юзэффект из п.1 и так по новой, но ссссуууука Где я не догоняю и как сделать правильно? Попробовал переделать тот же функционал на ангуляре с внятными классами и жизненным циклом компонента - управился за пол часа, а с реактом я бьюсь как обезьяны держащая пучок проводов и не понимающая в какую дырку их воткнуть
Проблему можно даже обобщить, потому что я не в первый раз сталкиваюсь с тем, что мне нужно что-бы в useEffect что-то делалось с чем-то, но я блядь не хочу что-бы это "чем-то" отслеживалось в реалтайме. Как такое решается? Или это тот случай когда нужно использовать классовые компоненты без ебли с useWhatever и всем вот этим реактивом? Как в общем случае решаются подобные проблемы? Есть конечно всякие хаки типа объявить какой нибудь useRef с флагом и взводить его при первом проходе, но неужели это подход самого популярного фреймворка в вебе?) Я как будто что-то концептуально не догоняю и бьюсь об стену, не хочется дропать и уходить в тот же ангуляр, мне очень нравится богатый выбор либ под реакт и синтаксис jsx, но мне вот просто некомфортно постоянно продираться через зависимости переменных друг от друга и неявные вызовы коллбэков, а главное от ощущения что я бы тот же функционал сделал на порядок быстрее и качественнее если бы мне дали нормальные классы с нормальными методами и нормальным жизненным циклом компонента. Что рекомендуете почитать/поделать? Хочется втянуться, но пока не получается, и это вызывает подобные крики души
PS: знаю про классовый подход в реакте и мне понравилось писать на классах, но почему-то все знакомые фронты говорят что классы фу и устаревший шлак, надо обязательно писать на функциональных
Практика на нем для меня похожа на старую игру и вылезающими из дырок сусликов и молотком где ты забиваешь одного суслика, а из другой дырки появляется новый
Для примера могу привести задачу, очень простую, нужно сделать список с пагинацией, фильтрами и чтением/записью query string - а для того чтобы манагеры могли удобно копипастить друг другу ссылки
Список я сделал, пагинацию прикрутил, пробросил api, но с пробросом параметров в строку запроса я поел говна
В императивном нокауте подобная фигня решается на раз - два, при инициализации компонента ты читаешь строку, парсишь ее, забрасываешь значения в обсервабл откуда их подхватывают поля формы, а при изменении этих полей берешь и подставляешь строку в зад, как это делать с реактом я так до сих пор не могу понять
Окей, подзадача 1 - вытащить парамы и засунуть их в стейт, отвечающий за значение инпутов фильтров. Казалось бы официальная дока говорит нам что нужно вызывть useEffect с пустым массивом зависимостей и тогда это отработает только один раз при создании компонента как мне и нужно, но вот проблема, если сделать так то линтер начинает ругаться на то что отсутствует зависимость от searchParams из react-router-dom, который я использую для получения параметров. Хорошо, а как тогда? Я не хочу чтобы состояние строки отслеживалось в процессе жизни компонента, но если я засуну searchParams в зависимости то произойдет именно это. Ладно решил я, хочет линтер зависимость пока поставлю, даст бог не полезет боль
Но боль полезла и полезла она при обратной передаче параметров в строку. Строка ставится через тот же useSearchParams, useEffect отслеживает изменение стейта и передает этот стейт в строку поиска. Как только я закодил эту часть я получил циркулярку выевшую всю память выделенную под вкладку. Я понял механизм, изменение читает юзэффект из п.1, обновляет стейт, юзэффект стейта обновляет строку, изменение читает юзэффект из п.1 и так по новой, но ссссуууука Где я не догоняю и как сделать правильно? Попробовал переделать тот же функционал на ангуляре с внятными классами и жизненным циклом компонента - управился за пол часа, а с реактом я бьюсь как обезьяны держащая пучок проводов и не понимающая в какую дырку их воткнуть
Проблему можно даже обобщить, потому что я не в первый раз сталкиваюсь с тем, что мне нужно что-бы в useEffect что-то делалось с чем-то, но я блядь не хочу что-бы это "чем-то" отслеживалось в реалтайме. Как такое решается? Или это тот случай когда нужно использовать классовые компоненты без ебли с useWhatever и всем вот этим реактивом? Как в общем случае решаются подобные проблемы? Есть конечно всякие хаки типа объявить какой нибудь useRef с флагом и взводить его при первом проходе, но неужели это подход самого популярного фреймворка в вебе?) Я как будто что-то концептуально не догоняю и бьюсь об стену, не хочется дропать и уходить в тот же ангуляр, мне очень нравится богатый выбор либ под реакт и синтаксис jsx, но мне вот просто некомфортно постоянно продираться через зависимости переменных друг от друга и неявные вызовы коллбэков, а главное от ощущения что я бы тот же функционал сделал на порядок быстрее и качественнее если бы мне дали нормальные классы с нормальными методами и нормальным жизненным циклом компонента. Что рекомендуете почитать/поделать? Хочется втянуться, но пока не получается, и это вызывает подобные крики души
PS: знаю про классовый подход в реакте и мне понравилось писать на классах, но почему-то все знакомые фронты говорят что классы фу и устаревший шлак, надо обязательно писать на функциональных
> пробросом параметров в строку запроса я поел говна
Используй готовый роутер, для вката в реактодебилы пойдет. Дальше свой велосипед уже сможешь написать.
>useEffect отслеживает изменение стейта и передает этот стейт в строку поиска.
В чем траблс просто изменение строки поиска сразу писать в урл?
В компоненте где инпутЖ
<input onChange={e => setSearchParams((old) => ({...old, query: e.currentTarget.value}))} />
Потом компонент, где у тебя запрашиваются данные ты как раз и делаешь:
useEffect(()=>getData(seachParams), [searchParams])
Получается, что при любом изменении search параметров у тебя будет сделан новый запрос. На будущее сможешь прикрутить дебаунс еще.
Не много, но не слишком мало. Ниже среднего. На западе вот побольше. А так всё равно джава и сишарп популярнее для бекенда. Но вообще зачем смотреть вакансии в какой-то мухосрани, когда можно искать удалёнку по всей РФ + Беларуси и Казахстану. Мне как нодобекендеру вакансий всегда хватало, в РФ достаточно крупных компаний пишут бекенд на ноде.
Языком вкатунов:
//компонент 1
const [usp, setUsp] = useSearchParams();
return <input value={usp.get("query")} onChange={e => setUsp((old) => ({...old, query: e.currentTarget.value}))} />
// компонент 2
const [usp] = useSearchParams();
const query = usp.get('query');
const [loading, setLoading] = useState(true);
const [data, setData] = useState(null);
useEffect(()=>{
setLoading(true);
fetchТвоюЗалупу(query).then(data => {setData(data); setLoading(false})
}, [query])
if (loading) return <div>loading...</div>;
return <div>{JSON.stringify(data)}</div>;
Это если что совсем вкатунский вариант. Тру реакт-террористы из метаигила ебушут на suspensa'х
В роутере есть хук useSearchParams, он считывает квери и позволяет манипулировать. Если после первого рендера нужно ещё дополнительно изменить, то вместо нового значения ты передаёшь функцию, она принимает старое значение и возвращает новое. Так не будет никакой зависимости в эффекте и соотв. ререндера. Но вообще эта тема с эффектами и зависимостями очень геморная, настолько что есть библиотеки с эффектами типа useUpdateEffect (эффект только при обновлении указанных зависимостей, но не при первом рендере) , useMount (при первом рендере) и т. д. специально чтобы заткнуть статический анализ.
Ещё иногда пользуются эффектами как обзёрверами с массивом зависимостей-обзёрваблов, имея в виду более гранулярную реакцию не на каждое изменение, а в произвольный момент. Потом городят доп. условия чтобы отфильтровать лишние срабатывания эффекта. Вообще какого хрена в реакте нет полноценных обзрваблов?
>есть библиотеки с эффектами типа useUpdateEffect (эффект только при обновлении указанных зависимостей, но не при первом рендере) , useMount (при первом рендере) и т. д. специально чтобы заткнуть статический анализ
Ох ебать фронтомакаки тупые... Вместо одного коммента eslint-ignore готовы накачать ебейшее количество либ...
Ну бля один хуй шо то шо это хуйня, предупреждения они же не просто так, просто трушная семантика эффектов, как её задумывали не ложится на многие кейсы, и приходится такие костыли городить.
Всё прекрасно ложится, просто надо уметь пользоваться всеми доступными хуками, а не хуярить эффекты под любой случай.
>что есть библиотеки с эффектами типа useUpdateEffect (эффект только при обновлении указанных зависимостей, но не при первом рендере) , useMount (при первом рендере) и т. д. специально чтобы заткнуть статический анализ.
ёбаный стыд
Пример: сервис, полученный из di контейнера, загружает данные. По идее в зависимостях эффекта, который загружает данные мы должны добавить ссылку на сервис. А если например сервис изменится, нам что, заново загружать данные? Скорее всего нет, поэтому мы либо ебём статический анализ в сраку, либо полагаемся на то что сервис не изменится, либо же в эффекте раньше выходим из функции по условию. Все три варианта говно так или иначе.
Да, те самые компоненты примонтировались, компоненты обновились, только как с теми самыми после рендера в фазе коммита. Дальше то что?
Нахуя ты заружаешь данные эффектом? Тебе еще с 16 версии сказали, что вся асинхронщина должна выполнятся через Suspense.
Вижу рекламу юзмаунта и юзапдейт эффекта
Чел, поинт не в том что это обязательно из библиотеки тащить. Это 3 строчки буквально, понятно что только ради них библиотеку не качают. В довесок там ещё дохрена полезных штук. Мой поинт изначально был в том что эффекты часто хакают и костылят для нужного поведения.
Ну саспенс и абстракции вроде react query не сразу появились, долгое время нормой было в эффектах делать запросы, да и щас тоже так делают. И для такого рода хрени эффекты не подходят и наверно даже не задумывались.
Ты врядли вкатишься конечно, но вот на этом https://www.youtube.com/watch?v=G3e-cpL7ofc&t=22106s видосе я за неделю вкатился в ксс/хтмл до уровня позволяющего клепать практически любую статику/ По жс у него видос не хуже в прицнипе
>долгое время нормой было в эффектах делать запросы
Никогда это не было нормой. Разве что в помойных галерах, которые к битриксу прикручивают реакт.
>не сразу появились
Уже 3 года как.
>react query
Это тут причем?
Да дохуя вариантов было еще до суспенса. Те же натянутые на редакс саги и прочие тханки.
С каких пор сабскрайб в эффекте происходит? Ебнулся? Ты Состояние компонента тоже в эффекте реализуешь? Хуй будешь?
x d
https://pskov.hh.ru/resume/59fe13fdff0b40bb800039ed1f5364394c5850?disableBrowserCache=true&hhtmFrom=resume_list
Нормас, но надо больше технических деталей. Типа с каким компонентами работал, подробный тех стек.
Принимается. Сейчас смотрю, в jotai нормально можно без доп. пакетов запросы выполнять в дефолтном гетере атома.
У тебя там резюме в режиме редактирования?
Ето же даже не таблица с уровнем владения по скилам.
Полная хуйня, для кого это написано? Ты серьезно думаешь, что кадровичка будет это читать?
>Великолукская государственная академия физической культуры и спорта, Великие Луки
>Педагогика и психология
мда, таков сегодня средний вкатун...
>Каллеги, напомнтие, почему фронт докатился до таких портянок?
Это скорее вопрос к системе поиска на хх.
В "О себе" кал какой-то.
В том, что отсутствует SSR, отсутствует кеш, нет возможности без ебли шарить полученные данные между компонентами/кешировать
да это внатуре тип людей которых говнокурсы принимают и штопают из них хуй пойми кого. Вчерашние петровичи-водоносы, физруки, выпускники дальневосточного горного университета кафедры узбекских песен и плясок и тд
Ну ssr не всегда нужен, как и кеш. А шарить данные по разному можно, не только через стор редакса и подобной залупы
Ты утрируешь. Мне нужно чтобы оно быстро работало на клиенте, первая загрузка для меня не критична. JSON я могу по необходимости отдать.
мимо
>мне ни нужно значит всем ни нужно!!! жрите медленное говно, потому что НИ НУЖНО!!! ПОВТОРЯЮ НИ НУЖНО!!!
Нет, это ты суешь везде SSR, я тебе конкретно говорю, что вот у меня есть веб app, который я хочу чтобы загрузился и работал на клиенте. Мне не нужна там ни индексация ни SEO, ни семантика. При необходимости просто докидываю данные. Проблемы?
А, ну т.е. для самого простого кейса проблем нет. Понял, спасибо.
>вот мне лично похуй на производительность, потому что никто моей поделкой кроме меня пользоваться не будет.
this but unironically
Я тебе уже сказал неоднократно: высокая производительность, аксессабилити, семантика нужна ВСЕМ. То, что её много где нет значит только то, что приоритет реализации вышеуказанных фич ниже других задач.
Я для того и спросил совета, чтобы мне ответили хотя бы в двух словах что не так, но ты видимо тут сидишь ради простого срача. Потому пошел нахуй, пес, не пиши мне больше :)
Да куда блядь там твой гибридный SSR всем нужен, который по сети гоняет не только данные, но и разметку с компонентами?
Я не говорю даже, про layout, который останется, хорошо. Часть страницы тянется целиком. Мне нужны бесшовные переходы без подгрузок в любой раздел, единственное что допускается - загрузка данных.
И даже не как это сделано в next с его линками, когда он начинает фетчить контент ссылки на hover.
Психолог не тот, кто ко всем подстраивается. Подстраивающийся под всех человек - это просто тряпка. Не путай
Забей на шизика, сср это кринж для всяких дешбордов, при желании можно прикрутить но точно не нужно. У людей вкладка может не закрываться неделями, а мы тут дрочимся ради первого запроса. Графики хуй ты на сервере отрендеришь если не захардкоженная ширина, остаются только таблицы и формы. Те самые формы, в которые можно начать писать а потом при гидрации потерять весь инпут. У тебя может быть ебанутый лейаут, который зависит от дименшенов, да что угодно. Вопрос ради чего это всё?
>>61860
>высокая производительность
Ты же в курсе что нода может в строку дольше рендерить чем клиент получит чанк от статического сервера? Или мы про визуальную производительность?
>аксессабилити, семантика
А причем тут SSR?
>Мне нужны бесшовные переходы без подгрузок в любой раздел, единственное что допускается - загрузка данных.
Ну нужны, как это с SSR связано?
>>61872
>Ты же в курсе что нода может в строку дольше рендерить чем клиент получит чанк от статического сервера? Или мы про визуальную производительность?
А то, что нода уже с мезозоя как раз чанками рендерит ты не в курсе?
>А причем тут SSR?
Как пример привел
Стоит, по факту голый реакт мало кому на рынке нужен
Изучай Nuxt
Next это и есть голый реакт с небольшими доплнениями в виде собственного конфига под вебпак и парочкой компонентов. Если ты хорошо знаешь реакт, то вкат в некст у тебя займет всего пару дней.
Да. Не забывай еще что в первому случае на твоем пике на старнцие нет нихуя кроме статического контента, а во втором у тебя полноценное приложение с интерактивностью и анальными зондами
И еще нативно под макось, линух, айось, и андрюшу. Бюджет посчитать главное не забыть и толковых разрабов найти под каждую из платформ.
После SSR эстафета у жиесеров стала еще длиннее?
На каждом проекте свои требования по метрикам. Будет ли это страничка банка, где лютый дроч на SEO/accessibility и микро-макро оптимизации, или увешанный намертво дешбордами личный кабинет, хуйни_нейм, где важно сделать быстрые переходы между разделами с минимальным обменом данных после после загрузки приложения - зависит от целей.
Можно отдать статику (SSG)/срендерить страничку на лету (классический SSR)/отдать статику HTML+CSS для первого рендера ебаному роботу и потом гидрировать (гибридный SSR - отдать статику, + гидрация для получения интерактивной страницы как в CSR).
У каждого подхода будет переклон в ту или иную метрику web vitals. Третий подход, гибридный - попытка взять лучшее из обоих миров. За это, с тем же next'ом, ты платишь рантаймом, который занимается этой хуйнёй с менеджментом что грузить за тебя.
>>61983
У этого представление об SSR как о гибридном SSR состоящего из отдачи спрекомпиленной статики для быстрого TTFB и первичного рендера + последующая гидрация
>>61984
> кококодерастам много платят
> КОКО НАШИ WPФОРМОЧКИ НЕ РАБОТАЮТ НА ВИНДЕ, НАШЕ QT ОТВАЛИЛОСЬ НА НИКСАХ, НАШЕ ЧТО-ТО НА МАКОСИ
> КОКО НАТИВЩИКИ АНДРОЙДЩИКИ
> КОКО НАТИВЩИКИ ГЕЙОСНИКИ
> КОКО ВЕБ ОТДЕЛЬНО
@
в продукте каждой команды свои уникальные баги
Кабанчики хотят залезть в трусы своим клиетам, поэтому от нативных мобилых приложений ты никуда не денешься. Есть промежуточный вариант. Сделать нативное приложение под мобилку, но внутри вебвью отбражать сайт на реакте.
Это настолько гениально, что просто гениально. Но что мне тогда мешает взять react native? Как тот же дискорд.
Шоб не ебать мозги реактнативом. Большинство задач сделают фронты и беки, а уже меньшее количество задач можно на фрилансе нанять макаку по мобилкам. Экономия.
Сделаю за 5к
К сожалению, я не могу предоставить вам готовый код или таблицу для выгрузки отчетов из wld в Google Таблицы через API. Однако, я могу поделиться общим подходом к этой задаче.
1. Начните с создания проекта в Google Cloud Console и включите для него API Google Sheets.
2. Создайте учетные данные для доступа к API Google Sheets и скачайте файл JSON с ключами доступа.
3. Установите необходимые библиотеки Python, такие как google-auth, google-auth-oauthlib и google-auth-httplib2.
4. Используйте библиотеку requests или аналогичные для выполнения запросов к API wld и получения отчетов.
5. Используйте библиотеку gspread для работы с Google Таблицами через API.
6. Авторизуйтесь с помощью учетных данных Google Sheets и откройте нужную таблицу.
7. Прочитайте данные из отчета wld и запишите их в таблицу Google Sheets.
Вот пример кода на Python, который может помочь вам начать:
python
import requests
import gspread
from google.oauth2.service_account import Credentials
# Авторизация в Google Sheets
credentials = Credentials.from_service_account_file('path/to/credentials.json')
client = gspread.authorize(credentials)
spreadsheet = client.open('Название таблицы')
# Получение отчета из wld
response = requests.get('api.wld.ru/path/to/report')
report_data = response.json()
# Запись данных в Google Sheets
worksheet = spreadsheet.sheet1
worksheet.clear()
worksheet.append_rows(report_data)
Обратите внимание, что вам нужно будет заменить 'path/to/credentials.json' на путь к вашему файлу JSON с ключами доступа, а 'Название таблицы' на название вашей таблицы Google Sheets.
Это только базовый пример, и вам может потребоваться настроить код в соответствии с требованиями wld API и вашими потребностями.
К сожалению, я не могу предоставить вам готовый код или таблицу для выгрузки отчетов из wld в Google Таблицы через API. Однако, я могу поделиться общим подходом к этой задаче.
1. Начните с создания проекта в Google Cloud Console и включите для него API Google Sheets.
2. Создайте учетные данные для доступа к API Google Sheets и скачайте файл JSON с ключами доступа.
3. Установите необходимые библиотеки Python, такие как google-auth, google-auth-oauthlib и google-auth-httplib2.
4. Используйте библиотеку requests или аналогичные для выполнения запросов к API wld и получения отчетов.
5. Используйте библиотеку gspread для работы с Google Таблицами через API.
6. Авторизуйтесь с помощью учетных данных Google Sheets и откройте нужную таблицу.
7. Прочитайте данные из отчета wld и запишите их в таблицу Google Sheets.
Вот пример кода на Python, который может помочь вам начать:
python
import requests
import gspread
from google.oauth2.service_account import Credentials
# Авторизация в Google Sheets
credentials = Credentials.from_service_account_file('path/to/credentials.json')
client = gspread.authorize(credentials)
spreadsheet = client.open('Название таблицы')
# Получение отчета из wld
response = requests.get('api.wld.ru/path/to/report')
report_data = response.json()
# Запись данных в Google Sheets
worksheet = spreadsheet.sheet1
worksheet.clear()
worksheet.append_rows(report_data)
Обратите внимание, что вам нужно будет заменить 'path/to/credentials.json' на путь к вашему файлу JSON с ключами доступа, а 'Название таблицы' на название вашей таблицы Google Sheets.
Это только базовый пример, и вам может потребоваться настроить код в соответствии с требованиями wld API и вашими потребностями.
+ все заказчики из РФ, а тут явно ищут чела на зарубежную галеру
ну так от трех лет же.
я, псевдомидл тоже попал на вакуху, на год больше требующую.
да и не все 200к получают.
вон, аноны из б как-то делись зпхами, были мидлы с 100к, даже пруфали налоги. сидит себе анон уже пятый год с одной зпхой и в хуй не дует. ему в кайф. не все жаждут быть наносеками.
мимо не кабанчик.
Да, в OpenAI GPT-3 было встроено API для взаимодействия с чат-ботами. Вы можете использовать API для создания и развертывания своего собственного чат-бота на основе модели GPT-3. Однако, учтите, что использование API GPT-3 может потребовать определенных знаний программирования и работы с API.
>API GPT-3 может потребовать определенных знаний программирования и работы с API.
И ДЕНЕГ СУКА! ХУЛИ ТЫ НЕ ГОВОРИШЬ, ЧТО ЭТО ПЛАТНО, ЗАЛУПА ТЫ ЖЕЛЕЗНАЯ?
Приношу извинения за отсутствие уточнения в предыдущем ответе. Да, использование API GPT-3 является платным. Цены и подробности о тарифах можно найти на официальном сайте OpenAI.
>вон, аноны из б как-то делись зпхами, были мидлы с 100к,
Я таких видел. Но я не хочу дружную весёлую галеру с офисом. Практика показала, что галера в случае проблем на проекте со стороны заказчика и его процессов, если тебя не хотят снимать оттуда, нихуя не помогает и становится пятым колесом.
А так вполне может встретить реальную глыбу, которая на вопрос а зачем ты устроился и в офис ходишь? отвечают, что это потому что дома сидеть заебало. А потом релоцируются по сочному оферу до хирургической операции.
Опять-таки, ты не знаешь, почему там такой ценник формируется. Специалиста не ценят, а ему и норм, или же покрывают за счёт специалиста операционные расходы бодишопа, на длительные бенчи и прочую залупу.
Да и добавлю, что среди всех этих 100к бичей, заменимых, может быть один незаменимый, которому реально будут платить приближённо к рынку.
Подскажите плиз хороший бенчмарк со сравнением CSR, SSR, SSG и что там еще бывает. В идеале, чтобы были 1 или несколько страниц и варианты создания их во всех патернах и с таблицей размеров бандлов, где и какая скорость улучшается, все плюсы и минусы и т.д.
Пик-нейчакэ
2) Поборник битрикса и php
3) бэк на ноде
4) фронт на vue
Как я и говорил ранее, воннабимиддлы шринкнули грейды джуна и миддла в миддла
>отчитываться за каждую минуту
Как получится, от процессов и членов команды
>делать всё с первого раза и все такое
Подразумеваются некоторые навыки и знания, да
> Сейчас вот на галере сижу за 95к
Подумой ещё раз, как устроены процессы на галере. Возможно тебя продают за условные 160, а ты сосёшь хуй
> могу работать по 3-4 часа и капчевать оставшееся время
Ты можешь хоть в очечелло долбиться, пока не надо мышкой двигать даже на созвонах, главное чтобы таски по расписанию
> Насколько загружены работой те, у кого зп около 200к
Навыки + знания => быстрее и проще закрывать таски
???????????
Да по поводу смены. в 90% случаев произойдёт замена галеры на галеру. Просто закончишь работой на условный сбер/прочие сберы аутстафом с другой галеры.
> вышка горная
> вышка позорная
> вышка идентичная натуральной IT вышки
>
>
> неокоченная профильная и нет
>
> 9 классов
Тащемта, у меня со специальности старпёры выжили практически всю группу, своим непринятием и нескрываемой неприязнью к новому/современному (почему препода ебёт, что в свободное время студенты осваивают современные языки и стек?) которое выливалось в чморение на экзаменах и приёме лабок.
Кто хотел, а это 60% группы, все попали в кодинг. Будь то мобилки, фронт или бек
Речь про образование шла. Ты реально подумал, что у меня в резюме указано:
9 классов образования
>>62192
У меня еще более забавная ситуация. Я сначала пошел учиться в более-менее приличное училище в своем городе, по специальности связанной с кодингом, ушел оттуда после первого года. Еще там была 1 чел, который ушел через полгода. Ближе к выпуску мою (бывшую) группу объединили с другой группой, т.е. изначально выборка была больше 40 человек. В итоге кодерами стали только я и тот чел, который через пол года ушел. Встретился недавно со своим другом, с которым в первый год обучения дружил, он мне все и рассказал. Там кто-то вполне успешным стал по другим направлениям, но вот именно кодером, получается, не стал никто из них
Вот и думаю, это я так продешевил? Или сейчас все воннабимидлы просят 250к?
реактодебил 3 года
Не все, 250 это в районе верхней границы для мидлов
Сейм, некоторые сливаются после озвучивания ожиданий. Это норма. Тем более сейчас. Хотя, как по мне, проще позвать охуевшую чуть-чуть рожу с опытом, чем ковыряться месяц в откликах, дёргая на собесы лида/подлида. Есть более менее адекватные, которые говорят просто "заебись, в нашу/заказчика вилку это попадает", или "а есть ещё проект, но там вилка, допустим на 10к меньше от запрошенных".
В смысле на хабре сказали? Там вообще-то наоборот занижают зарплаты. Я работаю с 2015 года, знаю как дела обстоят на рынке. Это про годные компании, на второсортных галерах могут и "сеньору" 200к платить.
КПД поста стремится к нулю. Если только ты не хочешь заставить анона умолять.
Даже у этого больше
типизировал бы два часа.
Годное видео, я думал итт нет зоошек. Я сам тоже практикующий с собакой зоо реактодебик. Иногда скучно что ирл в программировании все поголовно натуралы или геи, кого то типа меня нет либо скрываются.
Можешь не строить мз себя нитакусю. Мы же на дваче, тут все свои. Так что давай рассказывай, как ты после девятичасового шлепания форм шлепаешь своего пёсика в его задний эвент луп.
я не люблю песиков.
да и живности нету дома.
только один/два паука на уличной стороне окна.
у меня на нигротянок то евент не срабатывает, а ты про зоо, шиз.
Я так и говорил. что если с релокацией - пусть платят теже 250к. Ибо я не хочу снимать хату и жить с чурками за свой счет.
Какая разница, с релокацией или без, наоборот на удалёнке как раз можно зарабатывать зарплаты как в Москве, в то время как живёшь в мухосрани, где всё дёшево
Да я понимаю, но меня никуда не звали, пока у меня желаемый уровень ЗП был 200к. Пришлось поубаваить планочку. сейчас вообще миддл с окладом 100к, так что +80к к окладу это неебейший буст
У тебя ЗП хотя бы меньше 180к было. Ебало имагинируй, когда у тебя 200net, а тебе либо вилку озвучивают до 180, либо сливают.
>Есть 1,5 года коммерческого опыта
>Что я делаю не так?
Пишешь, что у тебя 1.5 года вместо того, что бы писать что у тебя его 3.5 года.
>Я не пиздабол.
Автофильтру похуй, пиздабол ты или нет, если не попадаешь в нужный диапазон.
А разбирать в 500 откликах кто из этих ёбичей с 1-2 года опыта пиздит - неблагодарное занятие.
>>63494
>У меня есть профильная вышка в топ универе. Всем похуй.
Значит как тебе и сказали, вылезаешь из границ автофильтров, и внезапно будешь качественно отличаться. Дальше только пробития дна на собесах.
>Я не пиздабол.
Ой какой честненький мальчик! Ну ничего, еще лет 5 поживешь и поймешь, что без пиздежа ты ничего не добьешься в этой жизни.
>У меня есть профильная вышка в топ универе. Всем похуй.
Так че ты в жс треде сидишь, а не ядро линукса разрабатываешь, выпускник топ вуза?
Ты думаешь, что я доебываюсь, но работодатель, вероятно, рассуждает похожим образом. Хули толку от твоего топ вуза, если необходимую базу для фронтэнда дают и на курсах обычных. На всякий случай уточню: база тебя не делает эффективным гребцом, эффективным гребцом тебя делает практика, но уник -- это не про практику.
>умения грести
умения ботать, брать двойные интегралы и получать тройку на экзамене за коньячек преподу
От масок в тик токе. Если ты пристально посмотришь, то там прямо видно, как он пространство вокруг себя преломляет.
Да пиздеж это всё. Все, кого я знал на похуях сдавали все сесси и колоквиумы, а всякие отличники ебаные нихуя вайти в итоге не вкатились.
Ну с руками вас не отрывают что-то все равно, по сравнению с выпускниками не топ вышек.
Меня один раз гоняли по внутрянке v8 и микрооптимизациям но довольно поверхностно, типа дали несколько примеров кода и спросили в чем тут проблема. Был массив куда пушем добавлялись значения, надо было объяснить почему это работает медленно.
Спросили сколько бит в smi и почему так, есть ли разница с нодой. Моно/Поли/Мегаморфизм, IC, в каких случаях доступ к полю объекта будет быстрым. Попросили отладить кусок кода и сказать почему случилась делптимизация. Потом пару вопросов по хипу, чё такое Олд/Нью Спейс. Это все что вспомнил. Вакуха была на senior frontend 130k/y, на стартап который пилил bi со своим движком формул ( как Ексель, но с более широкими возможностями)
Это копия, сохраненная 3 сентября 2023 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.