cookie

We use cookies to improve your browsing experience. By clicking «Accept all», you agree to the use of cookies.

avatar

© Как его там…

Пасты, вебное, пост раз в год

Show more
Advertising posts
356
Subscribers
No data24 hours
No data7 days
+4030 days

Data loading in progress...

Subscriber growth rate

Data loading in progress...

Photo unavailableShow in Telegram
#tip Пишите проще, часть 2 (первая) Меня немного взбудоражил вопрос в комментах, "Поясни, что не так?", так что я пошел и набросал пример того, как можно писать аналогичную логику. Ответ на вопрос очевиден - не так всё, это крайне невыразительный код, очень сложная реализация очень простой логики. Попробуем написать простую! Не удивлюсь, если можно еще проще, но я не знаю (и не хочу знать) особенностей stylex, так что сделал вариацию существующей логики. Я опустил некоторые детали, но для понимания и сравнения этого хватит.
Show all...
🔥 9 1👎 1 1
StyleX: уроки Clean Code от Meta Казалось бы, очередной css-in-js, старая песня в профиль, ничего интересного, услышал и забыл. Черт меня дернул полезть в исходники и, оказалось, не зря! И это только один файл...
Show all...
🤡 2
Саморекламы пост 🤝🤝 11 декабря буду выступать на открытом митапе Яндекс Вертикалей с рассказом про Contract First, кодогенерацию и нашу работу с сетевым слоем в формате "клик - поехали". Расскажу, как выглядит общая схема работы с запросами, как писали сетевуху до этого, как пишем теперь, что получилось и чего не хватает. На митапе также будут представлены следующие доклады: - Путешествие в страну доступности Ярослав Лосев - Мне нужен PDF, что делать? Филипп Семиров - Почему не все так просто, когда хочешь GraphQL Роман Полегуев Если интересно - регистрируйтесь на Vertis JS 🎹
Show all...

Vertis JS #2 — митап Яндекс Вертикалей для разработчиков интерфейсов. На мероприятии выступят опытные разработчики из разных отделов, которые поделятся своими знаниями и опытом в области фронтенд-разработки.

