Сепарация
Во фронтенде есть чёткая сепарация программистов на то какой "фреймворк" они используют: реакт, ангуляр, вью, свелт и прочие. Но если мы детально посмотрим на то из чего состоят эти фреймворки, то увидим простую вещь: рендер + способ организации логики.
Да, вы можете сказать "компиляция шаблонов" у ангуляра, свелта и вью - это прямо пушка. Я могу согласиться, но если вы посмотрите на то как устроены эти компиляторы, то увидите, что их самая важная часть - это биндинг реактивных частей к DOM элементам.
И поэтому абсолютно все фреймворки в той или иной степени реализуют ровно один способ организации логики: реактивный. И причина проста: руками следить за изменениями стейтов и понимать стоит ли делать ререндеринг - сверхсложно(я смотрю на тебя реакт). И продвинутость именно этой части отличает одну систему от другой:
- свелт изобретает свой язык
- вью пилит своё велосипед, который позволяет описывать весьма неплохо реактивные связи
- ангуляр2+ взял для себя RX и благодаря этому становится прямо конфеткой
- реакт плюнул на всё и дал людям только способ рендеринга и биндинга к рендеринг слою. В итоге все пилят свои стейт менеджеры.
По этой причине, если вы хотите повышать свои скиллы во фронтенде, то вам необходимо не осваивать всякие финтифлюшки, которые можно делать в конкретном фреймворке, а качать базу: то как работают реактивные системы. Потому что теория - это важнейшая вещь, когда ты уже научился говнякать всякие решения. А эта база уже и используется почти везде.
И тут нам, русскоязычным, внезапно повезло. У нас есть огромное количество ребят, которые очень хорошо шарят в этой теме: @artalog, @effector_news, http://mol.hyoo.ru
И на последнее я рекомендую очень сильно обратить внимание. Да, вам может не нравится Карловский(как и мне, так как у него совершенно на нуле софт скиллы и он не очень хороший продажник), но чувак реально несёт базу. К примеру, тут: https://habr.com/ru/companies/timeweb/articles/586450. Чувак очень умный в этом отношении и мол имеет огромное количество прекрасных идей. Реализация, конечно, под вопросом, но именно теоретическая база, которая там лежит - эпохальна. И всё это есть, внезапно, почти только на русском.
Так что если хотите качать себя как фронтендера, то изучите что такое $mol и какие идеи он в себе несёт. Потому что это, не побоюсь сказать, одно из самых технологичных решений во фронте, которое сейчас есть на рынке.
Во фронтенде есть чёткая сепарация программистов на то какой "фреймворк" они используют: реакт, ангуляр, вью, свелт и прочие. Но если мы детально посмотрим на то из чего состоят эти фреймворки, то увидим простую вещь: рендер + способ организации логики.
Да, вы можете сказать "компиляция шаблонов" у ангуляра, свелта и вью - это прямо пушка. Я могу согласиться, но если вы посмотрите на то как устроены эти компиляторы, то увидите, что их самая важная часть - это биндинг реактивных частей к DOM элементам.
И поэтому абсолютно все фреймворки в той или иной степени реализуют ровно один способ организации логики: реактивный. И причина проста: руками следить за изменениями стейтов и понимать стоит ли делать ререндеринг - сверхсложно(я смотрю на тебя реакт). И продвинутость именно этой части отличает одну систему от другой:
- свелт изобретает свой язык
- вью пилит своё велосипед, который позволяет описывать весьма неплохо реактивные связи
- ангуляр2+ взял для себя RX и благодаря этому становится прямо конфеткой
- реакт плюнул на всё и дал людям только способ рендеринга и биндинга к рендеринг слою. В итоге все пилят свои стейт менеджеры.
По этой причине, если вы хотите повышать свои скиллы во фронтенде, то вам необходимо не осваивать всякие финтифлюшки, которые можно делать в конкретном фреймворке, а качать базу: то как работают реактивные системы. Потому что теория - это важнейшая вещь, когда ты уже научился говнякать всякие решения. А эта база уже и используется почти везде.
И тут нам, русскоязычным, внезапно повезло. У нас есть огромное количество ребят, которые очень хорошо шарят в этой теме: @artalog, @effector_news, http://mol.hyoo.ru
И на последнее я рекомендую очень сильно обратить внимание. Да, вам может не нравится Карловский(как и мне, так как у него совершенно на нуле софт скиллы и он не очень хороший продажник), но чувак реально несёт базу. К примеру, тут: https://habr.com/ru/companies/timeweb/articles/586450. Чувак очень умный в этом отношении и мол имеет огромное количество прекрасных идей. Реализация, конечно, под вопросом, но именно теоретическая база, которая там лежит - эпохальна. И всё это есть, внезапно, почти только на русском.
Так что если хотите качать себя как фронтендера, то изучите что такое $mol и какие идеи он в себе несёт. Потому что это, не побоюсь сказать, одно из самых технологичных решений во фронте, которое сейчас есть на рынке.
mol.hyoo.ru
$mol framework
$mol - fastest reactive micro-modular small flexible lazy ui web typenoscript framework.
👍44😁5🤩4❤3💩2🥰1
Диверсификация(не о js)
Последние 2 года я веду жизнь ИП, из-за чего приходится взаимодействовать +- активно с государством. И ногда государство любит делать всякие пакости, чтобы взаимодействие было более удобным для него.
И вот ситуация: Я в Канаде и получаю блокировку всех счетов в Казахстане(где живу, плачу налоги и в общем работаю), а так же не стоит забывать что между Казахстаном и мной сейчас 12 часов разница, так что я не могу целые сутки узнать в чём причина блокировки, так как ночью, очевидно, никто не работает.
Сейчас же я узнаю, что я получил блокировку всех своих финансов из-за долга по налогам в 0.07USD. Весело, правда?
Короч, какой я могу сделать вывод: можно сколько угодно пенять на несправедливое государство, но жить как-то надо. То бишь не стоит держать все финансы в одной юрисдикции. После разблокировки счетов я займусь тем, что раскидаю часть денег по разным местам, которые одновременно не смогут заблокировать:
1. Часть денег унесу в США, Грузию, Вьетнам или Кыргызстан(как мне посоветовали в чатиках, так как это самые безгеморные зоны, но это не точно)
2. Часть денег переведу в РФ, так как сделать обмен на Тинькофф <=> деньги в любом другом регионе стало не так сложно. Спасибо войне и рассредоточившимся россиянам по всему миру
3. Часть денег уведу в какой-нибудь стейблкойн типа USDT, чтобы их всегда иметь при себе.
4. Иметь друзей, которые дадут тебе одолжить карту(благо такие уже есть)
Всё-таки не прикольно жить с $20 в кармане налички и не иметь доп. денег. Очень сильно бьёт по психике
Последние 2 года я веду жизнь ИП, из-за чего приходится взаимодействовать +- активно с государством. И ногда государство любит делать всякие пакости, чтобы взаимодействие было более удобным для него.
И вот ситуация: Я в Канаде и получаю блокировку всех счетов в Казахстане(где живу, плачу налоги и в общем работаю), а так же не стоит забывать что между Казахстаном и мной сейчас 12 часов разница, так что я не могу целые сутки узнать в чём причина блокировки, так как ночью, очевидно, никто не работает.
Сейчас же я узнаю, что я получил блокировку всех своих финансов из-за долга по налогам в 0.07USD. Весело, правда?
Короч, какой я могу сделать вывод: можно сколько угодно пенять на несправедливое государство, но жить как-то надо. То бишь не стоит держать все финансы в одной юрисдикции. После разблокировки счетов я займусь тем, что раскидаю часть денег по разным местам, которые одновременно не смогут заблокировать:
1. Часть денег унесу в США, Грузию, Вьетнам или Кыргызстан(как мне посоветовали в чатиках, так как это самые безгеморные зоны, но это не точно)
2. Часть денег переведу в РФ, так как сделать обмен на Тинькофф <=> деньги в любом другом регионе стало не так сложно. Спасибо войне и рассредоточившимся россиянам по всему миру
3. Часть денег уведу в какой-нибудь стейблкойн типа USDT, чтобы их всегда иметь при себе.
4. Иметь друзей, которые дадут тебе одолжить карту(благо такие уже есть)
Всё-таки не прикольно жить с $20 в кармане налички и не иметь доп. денег. Очень сильно бьёт по психике
👍14❤2💩2🤔1
Невидимая глазу работа
Недавно я попал в очередное набрасывание на вентилятор в теме "линтер vs форматтер".
Да, всё ещё есть люди, которые считают, что в 2024 году нужно иметь собственные правила форматирования и что надо этим управлять самостоятельно.
На фоне этого, я решил заглянуть в репозиторий Prettier'a и прямо подивился какого уровня проблемы там пытается решить сообщество.
Например:
- https://github.com/prettier/prettier/issues/14754
- https://github.com/prettier/prettier/issues/187#issuecomment-1971232175
- https://github.com/prettier/prettier/issues/15515
И я уж точно понял, что подобные проблемы у меня решать самостоятельно уж точно никакого желания нет. Пусть этим занимается сообщество. Потому что это прямо гиганский труд, который, по факту, достаётся нам бесплатно.
Недавно я попал в очередное набрасывание на вентилятор в теме "линтер vs форматтер".
Да, всё ещё есть люди, которые считают, что в 2024 году нужно иметь собственные правила форматирования и что надо этим управлять самостоятельно.
На фоне этого, я решил заглянуть в репозиторий Prettier'a и прямо подивился какого уровня проблемы там пытается решить сообщество.
Например:
- https://github.com/prettier/prettier/issues/14754
- https://github.com/prettier/prettier/issues/187#issuecomment-1971232175
- https://github.com/prettier/prettier/issues/15515
И я уж точно понял, что подобные проблемы у меня решать самостоятельно уж точно никакого желания нет. Пусть этим занимается сообщество. Потому что это прямо гиганский труд, который, по факту, достаётся нам бесплатно.
💯4💩2👍1👎1🔥1😱1
Хватит сжимать изображения руками
Сейчас я чуток начал торговать своей задницей(https://news.1rj.ru/str/xavescor_meetings_logs/6) и занимаюсь, в том числе, созданием рекламных материалов, чтобы привлечь людей.
Одним из способов доказать свою квалификацию я решил пробежаться по крупным казахстанским(и не очень) сайтам и провести онолитегу как их можно изменить минимальными телодвижениями, чтобы они работали шустрее.
И, к сожалению, я вижу, что у 99% ресурсов нет такой штуки как сжатие изображений. Как менеджер запихнул фото на лендинг, так оно и отдаётся. Не делайте так. Да, я не говорю что надо погружаться в теорию отдачи изображений(но ознакомиться стоит https://evilmartians.com/chronicles/images-done-right-web-graphics-good-to-the-last-byte-optimization-techniques). Хотя бы жмите изображения автоматом. Те же марсиане давно сделали прекрасный imgproxy(https://evilmartians.com/products/imgproxy), который сам сожмёт изображение в наилучший формат для каждого клиента.
Не позволяйте своей лени ухудшать пользовательский интерфейс. А то получится как у jusan.kz, у которого на главной находится 5 огроменных картинки, под 1 мб каждая.
Сейчас я чуток начал торговать своей задницей(https://news.1rj.ru/str/xavescor_meetings_logs/6) и занимаюсь, в том числе, созданием рекламных материалов, чтобы привлечь людей.
Одним из способов доказать свою квалификацию я решил пробежаться по крупным казахстанским(и не очень) сайтам и провести онолитегу как их можно изменить минимальными телодвижениями, чтобы они работали шустрее.
И, к сожалению, я вижу, что у 99% ресурсов нет такой штуки как сжатие изображений. Как менеджер запихнул фото на лендинг, так оно и отдаётся. Не делайте так. Да, я не говорю что надо погружаться в теорию отдачи изображений(но ознакомиться стоит https://evilmartians.com/chronicles/images-done-right-web-graphics-good-to-the-last-byte-optimization-techniques). Хотя бы жмите изображения автоматом. Те же марсиане давно сделали прекрасный imgproxy(https://evilmartians.com/products/imgproxy), который сам сожмёт изображение в наилучший формат для каждого клиента.
Не позволяйте своей лени ухудшать пользовательский интерфейс. А то получится как у jusan.kz, у которого на главной находится 5 огроменных картинки, под 1 мб каждая.
Telegram
Андруша консультирует
Привет. Я Андрей и понять кто я ты можешь тута https://www.linkedin.com/in/xavescor/ и вот тута @xavescor_code
Этот канал - это краткая выдержка консультаций, котоыре уже произошли. Можешь глянуть выше или ниже чтобы понять что узнавали другие люди.
Хочешь…
Этот канал - это краткая выдержка консультаций, котоыре уже произошли. Можешь глянуть выше или ниже чтобы понять что узнавали другие люди.
Хочешь…
👍10💩2🔥1👏1
TTI всё
Вышел наконец-то https://developer.chrome.com/blog/lighthouse-10-0, где основным изменением стало как раз удаление TTI из метрик.
TTI(time to interactive) - одна из метрик, которая показывала время от момента открытия страницы до момента, когда пользователь может взаимодействовать со страницей.
TBT(total blocking time) - сколько времени выполняются таски до статуса IDLE эвент лупа
CLS(cumulative layout shift) - насколько сильно ваша вёрстка "дергается" в процессе загрузки
Гугл считает, что мерять TTI не имеет смысла, так как эта метрика очень хорошо кореллирует с TBT. И по этой причине 10% оценки лайтхауса теперь уходит в сторону CLS. Теперь корпеть над рендерингом и структурой страницы стоит побольше времени, если хочется иметь хорошую оценку от гугла. А её хочется иметь, так как относительно этих метрик гугл, в том числе, ранжирует свою выдачу. Поэтому если вы хоитте иметь хорошее SEO, то стоит выбивать около сотни в лайтхаусе.
Так же добавили несколько новых эвристик. Но на них смотреть не так важно: просто запустите новый лайтхаус у себя на сайте и постарайтесь всё исправить о чём он говорит. Он весьма подробно рассказывает в чём может быть проблема.
Вышел наконец-то https://developer.chrome.com/blog/lighthouse-10-0, где основным изменением стало как раз удаление TTI из метрик.
TTI(time to interactive) - одна из метрик, которая показывала время от момента открытия страницы до момента, когда пользователь может взаимодействовать со страницей.
TBT(total blocking time) - сколько времени выполняются таски до статуса IDLE эвент лупа
CLS(cumulative layout shift) - насколько сильно ваша вёрстка "дергается" в процессе загрузки
Гугл считает, что мерять TTI не имеет смысла, так как эта метрика очень хорошо кореллирует с TBT. И по этой причине 10% оценки лайтхауса теперь уходит в сторону CLS. Теперь корпеть над рендерингом и структурой страницы стоит побольше времени, если хочется иметь хорошую оценку от гугла. А её хочется иметь, так как относительно этих метрик гугл, в том числе, ранжирует свою выдачу. Поэтому если вы хоитте иметь хорошее SEO, то стоит выбивать около сотни в лайтхаусе.
Так же добавили несколько новых эвристик. Но на них смотреть не так важно: просто запустите новый лайтхаус у себя на сайте и постарайтесь всё исправить о чём он говорит. Он весьма подробно рассказывает в чём может быть проблема.
Chrome for Developers
What's new in Lighthouse 10 | Blog | Chrome for Developers
Lighthouse 10 is here with new scoring and audits.
👍3💩2❤1🔥1
В поездках айпад как возможность дополнительно вывести информацию на экран - просто незаменимая штука. Если у вас мак, то прямо советую купить какой-нибудь экран на барахолке.
Как минимум для того чтобы девтулзы вывести туда, так как мне даже на 16дюймовом маке не хватает места для браузера + девтулов
Как минимум для того чтобы девтулзы вывести туда, так как мне даже на 16дюймовом маке не хватает места для браузера + девтулов
👍7🔥3💩3🤡2
#база про технические собеседования.
Новый месяц, и мне пришла идея, что надо как-то монетизировать этот канал. Поэтому порекламлю себя же: https://news.1rj.ru/str/xavescor_meetings_logs/6
Но мне не хочется просто так тратить твоё время, поэтому расскажу о небольшом неприятном факте: люди не умеют проходить технические собеседования.
Приведу пару примеров, которые я увидел на последних консультациях(тык и тык), которые были посвящены собеседованию:
Намбер ван: люди не умеют говорить "не знаю".
На любой вопрос у тебя должно быть всегда 2 варианта ответа:
- Я знаю и чётко отвечаю на вопрос
- Я не знаю, ПОТОМУ ЧТО <причина>(к примеру "в работе это не нужно было" или "нагуглю, поэтому не запоминаю"), но могу предположить что ответ такой-то, так как бла-бла
Всё! Не нужно молчать, не нужно пугаться. Если ты что-то не знаешь, то значит это не было у тебя в работе. И это нормально. Не стесняйся сказать "чувак, ну ты дичь спрашиваешь. Кому это надо?".
Намбер ту: люди объясняют одни термины через другие термины, которые раньше не встречались в разговоре.
Пример: в чём разница между объектом и примитивными типами данных? Плохой ответ: ну, объект - это ссылочный тип данных, а примитивный - нессылочный.
Этот ответ плох тем, что вводится новый термин. Логичный следующий вопрос интервьювера - "а что такое ссылочный тип данных?". Не нужно давать интервьюверу возможность цепляться за слова. Если возникают такие вопросы, то просто приведите пример, на котором видны различия.
Например
Всё, распросы закончатся. И вообще не стесняйся давать примеры. Примеры - это хорошо. Примеры ясно подтверждают твою точку зрения. А чем больше конкретики, тем лучше.
Набер три: Расскажи о <какая-нибудь фигня>. Этот вопрос нужно интерпретировать как "какую задачу решает эта фигня?". Тут, к сожалению, только заниматься подготовкой.
1) Если говорится о части стдлибы или js, то хороший способ зачем нужна та или иная штука - глянуть пропозалы. Например, https://github.com/tc39/proposal-promise-with-resolvers. Тут прекрасно объясняется зачем был добавлен Promise.withResolvers. И такой документ есть на каждый кусок языка за последние лет 10, если не больше.
2) Если это библиотека, то рекомендую поискать сравнения её с конкурентами, к примеру, реатом: https://www.reatom.dev/recipes/atomization/#reducing-computational-complexity.
Не забывай, каждая мелочь имеет причину в этом мире. Ничего не появляется просто так, поэтому надо искать преимущества.
Намбер фор: волнение, эканье и прочая неуверенность.
Подобная штука исправляется просто: нужно быть готовым. Как готовиться?
1) Берёшь, ищешь в гугле "50 вопросов на js интервью". И расписываешь ответ на каждый вопрос. Самостоятельно. При ответе твой мозг будет структурировать информацию и запоминать план ответа. И это самое главное. Тебе нужно понимать структуру ответа, а остальное ты сам расскажешь на собеседовании. А вот без плана ты будешь просто хлопать глазами и молчать.
2) После написания ответа идёшь в ЧатГПТ или в Genimi и узнаёшь норм ли ты написал ответ или нет. Если же нет, то переписываешь по памяти. Опять же самостоятельно. Если LLMка говорит что ты красаучег, то
3) Идёшь в чат и спрашиваешь корректно ли ты ответил на вопрос. Да, возможно люди назовут тебя дебилом или как-нибудь ещё, но это нормально. Ответ ты получишь. Но до пункта 2 не ходи в чат, так как не нужно напрягать людей там где людей можно не напрягать.
4) Ты великолепен и готов к интервью.
Намбер файв: Если хочешь узнать ещё какие минусы, то всё просто, идёшь сюды https://news.1rj.ru/str/xavescor_meetings_logs/6.
Новый месяц, и мне пришла идея, что надо как-то монетизировать этот канал. Поэтому порекламлю себя же: https://news.1rj.ru/str/xavescor_meetings_logs/6
Но мне не хочется просто так тратить твоё время, поэтому расскажу о небольшом неприятном факте: люди не умеют проходить технические собеседования.
Приведу пару примеров, которые я увидел на последних консультациях(тык и тык), которые были посвящены собеседованию:
Намбер ван: люди не умеют говорить "не знаю".
На любой вопрос у тебя должно быть всегда 2 варианта ответа:
- Я знаю и чётко отвечаю на вопрос
- Я не знаю, ПОТОМУ ЧТО <причина>(к примеру "в работе это не нужно было" или "нагуглю, поэтому не запоминаю"), но могу предположить что ответ такой-то, так как бла-бла
Всё! Не нужно молчать, не нужно пугаться. Если ты что-то не знаешь, то значит это не было у тебя в работе. И это нормально. Не стесняйся сказать "чувак, ну ты дичь спрашиваешь. Кому это надо?".
Намбер ту: люди объясняют одни термины через другие термины, которые раньше не встречались в разговоре.
Пример: в чём разница между объектом и примитивными типами данных? Плохой ответ: ну, объект - это ссылочный тип данных, а примитивный - нессылочный.
Этот ответ плох тем, что вводится новый термин. Логичный следующий вопрос интервьювера - "а что такое ссылочный тип данных?". Не нужно давать интервьюверу возможность цепляться за слова. Если возникают такие вопросы, то просто приведите пример, на котором видны различия.
Например
{a: 1} === {a: 1} // false
'abc' === 'abc' // true
Всё, распросы закончатся. И вообще не стесняйся давать примеры. Примеры - это хорошо. Примеры ясно подтверждают твою точку зрения. А чем больше конкретики, тем лучше.
Набер три: Расскажи о <какая-нибудь фигня>. Этот вопрос нужно интерпретировать как "какую задачу решает эта фигня?". Тут, к сожалению, только заниматься подготовкой.
1) Если говорится о части стдлибы или js, то хороший способ зачем нужна та или иная штука - глянуть пропозалы. Например, https://github.com/tc39/proposal-promise-with-resolvers. Тут прекрасно объясняется зачем был добавлен Promise.withResolvers. И такой документ есть на каждый кусок языка за последние лет 10, если не больше.
2) Если это библиотека, то рекомендую поискать сравнения её с конкурентами, к примеру, реатом: https://www.reatom.dev/recipes/atomization/#reducing-computational-complexity.
Не забывай, каждая мелочь имеет причину в этом мире. Ничего не появляется просто так, поэтому надо искать преимущества.
Намбер фор: волнение, эканье и прочая неуверенность.
Подобная штука исправляется просто: нужно быть готовым. Как готовиться?
1) Берёшь, ищешь в гугле "50 вопросов на js интервью". И расписываешь ответ на каждый вопрос. Самостоятельно. При ответе твой мозг будет структурировать информацию и запоминать план ответа. И это самое главное. Тебе нужно понимать структуру ответа, а остальное ты сам расскажешь на собеседовании. А вот без плана ты будешь просто хлопать глазами и молчать.
2) После написания ответа идёшь в ЧатГПТ или в Genimi и узнаёшь норм ли ты написал ответ или нет. Если же нет, то переписываешь по памяти. Опять же самостоятельно. Если LLMка говорит что ты красаучег, то
3) Идёшь в чат и спрашиваешь корректно ли ты ответил на вопрос. Да, возможно люди назовут тебя дебилом или как-нибудь ещё, но это нормально. Ответ ты получишь. Но до пункта 2 не ходи в чат, так как не нужно напрягать людей там где людей можно не напрягать.
4) Ты великолепен и готов к интервью.
Намбер файв: Если хочешь узнать ещё какие минусы, то всё просто, идёшь сюды https://news.1rj.ru/str/xavescor_meetings_logs/6.
Telegram
Андруша консультирует
Привет. Я Андрей и понять кто я ты можешь тута https://www.linkedin.com/in/xavescor/ и вот тута @xavescor_code
Этот канал - это краткая выдержка консультаций, котоыре уже произошли. Можешь глянуть выше или ниже чтобы понять что узнавали другие люди.
Хочешь…
Этот канал - это краткая выдержка консультаций, котоыре уже произошли. Можешь глянуть выше или ниже чтобы понять что узнавали другие люди.
Хочешь…
👍11❤7💩2🤡2🔥1🐳1
https://github.com/tc39/proposal-iterator-helpers
Вот такая штука недавно появилась. И самое прекрасное, что оно уже есть в core-js(https://github.com/zloirock/core-js?tab=readme-ov-file#iterator-helpers) и вскоре появится в хроме(https://v8.dev/features/iterator-helpers).
Array.from прощай, ты теперь не нужен(почти).
Вот такая штука недавно появилась. И самое прекрасное, что оно уже есть в core-js(https://github.com/zloirock/core-js?tab=readme-ov-file#iterator-helpers) и вскоре появится в хроме(https://v8.dev/features/iterator-helpers).
Array.from прощай, ты теперь не нужен(почти).
GitHub
GitHub - tc39/proposal-iterator-helpers: Methods for working with iterators in ECMAScript
Methods for working with iterators in ECMAScript. Contribute to tc39/proposal-iterator-helpers development by creating an account on GitHub.
💩3👍2🤡1
Forwarded from artalog (artalar)
YouTube
Артём Арутюнян — React-query VS reatom/async — конфигурация против композиции
Подробнее о конференции HolyJS: https://jrg.su/EM4wwV
— —
Артём разбирает примеры асинхронных задач типовой (и не очень) разработки, а также сравнивает их решения на специализированной библиотеке и библиотеке общего назначения с набором хелперов.
#javanoscript…
— —
Артём разбирает примеры асинхронных задач типовой (и не очень) разработки, а также сравнивает их решения на специализированной библиотеке и библиотеке общего назначения с набором хелперов.
#javanoscript…
🤡5❤3💩3🔥1
Немного о том почему отсуствие базовых знаний в SEO со стороны фронтенд разраба могут поделить на ноль большой продукт. LinkedIn
Linkedin
Когда продукт пилится на отвали
Halyk Market - это маркетплейс, который разрабатывается одним из крупнейших банков Казахстана, но это не значит что в нём люди не совершают элементарнейшие ошибки. Для такого типа продуктов очень важно SEO, так как основная доля трафика приходит из поиска.
🔥12💩3🤡1🤣1
https://www.jetbrains.com/webstorm/whatsnew/
Вот и новая версия WS, в которой jB всё-таки сдались в том чтобы поддерживать TS. Теперь мы окончательно живём в мире, где lang_server > spec.
Вот и новая версия WS, в которой jB всё-таки сдались в том чтобы поддерживать TS. Теперь мы окончательно живём в мире, где lang_server > spec.
👍4💩2🔥1🤡1
https://9to5mac.com/2024/04/10/alternative-iphone-web-browsers/
А вот и плюсы нагиба монополистов. Рынок становится чуток конкурентнее. Хотя интересно к чему в итоге это приведёт, так как запрет альтернативных браузеров на ios было единственной причинай почему Chrome не захватил весь мир. А теперь, возможно, захватит. А может и нет.
А вот и плюсы нагиба монополистов. Рынок становится чуток конкурентнее. Хотя интересно к чему в итоге это приведёт, так как запрет альтернативных браузеров на ios было единственной причинай почему Chrome не захватил весь мир. А теперь, возможно, захватит. А может и нет.
9to5Mac
More people choose smaller iPhone web browsers when prompted
One of the changes Apple had to make to comply with the EU’s Digital Markets Act (DMA) was to present...
💩6🤡2
Где-то полгода назад я ввёл привычку для себя, понемногу работать на д техническим долгом https://news.1rj.ru/str/xavescor_code/14
Но в какой-то момент я разгрёб почти всё и плюнул на это, так как стало лень этим заниматься. Это произошло этим январём. И вот прошло 4 месяца. И у нас опять 2/3 зависимостей выпустили свои мажоры и небольшая попытка поставить новую зависимость взрывает сборку, так как сборщик резолвит не ту версию зависимости из-за дубликата их в node_modules.
Вывод: не плюйте на необходимые привычке в работе. И слежка за актуальностью зависимостей - одна из них
Но в какой-то момент я разгрёб почти всё и плюнул на это, так как стало лень этим заниматься. Это произошло этим январём. И вот прошло 4 месяца. И у нас опять 2/3 зависимостей выпустили свои мажоры и небольшая попытка поставить новую зависимость взрывает сборку, так как сборщик резолвит не ту версию зависимости из-за дубликата их в node_modules.
Вывод: не плюйте на необходимые привычке в работе. И слежка за актуальностью зависимостей - одна из них
Telegram
Андруша пишет код
Контролировать все пакеты актуальными очень сложно, особенно когда этим никто не занимался. К примеру, у нас этим серьёзно не занимались как минимум год, и мы уже получили такое отставание.
Решение простое: каждое утро лично ты выполняй у себя на проекте…
Решение простое: каждое утро лично ты выполняй у себя на проекте…
👍7💩4👏1🤡1
Не так давно я описывал, что понимание реактивности и описания логики в реактивном стиле очень важно для роста фронтенд разработчика. https://news.1rj.ru/str/xavescor_code/101
Но важность вскоре превратится в необходимость, так как в стандарт хотят затащить реактивные примитивы https://github.com/tc39/proposal-signals/issues/178. И это будет, как сказал автор @effector_news в одной из бесед, «сродни переноса jQuery в стандарт. Мы перестанем заниматься изобретанием велосипедов и будем заниматься реально значимыми вещами»
У вас есть год-два чтобы подготовиться к этому, если вы всё ещё не осилили как выглядит реактивное программирование)
Но важность вскоре превратится в необходимость, так как в стандарт хотят затащить реактивные примитивы https://github.com/tc39/proposal-signals/issues/178. И это будет, как сказал автор @effector_news в одной из бесед, «сродни переноса jQuery в стандарт. Мы перестанем заниматься изобретанием велосипедов и будем заниматься реально значимыми вещами»
У вас есть год-два чтобы подготовиться к этому, если вы всё ещё не осилили как выглядит реактивное программирование)
Telegram
Андруша пишет код
Сепарация
Во фронтенде есть чёткая сепарация программистов на то какой "фреймворк" они используют: реакт, ангуляр, вью, свелт и прочие. Но если мы детально посмотрим на то из чего состоят эти фреймворки, то увидим простую вещь: рендер + способ организации…
Во фронтенде есть чёткая сепарация программистов на то какой "фреймворк" они используют: реакт, ангуляр, вью, свелт и прочие. Но если мы детально посмотрим на то из чего состоят эти фреймворки, то увидим простую вещь: рендер + способ организации…
👍9💩4🔥2🤡2👀1
Ещё одна причина почему пока что можно не опасаться захвата нейронными сетями наших рабочих мест.
Вот понадобилось мне найти как сделать Exact тип в тайпскрипте, чтобы в кодген можно было передавать только те аргументы, что описаны в спеке. Так как если у вас есть optional поля, то вы не защищены от опечаток.
Так вот, на топовом месте в выдаче по этому вопросу стоит просто ответ сгаллюцинируевшей нейронки, которая предлагает использовать несуществующий пакет
https://www.squash.io/tutorial-on-exact-type-in-typenoscript/#:~:text=In%20TypeScript%2C%20the%20exact%20type,with%20strict%20and%20precise%20shape
Нейронки прямо сейчас хоронят сами себя, так как генерят некачественный контент, а потом на нём же обучаются. Так что ближайшее время бояться захвата ими программирования уж точно не стоит.
Вот понадобилось мне найти как сделать Exact тип в тайпскрипте, чтобы в кодген можно было передавать только те аргументы, что описаны в спеке. Так как если у вас есть optional поля, то вы не защищены от опечаток.
{aaa: 1} имеет тип {aa?: number}. Спасибо утиной типизации.Так вот, на топовом месте в выдаче по этому вопросу стоит просто ответ сгаллюцинируевшей нейронки, которая предлагает использовать несуществующий пакет
flow-exact.https://www.squash.io/tutorial-on-exact-type-in-typenoscript/#:~:text=In%20TypeScript%2C%20the%20exact%20type,with%20strict%20and%20precise%20shape
Нейронки прямо сейчас хоронят сами себя, так как генерят некачественный контент, а потом на нём же обучаются. Так что ближайшее время бояться захвата ими программирования уж точно не стоит.
😁17💩3🤡1
Если вы хотите реально знать свои инструменты, но надо знать не только преимущества, но и недостатки. Одним из недостатков тайпскрипта на этой неделе для меня оказалось отсутствие Exact типа.
Мы используем кодген для слоя связи с бекендом и у нас огромное количество функций в стиле
И вот тут нас ждала засада.
Представьте: бекенд меняет контракт, переименовывая один параметр. И, спасибо монорепе, мы сломаем CI, если типы не будут совпадать с логикой.
Но есть один нюанс. У нас могут быть Optional поля. И вот тут в колено во всю силу стреляет дак-тайпинг, потому что
В итоге придётся кодгенить зод схему, чтобы отловить изменения контрактов в рантайме. Так что теперь нужно писать валидаторы схем не только при получении данных, но и при их отправке(
Мы используем кодген для слоя связи с бекендом и у нас огромное количество функций в стиле
getPosts({param1: value1, …}).И вот тут нас ждала засада.
Представьте: бекенд меняет контракт, переименовывая один параметр. И, спасибо монорепе, мы сломаем CI, если типы не будут совпадать с логикой.
Но есть один нюанс. У нас могут быть Optional поля. И вот тут в колено во всю силу стреляет дак-тайпинг, потому что
{aba: 1} является подтипом {aaa?: 1}. И ты никак переименование aaa в aba не отловишь.В итоге придётся кодгенить зод схему, чтобы отловить изменения контрактов в рантайме. Так что теперь нужно писать валидаторы схем не только при получении данных, но и при их отправке(
💩7👍5🤡2
https://nodejs.org/en/blog/announcements/v22-release-announce
Главная фича:
Спасибо, bun
Главная фича:
This release adds require() support for synchronous ESM graphs under the flag --experimental-require-module.
Спасибо, bun
nodejs.org
Node.js — Node.js 22 is now available!
Node.js® is a free, open-source, cross-platform JavaScript runtime environment that lets developers create servers, web apps, command line tools and noscripts.
👍6🔥3💩3🤡2
Ну и другой релиз
https://react.dev/blog/2024/04/25/react-19
2 года чуваки работали над тем как решить проблемы ререндера. В итоге решили оставить саму концепцию, но поправить часть кривостей, которая она вызывает.
Такое чувство, что команда реакта живёт в своём пузыре, в котором не существует ни вью, ни ангуляра, ничего.
Нам нужен срочно свой реактбан, который будет вправлять мозги команде реакта, чтобы они не пилили дичь. Предвижу огромное количество говнокода, которое будет пытаться писать логику поверх этой кривизны.
https://react.dev/blog/2024/04/25/react-19
2 года чуваки работали над тем как решить проблемы ререндера. В итоге решили оставить саму концепцию, но поправить часть кривостей, которая она вызывает.
Такое чувство, что команда реакта живёт в своём пузыре, в котором не существует ни вью, ни ангуляра, ничего.
Нам нужен срочно свой реактбан, который будет вправлять мозги команде реакта, чтобы они не пилили дичь. Предвижу огромное количество говнокода, которое будет пытаться писать логику поверх этой кривизны.
react.dev
React v19 – React
The library for web and native user interfaces
👍8💩4🤡1
На этой неделе подвалило ещё 2 важных релиза:
https://devblogs.microsoft.com/typenoscript/announcing-typenoscript-5-5-beta/
TS научится выводить тайпгарды самостоятельно, без явного описания.
https://module-federation.io/
Теперь эта технология стала бандлер-независимой. Теперь мы сможем шарить модули между проектами с разными бандлерами. Большое событие, кмк.
Ну и важная статья о том насколько важно крупным проектам быть early-adopters в новых технологиях. А так же как менеджить большие изменения в опенсорсе:
https://astro.build/blog/node-test-migration/
https://devblogs.microsoft.com/typenoscript/announcing-typenoscript-5-5-beta/
TS научится выводить тайпгарды самостоятельно, без явного описания.
https://module-federation.io/
Теперь эта технология стала бандлер-независимой. Теперь мы сможем шарить модули между проектами с разными бандлерами. Большое событие, кмк.
Ну и важная статья о том насколько важно крупным проектам быть early-adopters в новых технологиях. А так же как менеджить большие изменения в опенсорсе:
https://astro.build/blog/node-test-migration/
Microsoft News
Announcing TypeScript 5.5 Beta
Today we are excited to announce the availability of TypeScript 5.5 Beta. To get started using the beta, you can get it through NuGet, or through npm with the following command: npm install -D typenoscript@beta Here’s a quick list of what’s new in TypeScript…
❤5💩3🤡1