🔥 7👍 4 3🍌 2
TypeScript Enums TLDR: Используйте обычные объекты + as const / satisfies, забудьте про enum. Енамы - один из немногих активно используемых атавизмов, оставшихся от экспериментов TS над расширением языка и одна из немногих его НЕ type-level фичей. Область применения понятна - именованная группа констант-токенов, что же с ними не так и что делать? Не нативная конструкция TS давно изменил свою стратегию на "Мы не расширяем язык", enum (как и `namespace/experimentalDecorators`) - древний реликт вне современного TS. Контринтуитивный результат В рантайме мы получаем специфичный отзеркаленный объект, из которого банально нельзя понять, что ключ, а что значение. Mind blowing решение, удачи с Object.keys/values. const enum просто не работают Казалось бы, красивое решение - в рантайме инлайним значение и enum испарился, но, помимо того, что это не работает нигде, кроме tsc, у const enum есть целый спектр фундаментальных дыр (`isolatedModules`, type import, импорт из библиотек), что подробно описано в хендбуке самого TS: https://www.typescriptlang.org/docs/handbook/enums.html#const-enum-pitfalls. Это мертворожденная фича. enum - номинальная типизация, а ВЕСЬ TS - структурная TS построен на структурной типизации с понятными бенефитами, но enum, просто берет и работает по-другому! Значения разных енамов не равны ни друг другу, ни литералам, ничему, кроме себя самих (да, изредка мы хотим такое поведение, но, блин, не в енамах). Это накладывает окраску кода, хардкод, приведение типов и прочие приседания ради классического "шоб TS не ругался". Обычные объекты + as const Всё, что дают енамы, можно выразить через обычные объекты + as const / satisfies! Всё (в 100 раз больше) 🥹 Можно не создавать лишнюю прослойку c токенами, а сразу писать конфиг. Можно прозрачно работать как с ключами, так и со значениями. Можно использовать все возможности TS и почти ничего не терять. Не теряйте :) P.S. Ложка мёда: благодаря номинальному дизайну енамов нам легко искать места использования 😏 #typescript
Show all...
14🔥 6💅 2😨 1
Repost from Design Board
makereal.tldraw.com — теперь можно свои скетчи превратить в работающие интерфейсы, но нужен OpenAI API ключик.
Show all...
News Feed · Draw My UI 1 · @DesignBoard.mp43.55 KB
News Feed · Draw My UI 2 · @DesignBoard.mp46.09 KB
News Feed · Draw My UI 3 · @DesignBoard.mp44.26 KB
👍 6 4
Sorry Cypress Not Sorry Любите ли вы JS-драмы так же, как их люблю я? Есть такая штука для написания E2E тестов в браузере — cypress. Существует вот уже 9 лет. Я знаком с ним очень поверхностно, но в целом мои впечатления от него положительные — с тестированием браузеров всегда всё было очень плохо и непонятно (да, селениум, я про тебя), а тут тебе всё просто, понятно и на JS. Но сам сайпрес — это просто тест-раннер. А помимо запуска тестов вам захочется ещё смотреть отчёты, реплеи упавших тестов, чтоб понять что случилось, параллелить запуск тестов, чтобы они не занимали вечность и т.д. Всё это делается через Cypress Cloud — отдельный платный продукт. Как известно, платить хочется далеко не всегда. Так подумал и Андрейс Голдис (agoldis) и практически единолично написал sorry-cypress — опенсорсную альтернативу, которую можно развернуть в том числе и у себя. А вместе с этим он запустил currents.dev — sorry-cypress на стероидах, прямого конкурента Cypress Cloud. У них практически полный паритет по фичам, местами currents умеет чуть больше и имеет более гибкий и дешевый прайсинг. Currents, как и sorry-cypress, существует вот уже пару лет. Но 25 сентября в блоге сайпреса вышел пост Changes in defense of Cypress Intellectual Property. Написан он достаточно странно: что-то в духе «мы ограничиваем работу сайпреса в некоторых сторонних продуктах и сервисах». Ограничения ввелись начиная с 13 версии сайпреса. Андрей написал ответный пост Cypress.io Blocking of Sorry Cypress and Currents, в котором разобрал как именно сайпрес детектит использование в «нежелательных» окружениях. Из-за публичной критики сайперсу пришлось объяснять свои действия в отдельном посте Why Cypress decided to block Currents.dev and Sorry Cypress. И, как видите, явно обозначить что же всё таки означало «defense of Intellectual Property» и явно перечислить причины блокировки: кибер-сквотинг, использование бренда и т.д. Но помимо объяснения, сайпрес забекпортили блокировку в 12 версию сайпреса и, тем самым, сломали тесты всем пользователям sorry-cypress. У меня по поводу этого всего есть следующие мысли: 1. Имя sorry-cypress действительно не очень удачное — как минимум это просто некрасиво. 2. С другой стороны имеет cypress имеет MIT лицензию, а Cypress — это отдельная компания. 3. Судя по всему Андрей действительно смог поставить Cypress в уязвимое положение, иначе бы этой истории не было. Возможно, у сайпреса действительно не самый лучший прайсинг и им стоит поработать в этом направлении. 4. В целом, запрет использовать новые версии сайперса в «нежелательных» окружениях — это нормально. Но бэкпортить ограничения в старые версии, которыми пользуются юзеры — очень грязный трюк. Это может сильно повлиять на репутацию и заставить пользователей мигрировать на другие инструменты (тот же Playwright). 5. Думаю, что у Cypress как компании нет никаких легальных рычагов давления. По идее они могли бы пойти в суд, но видимо понимают, что ничего не получится. 6. Оценить какое количество юзеров это задело, кажется, невозможно, но у докер-образа agoldis/sorry-cypress-director 6.6 миллионов пулов только с докерхаба (а многие используют кеширующие прокси для таких целей).
Show all...
7😨 1
Photo unavailableShow in Telegram
#tip Пишите проще Зашел тут в сохраненки и опять проорал с этого диффа после нашего с @risenx «рефакторинга» 📹 Да, «просто пиши проще» это мем, само собой, это сложно, но можно взять за ориентир сложность самой решаемой задачи, ведь код пишут для этого. Сложный/перегруженный/служебный код мешает видеть суть, чем дальше код от сути задачи, тем он хуже воспринимается. Старайтесь не перегружать 😏 Вообще, это не только и не столько про код, но не буду затягивать. Про скрин :) Решаемая проблема - «в деве плодятся инстансы при апдейтах». Челы курнули и пошли растекаться мыслью по коду. Вот вы читаете и кажется, что там что-то есть! Логика небось! Столько строк! Заменяешь одной строчкой и бам - а, и это всё?
Show all...
7👍 2
Прошел на днях курс Бирмана про интерфейс (у него и канальчик имеется: @ilyabirman_channel). Тем, у кого есть желание лучше понять, как правильно шлепать формы, а также время и деньги - однозначно рекомендую, крайне проработанный и концентрированный материал 💵 Главное - не делать, как я… Чуть не просрал все полимеры из-за того, что +- полторы недели не мог сесть за задание, в итоге в мыле за два дня делал задание (вышло такое поделие), которое надо было делать две недели. А из меня же еще фигмодел, как из кабана балерина, тупил, страдал, гуглил, хоткеи запоминал, в общем, кайфовал как мог 🐷
Show all...
Пользовательский интерфейс и представление информации. Практический курс Ильи Бирмана

Четырёхнедельный практический курс посещают начинающие и опытные дизайнеры, арт-директоры, менеджеры, программисты и редакторы.

3💩 2
Show all...
Write PHP in Next.js/React Components (Server Actions)

Sometimes going back is the only way forward that's why you can now write PHP Code directly within JSX in React Components. Since the latest release of Next.js 14 by Vercel "Server Actions" are stable which means it is easier than ever to execute Server Side Javascript Code from right within React Components without writing API Endpoints manually. But we can go further. Let's make in run with the best Programming Language in existence: PHP. Run PHP Code with in React and Next.js! You can find the running code in this GitHub Reporistor:

https://github.com/bufferhead-code/nextjs-use-php

Shoutout to elnardu (

https://github.com/elnardu)

who came up with the initial implementation for react "use c" and "use rust":

https://github.com/elnardu/react-use-c

https://github.com/elnardu/react-use-rust

--- All of this is possible because of the amazing advancements in the web development ecosystem especially with frontend technologies getting better and better through frameworks like Next.js, Nuxt.js SvelteKit and more. Server Side Rendered Javascript Components and Server Side Javascript Code are the Backbone of Modern Frontend Applications as they allow feature-rich and beautiful applications without the overhead of building REST APIs for everything. Programming Code is getting less separation of concerns with is probably not a great thing but I'm sure the counter movement will come soon. Frontend vs Backend? Why not Both! This video probably contains things that Vercel wouldn't want you to do, and wouln't should you. This is very cursed. Please don't use this pattern in production. --- Music from #Uppbeat (free for Creators!):

https://uppbeat.io/t/hartzmann/purple-lines

License code: VQSIDLUGY9ITEWQD

😨 11🔥 2🤡 1
Photo unavailableShow in Telegram
#костыль Чтобы протестить массив нужно всего лишь… В 2023 году в Expect API Jest (+Vitest) нет встроенных методов для сверки массивов без учета порядка элементов. Мы, конечно, не гордые, но… P.S. Можно сделать expect.extend, но там надо возиться
Show all...
1😢 1