Использование CSS `content-visibility` для повышения производительности рендеринга: 🚀
Статья предлагает обсудить использование CSS свойства
#css #contentvisibility #webperformance
Планирование незапланированной работы: 🧩
В статье разбирается вопрос о том как управлять непредвиденной работой, такой как внезапные ошибки или запросы. Автор объясняет, что такая работа неизбежна и делится на две фазы: приём заявок и их выполнение. Приём включает в себя превращение сообщений о проблемах в конкретные задачи с минимальными препятствиями. Фаза выполнения организуется через систему Triage, которая собирает все запросы в едином интерфейсе для дальнейшего рассмотрения и распределения задач. Этот процесс помогает систематизировать решение непредвиденных задач и повышает эффективность работы команды.
#projectmanagement #teamworkflow #issuehandling
Работа с неудачами и постмортемы: 💡
Статья Вадима Кравченко о постмортемах в разработке ПО подчёркивает важность анализа неудач и создания устойчивой рабочей среды. Автор делится личным опытом кризисов, подчеркивая, что провалы неизбежны, но важен подход к их решению. Эффективное планирование на случай сбоев, прозрачное общение с клиентами и глубокий анализ инцидентов с выявлением корневых причин помогают превратить неудачи в ценные уроки. Основные ошибки в управлении кризисными ситуациями включают вину, нечеткую коммуникацию и игнорирование проблем. Постмортемы — это не только анализ провалов, но и возможность для роста и улучшения процессов.
#crisismanagement #postmortem
Как (и как не) разрабатывать REST API: 🛠
Статья рассматривает лучшие практики и частые ошибки в дизайне REST API. Автор, опираясь на свой опыт работы с сотнями REST API, предлагает ряд правил, которые помогут создать эффективные и практичные API. Среди ключевых рекомендаций: избегать лишних сегментов пути в URL, не добавлять расширения типа .json к URL, не возвращать массивы как ответы верхнего уровня, использовать строковые идентификаторы, быть последовательными в дизайне API, использовать структурированный формат ошибок и обеспечивать механизмы идемпотентности. Эти правила направлены на создание удобных и надёжных API.
#restapi #api
Очень открытый и невероятно закрытый: стоит ли переходить в open source?:💡
Статья на блоге компании Evil Martians обсуждает преимущества и риски перехода продукта в режим с открытым исходным кодом, а также рассматривает различные модели бизнеса для монетизации open source продуктов. Преимущества open source включают в себя прозрачность для разработчиков, защиту от зависимости от конкретного поставщика (vendor lock-in) и способствование инноваций в индустрии в целом. Среди рисков можно выделить возможность конкуренции с собственным платным продуктом и необходимость предоставления бесплатной поддержки другим пользователям. Различные бизнес-модели включают в себя комбинирование open source с моделью SaaS или облачных услуг, использование open source в сочетании с расширенным коммерческим продуктом (модель Open Core) или генерацию доходов через предоставление консультационных услуг.
#opensource #businessmodel
Статья предлагает обсудить использование CSS свойства
content-visibility для оптимизации производительности веб-страниц. Это свойство ускоряет загрузку страницы, позволяя браузеру игнорировать этапы раскладки и рендеринга ненужных элементов. content-visibility является частью спецификации CSS Containment, направленной на улучшение производительности. Оно представляет собой мощный инструмент оптимизации, но его использование может потребовать переструктурирования HTML и внимательного управления стилями. Автор также сравнивает его с другими техниками оптимизации, такими как ленивая загрузка и React Virtualized.#css #contentvisibility #webperformance
Планирование незапланированной работы: 🧩
В статье разбирается вопрос о том как управлять непредвиденной работой, такой как внезапные ошибки или запросы. Автор объясняет, что такая работа неизбежна и делится на две фазы: приём заявок и их выполнение. Приём включает в себя превращение сообщений о проблемах в конкретные задачи с минимальными препятствиями. Фаза выполнения организуется через систему Triage, которая собирает все запросы в едином интерфейсе для дальнейшего рассмотрения и распределения задач. Этот процесс помогает систематизировать решение непредвиденных задач и повышает эффективность работы команды.
#projectmanagement #teamworkflow #issuehandling
Работа с неудачами и постмортемы: 💡
Статья Вадима Кравченко о постмортемах в разработке ПО подчёркивает важность анализа неудач и создания устойчивой рабочей среды. Автор делится личным опытом кризисов, подчеркивая, что провалы неизбежны, но важен подход к их решению. Эффективное планирование на случай сбоев, прозрачное общение с клиентами и глубокий анализ инцидентов с выявлением корневых причин помогают превратить неудачи в ценные уроки. Основные ошибки в управлении кризисными ситуациями включают вину, нечеткую коммуникацию и игнорирование проблем. Постмортемы — это не только анализ провалов, но и возможность для роста и улучшения процессов.
#crisismanagement #postmortem
Как (и как не) разрабатывать REST API: 🛠
Статья рассматривает лучшие практики и частые ошибки в дизайне REST API. Автор, опираясь на свой опыт работы с сотнями REST API, предлагает ряд правил, которые помогут создать эффективные и практичные API. Среди ключевых рекомендаций: избегать лишних сегментов пути в URL, не добавлять расширения типа .json к URL, не возвращать массивы как ответы верхнего уровня, использовать строковые идентификаторы, быть последовательными в дизайне API, использовать структурированный формат ошибок и обеспечивать механизмы идемпотентности. Эти правила направлены на создание удобных и надёжных API.
#restapi #api
Очень открытый и невероятно закрытый: стоит ли переходить в open source?:💡
Статья на блоге компании Evil Martians обсуждает преимущества и риски перехода продукта в режим с открытым исходным кодом, а также рассматривает различные модели бизнеса для монетизации open source продуктов. Преимущества open source включают в себя прозрачность для разработчиков, защиту от зависимости от конкретного поставщика (vendor lock-in) и способствование инноваций в индустрии в целом. Среди рисков можно выделить возможность конкуренции с собственным платным продуктом и необходимость предоставления бесплатной поддержки другим пользователям. Различные бизнес-модели включают в себя комбинирование open source с моделью SaaS или облачных услуг, использование open source в сочетании с расширенным коммерческим продуктом (модель Open Core) или генерацию доходов через предоставление консультационных услуг.
#opensource #businessmodel
👍2🔥2
Интеграция Qwik с Astro превосходит как React, так и Vanilla JS: 💻
Пол Скэнлон исследует интеграцию Qwik с Astro и приходит к выводу, что это сочетание представляет собой наилучший вариант. Он считает, что Astro более легкий по сравнению с React и менее громоздкий по сравнению с Vanilla JS. Основным преимуществом использования Astro является то, что по умолчанию он не отправляет JavaScript на клиентскую сторону браузера, что обеспечивает быструю загрузку страниц. С другой стороны, Qwik дает разработчикам возможность выбирать, какие страницы должны включать JavaScript, а какие - нет. Это позволяет избегать лишней нагрузки, связанной с использованием JavaScript-фреймворков, как в случае с React, и создает более эффективную и производительную среду для веб-разработки.
#javanoscript #astro #qwik
Serverless на Google с Cloud Functions и React: 🌐
Статья на O'Reilly описывает создание приложений с использованием архитектуры serverless на Google Cloud Functions и фронтенда на React. Serverless архитектура сокращает сложность и затраты на разработку и масштабирование приложений, особенно для микросервисов, IoT и мобильных бэкендов. В статье представлен пример использования Cloud Functions для запросов к API и создания React-фронтенда для отображения данных. Также рассматривается настройка Redux для управления состоянием приложения и использование Material-UI для создания пользовательского интерфейса. Этот подход упрощает и ускоряет развертывание новых приложений с минимальными административными затратами.
#serverless #googlecloud #reactjs
Пол Скэнлон исследует интеграцию Qwik с Astro и приходит к выводу, что это сочетание представляет собой наилучший вариант. Он считает, что Astro более легкий по сравнению с React и менее громоздкий по сравнению с Vanilla JS. Основным преимуществом использования Astro является то, что по умолчанию он не отправляет JavaScript на клиентскую сторону браузера, что обеспечивает быструю загрузку страниц. С другой стороны, Qwik дает разработчикам возможность выбирать, какие страницы должны включать JavaScript, а какие - нет. Это позволяет избегать лишней нагрузки, связанной с использованием JavaScript-фреймворков, как в случае с React, и создает более эффективную и производительную среду для веб-разработки.
#javanoscript #astro #qwik
Serverless на Google с Cloud Functions и React: 🌐
Статья на O'Reilly описывает создание приложений с использованием архитектуры serverless на Google Cloud Functions и фронтенда на React. Serverless архитектура сокращает сложность и затраты на разработку и масштабирование приложений, особенно для микросервисов, IoT и мобильных бэкендов. В статье представлен пример использования Cloud Functions для запросов к API и создания React-фронтенда для отображения данных. Также рассматривается настройка Redux для управления состоянием приложения и использование Material-UI для создания пользовательского интерфейса. Этот подход упрощает и ускоряет развертывание новых приложений с минимальными административными затратами.
#serverless #googlecloud #reactjs
👍4🔥2
Python легко, Go просто, но просто не значит легко 🤔
Статья рассматривает различия между простотой и легкостью в контексте программирования, сравнивая Python и Go. Python выделяется своей доступностью и простотой входа, делая его популярным выбором для начинающих программистов, но его "легкость" скрывает сложность внутренней реализации. С другой стороны, Go ориентирован на простоту понимания, что делает его предпочтительным для консистентности и производительности, хотя и менее "удобным" в некоторых аспектах. Автор также обсуждает, как можно эффективно использовать оба языка в различных проектах.
#python #golang
Применение архитектурных тестов в программном обеспечении 💻
Статья освещает важность архитектурных тестов в программировании, объясняя, как они помогают поддерживать структуру и дизайн кода. Автор описывает использование библиотеки
#architecture #testing
Простейший пример для понимания серверных экшенов в Next.js💡
Самый лучший способ понять что-то – посмотреть на это в действии. Статья демонстрирует использование серверных экшенов в Next.js на примере простого приложения. Автор объясняет, как экшены облегчают взаимодействие между клиентом и сервером, автоматически создавая API-эндпоинты из функций.
#nextjs #serveractions
Введение в GPT Crawler: создание персонализированного GPT из любого сайта 🌐
Статья представляет GPT Crawler, инструмент для создания персонализированных моделей GPT на основе содержимого веб-сайтов. Проект позволяет указать URL сайта, который затем анализируется для создания базы знаний для GPT. Это преобразует стандартный сайт в интерактивного помощника, способного отвечать на вопросы и предоставлять информацию по определенной тематике. В статье предложена пошаговая инструкция по использованию GPT Crawler.
#gptchat #ai #customGPT
Telebot: Фреймворк для создания Telegram ботов на Go 🤖
Telebot — это фреймворк на языке Go для создания ботов в Telegram, который отличается простотой и гибкостью. Он поддерживает такие функции Telegram, как инлайн-запросы, клавиатуры и обработка файлов, что делает его удобным инструментом для разработки ботов. Репозиторий на GitHub предоставляет подробную документацию, примеры использования и сообщество для поддержки.
#telebot #golang #telegrambots
Архитектура современных приложений с использованием языковых моделей (LLM)💡
Статья объясняет ключевые шаги и архитектуру создания приложений на основе больших языковых моделей (LLM). Освещены пять основных этапов разработки LLM-приложения, включая выбор подходящей модели, настройку и архитектуру приложения. Также рассмотрены вопросы эффективного и ответственного использования ИИ-инструментов и реальное влияние LLM-приложений в различных сферах.
#llm #ai
The Node.js Event Loop 🐍
Эта статья объясняет, как работает цикл событий в Node.js, почему он важен для производительности и какие лучшие практики следует соблюдать при использовании его. Вы узнаете, что такое цикл событий, какие фазы он состоит из, как он обрабатывает таймеры, задачи и данные. Вы также узнаете, что происходит, когда все запросы приходят на одно и то же время, и как избежать блокировки цикла событий. Но, по большому счету, статья – это обзор решений, которые советует Маттео Коллина, и которые он уже использует в своих инструментах.
#nodejs #eventloop #performance
Статья рассматривает различия между простотой и легкостью в контексте программирования, сравнивая Python и Go. Python выделяется своей доступностью и простотой входа, делая его популярным выбором для начинающих программистов, но его "легкость" скрывает сложность внутренней реализации. С другой стороны, Go ориентирован на простоту понимания, что делает его предпочтительным для консистентности и производительности, хотя и менее "удобным" в некоторых аспектах. Автор также обсуждает, как можно эффективно использовать оба языка в различных проектах.
#python #golang
Применение архитектурных тестов в программном обеспечении 💻
Статья освещает важность архитектурных тестов в программировании, объясняя, как они помогают поддерживать структуру и дизайн кода. Автор описывает использование библиотеки
NetArchTest.Rules для написания таких тестов и приводит примеры тестов для различных архитектурных и дизайнерских правил. Основной акцент сделан на автоматизации процесса поддержания архитектуры программного обеспечения и предотвращения распространенных ошибок в процессе разработки. Также для TypeScript есть похожая библиотека ts-arch.#architecture #testing
Простейший пример для понимания серверных экшенов в Next.js💡
Самый лучший способ понять что-то – посмотреть на это в действии. Статья демонстрирует использование серверных экшенов в Next.js на примере простого приложения. Автор объясняет, как экшены облегчают взаимодействие между клиентом и сервером, автоматически создавая API-эндпоинты из функций.
#nextjs #serveractions
Введение в GPT Crawler: создание персонализированного GPT из любого сайта 🌐
Статья представляет GPT Crawler, инструмент для создания персонализированных моделей GPT на основе содержимого веб-сайтов. Проект позволяет указать URL сайта, который затем анализируется для создания базы знаний для GPT. Это преобразует стандартный сайт в интерактивного помощника, способного отвечать на вопросы и предоставлять информацию по определенной тематике. В статье предложена пошаговая инструкция по использованию GPT Crawler.
#gptchat #ai #customGPT
Telebot: Фреймворк для создания Telegram ботов на Go 🤖
Telebot — это фреймворк на языке Go для создания ботов в Telegram, который отличается простотой и гибкостью. Он поддерживает такие функции Telegram, как инлайн-запросы, клавиатуры и обработка файлов, что делает его удобным инструментом для разработки ботов. Репозиторий на GitHub предоставляет подробную документацию, примеры использования и сообщество для поддержки.
#telebot #golang #telegrambots
Архитектура современных приложений с использованием языковых моделей (LLM)💡
Статья объясняет ключевые шаги и архитектуру создания приложений на основе больших языковых моделей (LLM). Освещены пять основных этапов разработки LLM-приложения, включая выбор подходящей модели, настройку и архитектуру приложения. Также рассмотрены вопросы эффективного и ответственного использования ИИ-инструментов и реальное влияние LLM-приложений в различных сферах.
#llm #ai
The Node.js Event Loop 🐍
Эта статья объясняет, как работает цикл событий в Node.js, почему он важен для производительности и какие лучшие практики следует соблюдать при использовании его. Вы узнаете, что такое цикл событий, какие фазы он состоит из, как он обрабатывает таймеры, задачи и данные. Вы также узнаете, что происходит, когда все запросы приходят на одно и то же время, и как избежать блокировки цикла событий. Но, по большому счету, статья – это обзор решений, которые советует Маттео Коллина, и которые он уже использует в своих инструментах.
#nodejs #eventloop #performance
👍5🔥2
Как работают современные JavaScript-фреймворки: узнаем на практике 😎
Это статья, в которой автор показывает, как создать свой собственный фреймворк на основе принципов и концепций существующих фреймворков, таких как React, Angular и Vue. Автор объясняет, что такое фреймворк, как он помогает разработчикам упростить и ускорить процесс создания веб-приложений, и какие преимущества и недостатки он имеет. Автор также демонстрирует, как можно использовать различные инструменты и технологии для создания фреймворка, такие как Webpack, Babel, ESLint и Jest. Статья содержит много полезных примеров кода и ссылок на дополнительные ресурсы для изучения темы.
#javanoscript #frameworks
Инструменты для системного мышления: 6 основных концепций 🧠
В этой статье Лейла Акароглу делится ключевыми инструментами и идеями для развития системного мышления, необходимого для решения сложных проблем и перехода к циркулярной экономике. Она объясняет шесть основных концепций системного мышления, включая взаимосвязанность, синтез и другие. Что они означают и как их можно использовать на практике?
#systemsthinking
Забудьте о ваших микросервисах! Несравненные преимущества пул-ориентированной архитектуры 🏊♂️
В этой статье Рафаэль Мутар предлагает альтернативу микросервисам - пул-ориентированная архитектура. Он утверждает, что она может быть более эффективной для решения проблем масштабирования, особенно в сфере B2B. Архитектура пула предполагает создание отдельного “пула” (или монолита) для каждого клиента, что позволяет индивидуально масштабировать ресурсы в зависимости от потребностей клиента.
#systemsthinking #architecture #microservices
Корни современных практик бэкенд-инжиниринга 💻
В этой статье Гергели Орос, автор блога “Прагматичный инженер”, рассказывает о развитии практик бэкенд-инжиниринга. Он обсуждает, как эти практики менялись со временем, начиная с виртуализации серверов в 2000-х годах и перехода к облачным технологиям в 2010-х. Какие же новшества ждут нас в будущем?
#backend #engineering #history
Запись архитектурного решения (ADR) 📝
Этот репозиторий на GitHub, созданный Джоэлом Паркером Хендерсоном, представляет собой примеры записей архитектурных решений (ADR) для планирования программного обеспечения, руководства в области IT и документации по шаблонам. ADR - это документ, который фиксирует важное архитектурное решение, принятое вместе с его контекстом и последствиями. Репозиторий включает в себя шаблоны для создания ADR, советы по работе в команде и многое другое.
#architecture #decisionmaking #github
Mapper Contexts & Supercontexts: Разделение доменно-специфических и доменно-общих ограниченных контекстов 🌐
В этой статье Ник Тун обсуждает альтернативные архитектуры для отправки уведомлений в новой системе. Он предлагает два варианта: модель push, где контексты должны указывать контексту уведомлений отправить уведомление, и хореографированное решение, где контекст уведомлений слушает события от других контекстов и определяет, когда отправить уведомление.
#architecture #decisionmaking #notifications
Miško Hevery (Builder.io/Qwik) на Twitter 🐦
Мишко Хевери, создатель Builder.io/Qwik, обсуждает важность компромиссов в программной инженерии. Он предлагает обсудить, как происходит загрузка данных в различных мета-фреймворках, и каковы компромиссы этих подходов.
#datafetching #metaframeworks
Это статья, в которой автор показывает, как создать свой собственный фреймворк на основе принципов и концепций существующих фреймворков, таких как React, Angular и Vue. Автор объясняет, что такое фреймворк, как он помогает разработчикам упростить и ускорить процесс создания веб-приложений, и какие преимущества и недостатки он имеет. Автор также демонстрирует, как можно использовать различные инструменты и технологии для создания фреймворка, такие как Webpack, Babel, ESLint и Jest. Статья содержит много полезных примеров кода и ссылок на дополнительные ресурсы для изучения темы.
#javanoscript #frameworks
Инструменты для системного мышления: 6 основных концепций 🧠
В этой статье Лейла Акароглу делится ключевыми инструментами и идеями для развития системного мышления, необходимого для решения сложных проблем и перехода к циркулярной экономике. Она объясняет шесть основных концепций системного мышления, включая взаимосвязанность, синтез и другие. Что они означают и как их можно использовать на практике?
#systemsthinking
Забудьте о ваших микросервисах! Несравненные преимущества пул-ориентированной архитектуры 🏊♂️
В этой статье Рафаэль Мутар предлагает альтернативу микросервисам - пул-ориентированная архитектура. Он утверждает, что она может быть более эффективной для решения проблем масштабирования, особенно в сфере B2B. Архитектура пула предполагает создание отдельного “пула” (или монолита) для каждого клиента, что позволяет индивидуально масштабировать ресурсы в зависимости от потребностей клиента.
#systemsthinking #architecture #microservices
Корни современных практик бэкенд-инжиниринга 💻
В этой статье Гергели Орос, автор блога “Прагматичный инженер”, рассказывает о развитии практик бэкенд-инжиниринга. Он обсуждает, как эти практики менялись со временем, начиная с виртуализации серверов в 2000-х годах и перехода к облачным технологиям в 2010-х. Какие же новшества ждут нас в будущем?
#backend #engineering #history
Запись архитектурного решения (ADR) 📝
Этот репозиторий на GitHub, созданный Джоэлом Паркером Хендерсоном, представляет собой примеры записей архитектурных решений (ADR) для планирования программного обеспечения, руководства в области IT и документации по шаблонам. ADR - это документ, который фиксирует важное архитектурное решение, принятое вместе с его контекстом и последствиями. Репозиторий включает в себя шаблоны для создания ADR, советы по работе в команде и многое другое.
#architecture #decisionmaking #github
Mapper Contexts & Supercontexts: Разделение доменно-специфических и доменно-общих ограниченных контекстов 🌐
В этой статье Ник Тун обсуждает альтернативные архитектуры для отправки уведомлений в новой системе. Он предлагает два варианта: модель push, где контексты должны указывать контексту уведомлений отправить уведомление, и хореографированное решение, где контекст уведомлений слушает события от других контекстов и определяет, когда отправить уведомление.
#architecture #decisionmaking #notifications
Miško Hevery (Builder.io/Qwik) на Twitter 🐦
Мишко Хевери, создатель Builder.io/Qwik, обсуждает важность компромиссов в программной инженерии. Он предлагает обсудить, как происходит загрузка данных в различных мета-фреймворках, и каковы компромиссы этих подходов.
#datafetching #metaframeworks
🔥5👍1
NODE_ENV=production это ложь! 🤥
Маттео Коллина в этом видео рассказывает о проблемах, связанных с использованием переменной окружения NODE_ENV в разработке программного обеспечения. Он подчеркивает, что использование NODE_ENV для определения “продакшн” окружения может привести к проблемам воспроизводимости ошибок между различными окружениями. Но если мы используем NODE_ENV=production везде, как нам различать разные окружения?
#nodejs #NODE_ENV
Серверные компоненты React: Глубокое погружение 🤿
Теджас Кумар, консультант по связям с разработчиками, представляет глубокое погружение в серверные компоненты React. Он обсуждает их фундаментальный сдвиг в инструментарии и архитектуре React, а также демонстрирует, как создать приложение с использованием серверных компонентов с нуля. Помимо этого он рассказывает о преимуществах серверных компонентов, включая производительность, извлечение данных и удобство работы для пользователя.
#react #rsc
Простое стало легким ⚖️
В продолжение к одному из последних выпусков СЯЛ про простое и легкое. Рич Хикки в этом видео обсуждает важность простоты и легкости в программировании. Он объясняет разницу между простотой и легкостью, а также рассказывает о влиянии этих концепций на разработку программного обеспечения. Хикки также обсуждает сложность, которая возникает в программировании из-за использования сложных инструментов и конструкций, и подчеркивает важность упрощения для повышения понимания и поддержки программ.
#easy #simple #programming
Plasmo: The Browser Extension Framework 🌐
Plasmo - это мощный SDK для создания расширений браузера, разработанный хакерами для хакеров. Он позволяет вам сосредоточиться на создании своего продукта, не беспокоясь о конфигурационных файлах и особенностях создания расширений для браузера. Это как Next.js для расширений браузера! В репозитории вы найдете примеры, шаблоны и советы по работе с Plasmo.
#browserextension #sdk
Tinylibs: Место для маленьких и минималистичных библиотек 📚
Tinylibs - это коллекция минималистичных библиотек, созданная для разработчиков. Она включает в себя различные проекты, такие как tinypool, tinybench и другие. Каждый из этих проектов представляет собой маленькую, но мощную библиотеку, которая решает конкретную задачу в разработке.
#tinylibs #minimalism #softwaredevelopment
Happy CSS Modules: Типизированные, с возможностью перехода к определению, CSS модули. 🎉
Happy CSS Modules - это инструмент, который генерирует .d.ts и .d.ts.map для CSS модулей, обеспечивая строгую типизацию и возможность перехода к определению. Он поддерживает Postcss, Sass, Less и реализует алгоритмы разрешения, совместимые с webpack. Он также поддерживает resolve.alias и не требует конфигурационного файла, предлагая простые параметры CLI.
#css #modules #typenoscript
Addy Osmani на Twitter 🐦
Addy Osmani делится впечатлениями о великолепной демке, которая стала возможной благодаря функции window.getScreenDetails(). Эта функция предоставляет основную информацию в реальном времени (размер, позицию и т.д.) обо всех экранах устройства. Сами исходники демки можно найти по этой ссылке.
#webdemo #javanoscript #getScreenDetails
Маттео Коллина в этом видео рассказывает о проблемах, связанных с использованием переменной окружения NODE_ENV в разработке программного обеспечения. Он подчеркивает, что использование NODE_ENV для определения “продакшн” окружения может привести к проблемам воспроизводимости ошибок между различными окружениями. Но если мы используем NODE_ENV=production везде, как нам различать разные окружения?
#nodejs #NODE_ENV
Серверные компоненты React: Глубокое погружение 🤿
Теджас Кумар, консультант по связям с разработчиками, представляет глубокое погружение в серверные компоненты React. Он обсуждает их фундаментальный сдвиг в инструментарии и архитектуре React, а также демонстрирует, как создать приложение с использованием серверных компонентов с нуля. Помимо этого он рассказывает о преимуществах серверных компонентов, включая производительность, извлечение данных и удобство работы для пользователя.
#react #rsc
Простое стало легким ⚖️
В продолжение к одному из последних выпусков СЯЛ про простое и легкое. Рич Хикки в этом видео обсуждает важность простоты и легкости в программировании. Он объясняет разницу между простотой и легкостью, а также рассказывает о влиянии этих концепций на разработку программного обеспечения. Хикки также обсуждает сложность, которая возникает в программировании из-за использования сложных инструментов и конструкций, и подчеркивает важность упрощения для повышения понимания и поддержки программ.
#easy #simple #programming
Plasmo: The Browser Extension Framework 🌐
Plasmo - это мощный SDK для создания расширений браузера, разработанный хакерами для хакеров. Он позволяет вам сосредоточиться на создании своего продукта, не беспокоясь о конфигурационных файлах и особенностях создания расширений для браузера. Это как Next.js для расширений браузера! В репозитории вы найдете примеры, шаблоны и советы по работе с Plasmo.
#browserextension #sdk
Tinylibs: Место для маленьких и минималистичных библиотек 📚
Tinylibs - это коллекция минималистичных библиотек, созданная для разработчиков. Она включает в себя различные проекты, такие как tinypool, tinybench и другие. Каждый из этих проектов представляет собой маленькую, но мощную библиотеку, которая решает конкретную задачу в разработке.
#tinylibs #minimalism #softwaredevelopment
Happy CSS Modules: Типизированные, с возможностью перехода к определению, CSS модули. 🎉
Happy CSS Modules - это инструмент, который генерирует .d.ts и .d.ts.map для CSS модулей, обеспечивая строгую типизацию и возможность перехода к определению. Он поддерживает Postcss, Sass, Less и реализует алгоритмы разрешения, совместимые с webpack. Он также поддерживает resolve.alias и не требует конфигурационного файла, предлагая простые параметры CLI.
#css #modules #typenoscript
Addy Osmani на Twitter 🐦
Addy Osmani делится впечатлениями о великолепной демке, которая стала возможной благодаря функции window.getScreenDetails(). Эта функция предоставляет основную информацию в реальном времени (размер, позицию и т.д.) обо всех экранах устройства. Сами исходники демки можно найти по этой ссылке.
#webdemo #javanoscript #getScreenDetails
👍3🔥2
SkipRenderOnClient.tsx на GitHub 💻
#react #ssr #performance
Шаблоны «Как со мной работать» 🧩
Шаблоны «Как со мной работать» - это, как правило, Google Документ, страница Notion или доска Miro, доступные каждому в профиле Slack. Эти шаблоны помогают коллегам понять ваши предпочтения, как и когда вы хотите получать обратную связь и как вы общаетесь. В документе можно указать график работы, предпочтительное время для встреч, способы получения обратной связи, ваши сильные и слабые стороны, ожидания относительно связи и способы коммуникации. Это способствует созданию культуры сотрудничества и поддержки, избегая недопонимания.
#ux #communication #teamwork
Как исправить неудобный пользовательский интерфейс: 🛠
Статья Скотта Хурффа рассказывает о проблеме “Awkward UI” - когда пользовательский интерфейс кажется неестественным или неудобным. Он объясняет, что это происходит, когда дизайнеры не учитывают физический мир и нарушают правила “UI Stack”. Статья предлагает решения для создания более понятных и “человеческих” интерфейсов.
#ui #design #usability
Новые модели для твоей работы:📘
“New Ways of Working Playbook” - это руководство на Notion, которое предлагает новые подходы к организации рабочего процесса. Оно содержит ценные советы и стратегии для тех, кто ищет способы оптимизировать свою работу и повысить производительность.
#productivity #work #notion
Промисы не являются монадами: 🔄
Ну и чтобы точно проснуться после новогодних праздников можно прочитать статью на Rybicki.io, которая обсуждает, почему промисы в JavaScript технически не являются монадами. Автор анализирует различия между промисами и монадами, и объясняет, почему они не являются взаимозаменяемыми, несмотря на некоторые сходства в их структуре и функциональности. Для лучшего понимания, рекомендую все-таки перевести страницу на русский 🙃
#javanoscript #promises #monads
Рефакторинг большой кодовой базы: опыт GitLab 🔧
Рефакторинг больших кодовых баз может быть сложным: неясно, с чего начать, как продолжать, и не видно конца пути. В своем выступлении Наталья Теплухина делится техниками и инструментами, которые помогли команде GitLab провести несколько рефакторингов. Также рассказывается об истории неудач, которые научили их лучше рефакторить код.
#refactoring #GitLab
Go 1.22: Интерактивные заметки о релизе: 🐹
Статья Антона Жиянова на antonz.org представляет интерактивные заметки о релизе Go 1.22. Он обсуждает улучшения, включая уменьшение накладных расходов на память для большинства программ Go на примерно 1% за счет дедупликации избыточных метаданных, исправление неудачного решения о переменных цикла, а также упоминаются новые возможности для работы с случайными числами и долгожданный маршрутизатор HTTP на основе шаблонов.
#golang #release #1_22
SkipRenderOnClient.tsx - это хак для повышения производительности при рендеринге на стороне сервера (SSR), который позволяет условно рендерить компоненты на стороне клиента, обходя гидратацию, без ошибок несоответствий гидратации. Это позволяет избежать дорогостоящей гидратации, если элемент сразу после этого будет скрыт или удален.#react #ssr #performance
Шаблоны «Как со мной работать» 🧩
Шаблоны «Как со мной работать» - это, как правило, Google Документ, страница Notion или доска Miro, доступные каждому в профиле Slack. Эти шаблоны помогают коллегам понять ваши предпочтения, как и когда вы хотите получать обратную связь и как вы общаетесь. В документе можно указать график работы, предпочтительное время для встреч, способы получения обратной связи, ваши сильные и слабые стороны, ожидания относительно связи и способы коммуникации. Это способствует созданию культуры сотрудничества и поддержки, избегая недопонимания.
#ux #communication #teamwork
Как исправить неудобный пользовательский интерфейс: 🛠
Статья Скотта Хурффа рассказывает о проблеме “Awkward UI” - когда пользовательский интерфейс кажется неестественным или неудобным. Он объясняет, что это происходит, когда дизайнеры не учитывают физический мир и нарушают правила “UI Stack”. Статья предлагает решения для создания более понятных и “человеческих” интерфейсов.
#ui #design #usability
Новые модели для твоей работы:📘
“New Ways of Working Playbook” - это руководство на Notion, которое предлагает новые подходы к организации рабочего процесса. Оно содержит ценные советы и стратегии для тех, кто ищет способы оптимизировать свою работу и повысить производительность.
#productivity #work #notion
Промисы не являются монадами: 🔄
Ну и чтобы точно проснуться после новогодних праздников можно прочитать статью на Rybicki.io, которая обсуждает, почему промисы в JavaScript технически не являются монадами. Автор анализирует различия между промисами и монадами, и объясняет, почему они не являются взаимозаменяемыми, несмотря на некоторые сходства в их структуре и функциональности. Для лучшего понимания, рекомендую все-таки перевести страницу на русский 🙃
#javanoscript #promises #monads
Рефакторинг большой кодовой базы: опыт GitLab 🔧
Рефакторинг больших кодовых баз может быть сложным: неясно, с чего начать, как продолжать, и не видно конца пути. В своем выступлении Наталья Теплухина делится техниками и инструментами, которые помогли команде GitLab провести несколько рефакторингов. Также рассказывается об истории неудач, которые научили их лучше рефакторить код.
#refactoring #GitLab
Go 1.22: Интерактивные заметки о релизе: 🐹
Статья Антона Жиянова на antonz.org представляет интерактивные заметки о релизе Go 1.22. Он обсуждает улучшения, включая уменьшение накладных расходов на память для большинства программ Go на примерно 1% за счет дедупликации избыточных метаданных, исправление неудачного решения о переменных цикла, а также упоминаются новые возможности для работы с случайными числами и долгожданный маршрутизатор HTTP на основе шаблонов.
#golang #release #1_22
🔥4👍1
Seroval: Преобразование значений JS в строки: 💻
Seroval – это инструмент для преобразования значений JavaScript в строки. Он позволяет сериализовать сложные структуры данных, включая циклические ссылки и встроенные объекты JavaScript, такие как Map и Set.
#javanoscript #serialization #performance
Awesome Front-End System Design: 🌐
“Awesome Front-End System Design” от greatfrontend - это кураторский список ресурсов по дизайну различных систем с точки зрения фронтенда, отлично подходящий для подготовки к собеседованию или общего обучения. Он включает в себя руководства, примеры и исследования случаев по различным темам, таким как новостная лента (например, Facebook), сайты электронной коммерции (например, Amazon) и обмен фотографиями (например, Instagram).
#frontend #systemdesign #interviewprep
ShellCheck: Статический анализатор bash скриптов: 🐚
ShellCheck, созданный пользователем koalaman, это инструмент, который предлагает предупреждения и рекомендации для скриптов оболочки bash/sh. Цели ShellCheck - указать и прояснить типичные проблемы синтаксиса, которые вызывают криптичные сообщения об ошибках оболочки, а также указать и прояснить типичные проблемы семантики, которые заставляют оболочку вести себя странно и контринтуитивно.
#bash #shell #staticanalysis
Awesome CTO 🚀
“Awesome CTO” от kuchin - это кураторский список ресурсов для технических директоров и VP по исследованиям и разработке, с акцентом на стартапы и компании с гиперростом.
#cto #startups #hypergrowth
TWC: Создание многоразовых компонентов React + Tailwind CSS 💻
TWC, созданный gregberge, - это инструмент, который позволяет создавать многоразовые компоненты React + Tailwind CSS в одну строку. На фоне новости о том, что Styled Components – это устаревшая депрекейтнутая штука, TWС, который поддерживает серверные компоненты, выглядит как супер альтернатива.
#react #tailwindcss #components
Node.js Best Practices 📚
“Node.js Best Practices” от goldbergyoni - это кураторский список лучших практик Node.js, который постоянно обновляется и расширяется. Он включает в себя более 80 лучших практик, руководств по стилю и советов по архитектуре.
#nodejs #bestpractices #opensource
Automock: Упрощение unit тестирования для TypeScript 🛠
Automock - это инструмент, который оптимизирует процесс unit тестирования в рамках фреймворков внедрения зависимостей TypeScript, предоставляя виртуальную, изолированную среду и автоматическую генерацию моков, что позволяет разработчикам создавать эффективные наборы тестов и улучшать общий опыт тестирования.
#typenoscript #unittesting #dependencyinjection
Better Commits: CLI для создания лучших коммитов 💻
Better Commits, созданный Everduin94, - это инструмент командной строки (CLI), который помогает создавать лучшие коммиты, следуя руководствам по стандартизации коммитов. Инструмент предлагает гибкую конфигурацию с разумными настройками по умолчанию, выводит предварительный просмотр коммитов в цвете и поддерживает использование эмодзи для каждого типа коммита.
#git #commits #typenoscript
Refine: Фреймворк React для создания внутренних инструментов 💻
Refine - это мета-фреймворк React, который позволяет быстро разрабатывать широкий спектр веб-приложений. От внутренних инструментов до панелей администратора, приложений B2B и приборных панелей, он служит всеобъемлющим решением для создания любого типа CRUD-приложения. Refine обеспечивает свободу выбора предпочитаемых библиотек и генерирует готовый к загрузке код шаблона.
#react #crud #b2b
Seroval – это инструмент для преобразования значений JavaScript в строки. Он позволяет сериализовать сложные структуры данных, включая циклические ссылки и встроенные объекты JavaScript, такие как Map и Set.
#javanoscript #serialization #performance
Awesome Front-End System Design: 🌐
“Awesome Front-End System Design” от greatfrontend - это кураторский список ресурсов по дизайну различных систем с точки зрения фронтенда, отлично подходящий для подготовки к собеседованию или общего обучения. Он включает в себя руководства, примеры и исследования случаев по различным темам, таким как новостная лента (например, Facebook), сайты электронной коммерции (например, Amazon) и обмен фотографиями (например, Instagram).
#frontend #systemdesign #interviewprep
ShellCheck: Статический анализатор bash скриптов: 🐚
ShellCheck, созданный пользователем koalaman, это инструмент, который предлагает предупреждения и рекомендации для скриптов оболочки bash/sh. Цели ShellCheck - указать и прояснить типичные проблемы синтаксиса, которые вызывают криптичные сообщения об ошибках оболочки, а также указать и прояснить типичные проблемы семантики, которые заставляют оболочку вести себя странно и контринтуитивно.
#bash #shell #staticanalysis
Awesome CTO 🚀
“Awesome CTO” от kuchin - это кураторский список ресурсов для технических директоров и VP по исследованиям и разработке, с акцентом на стартапы и компании с гиперростом.
#cto #startups #hypergrowth
TWC: Создание многоразовых компонентов React + Tailwind CSS 💻
TWC, созданный gregberge, - это инструмент, который позволяет создавать многоразовые компоненты React + Tailwind CSS в одну строку. На фоне новости о том, что Styled Components – это устаревшая депрекейтнутая штука, TWС, который поддерживает серверные компоненты, выглядит как супер альтернатива.
#react #tailwindcss #components
Node.js Best Practices 📚
“Node.js Best Practices” от goldbergyoni - это кураторский список лучших практик Node.js, который постоянно обновляется и расширяется. Он включает в себя более 80 лучших практик, руководств по стилю и советов по архитектуре.
#nodejs #bestpractices #opensource
Automock: Упрощение unit тестирования для TypeScript 🛠
Automock - это инструмент, который оптимизирует процесс unit тестирования в рамках фреймворков внедрения зависимостей TypeScript, предоставляя виртуальную, изолированную среду и автоматическую генерацию моков, что позволяет разработчикам создавать эффективные наборы тестов и улучшать общий опыт тестирования.
#typenoscript #unittesting #dependencyinjection
Better Commits: CLI для создания лучших коммитов 💻
Better Commits, созданный Everduin94, - это инструмент командной строки (CLI), который помогает создавать лучшие коммиты, следуя руководствам по стандартизации коммитов. Инструмент предлагает гибкую конфигурацию с разумными настройками по умолчанию, выводит предварительный просмотр коммитов в цвете и поддерживает использование эмодзи для каждого типа коммита.
#git #commits #typenoscript
Refine: Фреймворк React для создания внутренних инструментов 💻
Refine - это мета-фреймворк React, который позволяет быстро разрабатывать широкий спектр веб-приложений. От внутренних инструментов до панелей администратора, приложений B2B и приборных панелей, он служит всеобъемлющим решением для создания любого типа CRUD-приложения. Refine обеспечивает свободу выбора предпочитаемых библиотек и генерирует готовый к загрузке код шаблона.
#react #crud #b2b
🔥5👍1
StyleX — Решение Meta для масштабируемого CSS 🌐
StyleX - это новая технология CSS от Facebook, созданная для решения проблем масштабирования, с которыми столкнулись разработчики при полном переписывании Facebook на React. StyleX обеспечивает “детерминированное разрешение”, гарантируя стабильность стилизации. В статье рассматривается пример компонента кнопки StyleX и обсуждаются преимущества и недостатки использования этого подхода.
#css #react #stylex
Горизонт событий ожидания в JavaScript 🕳
В JavaScript существует граница, которую можно назвать “горизонтом событий ожидания”. Каждый раз, когда асинхронная функция останавливается, ожидая результата промиса, она пересекает эту границу. После этого управление не может вернуться к ней, пока промис не выполнится. Если промис никогда не выполнится, функция остается заблокированной навсегда. Это не теоретическая проблема, она имеет важное практическое значение.
#javanoscript #async #promises
Rust против Go: Практическое сравнение 🔄
Эта статья представляет собой попытку дать обзор различий между Rust и Go с акцентом на веб-разработку, создавая небольшое реальное приложение на обоих языках. Авторы статьи идут дальше синтаксиса и рассматривают, как языки справляются с типичными веб-задачами, такими как маршрутизация, мидлвары, шаблонизация, доступ к базе данных и другое.
#rust #golang #webdevelopment
Storybook теперь поддерживает React Server Components 🌐
В этой статье обсуждается нововведение Storybook - поддержка React Server Components (RSC). Это значительное обновление позволяет разработчикам использовать серверные компоненты React непосредственно в Storybook, улучшая производительность и упрощая процесс разработки. Статья подробно рассказывает о преимуществах этой интеграции, включая эффективное взаимодействие между клиентом и сервером и новые возможности для создания более динамичных веб-приложений.
#storybook #react #rsc
Основы баз данных 🗂
Эта статья представляет себя введение в терминологию, концепции и навыки, необходимые для понимания объектов баз данных, требований безопасности, графических инструментов, скриптов T-SQL, написания запросов к базе данных, а также выполнения хранимых процедур. Она предназначена для людей, которые хотят изучить основы реляционных баз данных, систем управления базами данных и компонентов баз данных.
#database #sql #fundamentals
Полное руководство по использованию IndexedDB 💾
IndexedDB - это низкоуровневый API для хранения данных на стороне клиента. Это полноценная, постоянная система хранения NoSQL, доступная в браузере, которая позволяет хранить различные типы данных, такие как файлы, изображения, видео, структурированные данные, такие как объекты, списки и массивы. В этом руководстве рассматривается как использовать и настроить IndexedDB для хранения данных веб-приложений и как манипулировать данными с помощью доступного API.
#indexeddb #webstorage #nosql
Инструменты и техники руководства инженерами для успешного 2024 года 🛠
В статье представлен список различных инструментов и техник от Practical Engineering Management, которые помогут вам преуспеть в роли менеджера в новом году. Основные области внимания включают сознательное разрешение технического долга, повышение производительности и благополучия команды, использование исследований DORA для улучшения организации и команды, проведение эффективных 1-1 и максимизацию ценности каждой недели вашей работы в качестве руководителя инженеров.
#engineering #leadership #management
StyleX - это новая технология CSS от Facebook, созданная для решения проблем масштабирования, с которыми столкнулись разработчики при полном переписывании Facebook на React. StyleX обеспечивает “детерминированное разрешение”, гарантируя стабильность стилизации. В статье рассматривается пример компонента кнопки StyleX и обсуждаются преимущества и недостатки использования этого подхода.
#css #react #stylex
Горизонт событий ожидания в JavaScript 🕳
В JavaScript существует граница, которую можно назвать “горизонтом событий ожидания”. Каждый раз, когда асинхронная функция останавливается, ожидая результата промиса, она пересекает эту границу. После этого управление не может вернуться к ней, пока промис не выполнится. Если промис никогда не выполнится, функция остается заблокированной навсегда. Это не теоретическая проблема, она имеет важное практическое значение.
#javanoscript #async #promises
Rust против Go: Практическое сравнение 🔄
Эта статья представляет собой попытку дать обзор различий между Rust и Go с акцентом на веб-разработку, создавая небольшое реальное приложение на обоих языках. Авторы статьи идут дальше синтаксиса и рассматривают, как языки справляются с типичными веб-задачами, такими как маршрутизация, мидлвары, шаблонизация, доступ к базе данных и другое.
#rust #golang #webdevelopment
Storybook теперь поддерживает React Server Components 🌐
В этой статье обсуждается нововведение Storybook - поддержка React Server Components (RSC). Это значительное обновление позволяет разработчикам использовать серверные компоненты React непосредственно в Storybook, улучшая производительность и упрощая процесс разработки. Статья подробно рассказывает о преимуществах этой интеграции, включая эффективное взаимодействие между клиентом и сервером и новые возможности для создания более динамичных веб-приложений.
#storybook #react #rsc
Основы баз данных 🗂
Эта статья представляет себя введение в терминологию, концепции и навыки, необходимые для понимания объектов баз данных, требований безопасности, графических инструментов, скриптов T-SQL, написания запросов к базе данных, а также выполнения хранимых процедур. Она предназначена для людей, которые хотят изучить основы реляционных баз данных, систем управления базами данных и компонентов баз данных.
#database #sql #fundamentals
Полное руководство по использованию IndexedDB 💾
IndexedDB - это низкоуровневый API для хранения данных на стороне клиента. Это полноценная, постоянная система хранения NoSQL, доступная в браузере, которая позволяет хранить различные типы данных, такие как файлы, изображения, видео, структурированные данные, такие как объекты, списки и массивы. В этом руководстве рассматривается как использовать и настроить IndexedDB для хранения данных веб-приложений и как манипулировать данными с помощью доступного API.
#indexeddb #webstorage #nosql
Инструменты и техники руководства инженерами для успешного 2024 года 🛠
В статье представлен список различных инструментов и техник от Practical Engineering Management, которые помогут вам преуспеть в роли менеджера в новом году. Основные области внимания включают сознательное разрешение технического долга, повышение производительности и благополучия команды, использование исследований DORA для улучшения организации и команды, проведение эффективных 1-1 и максимизацию ценности каждой недели вашей работы в качестве руководителя инженеров.
#engineering #leadership #management
🔥3👍1
Как эффективно загружать данные в React 🌐
Эта статья рассматривает различные методы загрузки данных в React, с фокусом на производительность. Она обсуждает как начальную загрузку данных, так и загрузку по требованию, и объясняет, как эти подходы влияют на производительность приложения. Особое внимание уделяется использованию хуков, таких как useEffect, и проблемам, связанным с водопадной загрузкой данных. Также рассматриваются стратегии оптимизации, включая параллельную загрузку и использование контекста для управления данными.
#react #datafetching #performance
Concurrent React, внешние хранилища и проблемы согласованности интерфейса 🖥
Статья рассматривает проблему "согласованности состояния" (state tearing) в React при использовании внешних хранилищ данных в режиме конкурентной обработки. Автор объясняет, как этот эффект влияет на согласованность данных между различными компонентами UI и рассматривает разные подходы к управлению глобальным состоянием. Особое внимание уделяется тому, как новый хук useSyncExternalStore помогает решить эту проблему, гарантируя синхронизацию данных при конкурентном рендеринге.
#react #ui #concurrency #hooks
Каждый репозиторий - это монорепозиторий 🔄
Статья утверждает, что каждый репозиторий, за исключением самых тривиальных, имеет несколько легко идентифицируемых узлов со своими наборами операций и зависимостей между ними. Единственная причина, по которой мы не моделируем эти проекты как монорепозитории, заключается в том, что накладные расходы на инструменты монорепозитория высоки. Но что, если бы накладные расходы были равны нулю?
#monorepo #repository #development #nx
Git submodules: у нас есть монорепозиторий дома: 🔂
Моё выступление на Conf42: JavaScript. Рассказал, как мы организуем и делимся кодом между проектами, которые очень похожи, но абсолютно различны.
#monorepo #submodules
Удивительный баг в React 🐞
В статье рассказывается об удивительном баге в React, который был обнаружен автором. Он подробно описывает, как этот баг проявляется в коде, и предлагает возможные решения для его устранения. Это полезное чтение для разработчиков на React, которые хотят лучше понять, как работает фреймворк и как избегать подобных проблем в будущем.
#react #bug
Параллельные рауты в Next.js 14: подробное руководство 🔄
В статье рассказывается о параллельных маршрутах в Next.js 14, которые представляют собой продвинутый механизм маршрутизации, позволяющий одновременно отображать несколько страниц на одном и том же урле. Авторы объясняют, как определить параллельные маршруты с помощью слотов, и демонстрируют это на практическом примере построения сложной панели управления для веб-приложения.
#nextjs #routing
Oxlint – ESLint имеет фатальный недостаток 🎉
Oxlint, новый JavaScript линтер, теперь доступен для всеобщего использования. Этот инструмент, разработанный командой Oxidation Compiler, предназначен для обнаружения ошибочного или бесполезного кода без необходимости каких-либо конфигураций по умолчанию. Oxlint не предназначен для полной замены ESLint, но служит в качестве улучшения, когда медленность ESLint становится узким местом в вашем рабочем процессе. В реальных сценариях Shopify сообщила, что их 75-минутный прогон ESLint теперь занимает всего 10 секунд.
#javanoscript #linter #oxlint
Эта статья рассматривает различные методы загрузки данных в React, с фокусом на производительность. Она обсуждает как начальную загрузку данных, так и загрузку по требованию, и объясняет, как эти подходы влияют на производительность приложения. Особое внимание уделяется использованию хуков, таких как useEffect, и проблемам, связанным с водопадной загрузкой данных. Также рассматриваются стратегии оптимизации, включая параллельную загрузку и использование контекста для управления данными.
#react #datafetching #performance
Concurrent React, внешние хранилища и проблемы согласованности интерфейса 🖥
Статья рассматривает проблему "согласованности состояния" (state tearing) в React при использовании внешних хранилищ данных в режиме конкурентной обработки. Автор объясняет, как этот эффект влияет на согласованность данных между различными компонентами UI и рассматривает разные подходы к управлению глобальным состоянием. Особое внимание уделяется тому, как новый хук useSyncExternalStore помогает решить эту проблему, гарантируя синхронизацию данных при конкурентном рендеринге.
#react #ui #concurrency #hooks
Каждый репозиторий - это монорепозиторий 🔄
Статья утверждает, что каждый репозиторий, за исключением самых тривиальных, имеет несколько легко идентифицируемых узлов со своими наборами операций и зависимостей между ними. Единственная причина, по которой мы не моделируем эти проекты как монорепозитории, заключается в том, что накладные расходы на инструменты монорепозитория высоки. Но что, если бы накладные расходы были равны нулю?
#monorepo #repository #development #nx
Git submodules: у нас есть монорепозиторий дома: 🔂
Моё выступление на Conf42: JavaScript. Рассказал, как мы организуем и делимся кодом между проектами, которые очень похожи, но абсолютно различны.
#monorepo #submodules
Удивительный баг в React 🐞
В статье рассказывается об удивительном баге в React, который был обнаружен автором. Он подробно описывает, как этот баг проявляется в коде, и предлагает возможные решения для его устранения. Это полезное чтение для разработчиков на React, которые хотят лучше понять, как работает фреймворк и как избегать подобных проблем в будущем.
#react #bug
Параллельные рауты в Next.js 14: подробное руководство 🔄
В статье рассказывается о параллельных маршрутах в Next.js 14, которые представляют собой продвинутый механизм маршрутизации, позволяющий одновременно отображать несколько страниц на одном и том же урле. Авторы объясняют, как определить параллельные маршруты с помощью слотов, и демонстрируют это на практическом примере построения сложной панели управления для веб-приложения.
#nextjs #routing
Oxlint – ESLint имеет фатальный недостаток 🎉
Oxlint, новый JavaScript линтер, теперь доступен для всеобщего использования. Этот инструмент, разработанный командой Oxidation Compiler, предназначен для обнаружения ошибочного или бесполезного кода без необходимости каких-либо конфигураций по умолчанию. Oxlint не предназначен для полной замены ESLint, но служит в качестве улучшения, когда медленность ESLint становится узким местом в вашем рабочем процессе. В реальных сценариях Shopify сообщила, что их 75-минутный прогон ESLint теперь занимает всего 10 секунд.
#javanoscript #linter #oxlint
👍3🔥1
Интерактивное руководство по CSS Grid 🎨
CSS Grid - это мощный инструмент для создания сложных макетов в CSS. В этом руководстве автор делится своими открытиями и опытом работы с CSS Grid. Наверно, лучшее руководство, когда начинаешь изучать гриды.
#css #grid
Объяснение функции кэширования React 💾
React вводит новую функцию кэширования, которая позволяет избежать повторного вычисления результатов при передаче одних и тех же аргументов функции. Это руководство объясняет, как работает эта функция и как ее можно использовать для оптимизации производительности ваших приложений на React. И дело не только в запросах через fetch.
#react #cache
Погружение в Server Actions в Next.js 14 🚀
Статья на LogRocket блоге разбирает нововведение в Next.js 14 - Server Actions, позволяющее разгрузить клиентскую часть от задач по получению и мутации данных, выполняя их на сервере. Это предотвращает уязвимости и проблемы безопасности, связанные с обработкой данных на стороне клиента. В статье описывается история развития подходов к рендерингу веб-страниц, от клиентского рендеринга до генерации статических сайтов на сервере, и как Server Actions стали ответом на недостатки предыдущих подходов, упрощая процесс работы с данными в приложениях Next.js.
#nextjs #serveractions
Руководство по Domain-Driven Design (DDD): 📚
Domain-Driven Design (DDD) - это подход к разработке программного обеспечения, который ставит в центр внимания бизнес-логику и сложные бизнес-процессы. В этом руководстве автор объясняет, как применять DDD для создания масштабируемых и высокопроизводительных систем. Статья представляет из себя отличный справочник терминологии используемой в DDD и то, для чего каждый термин можно или нужно использовать.
#ddd #architecture
Начало работы с веб-производительностью 🚀
Статья посвящена важности веб-производительности и описывает, как улучшение скорости загрузки сайта может сделать его более доступным и приятным для пользователей, а также увеличить количество просмотров, репостов или продаж. Автор детально разбирает сложности веб-производительности, предлагая читателям понимание терминологии, метрик, инструментов и дает десять основных советов по улучшению производительности веб-сайтов.
#webperformance #optimization
Бенчмаркинг, профилирование и оптимизация JavaScript-библиотек 📈
Подробное исследование оптимизации JavaScript-библиотеки для локализации, включая бенчмаркинг, профилирование и оптимизацию. Автор делится личным опытом уменьшения размера библиотеки и увеличения её производительности, используя современные веб-API и оптимизируя код. Это путешествие через различные подходы к оптимизации предлагает ценные уроки и техники, которые могут быть применены к другим проектам.
#javanoscript #webperformance #optimization
Отправка UI через API 📲
В статье рассказывается о новом подходе к разработке пользовательских интерфейсов - отправке UI через API, также известном как серверный UI. Этот подход предлагает новый уровень динамичности и гибкости, который меняет традиционные парадигмы разработки UI. Серверные UI уже используются некоторыми из крупнейших компаний, таких как Instagram, Lyft и Airbnb.
#ui #api #serverdriven
CSS Grid - это мощный инструмент для создания сложных макетов в CSS. В этом руководстве автор делится своими открытиями и опытом работы с CSS Grid. Наверно, лучшее руководство, когда начинаешь изучать гриды.
#css #grid
Объяснение функции кэширования React 💾
React вводит новую функцию кэширования, которая позволяет избежать повторного вычисления результатов при передаче одних и тех же аргументов функции. Это руководство объясняет, как работает эта функция и как ее можно использовать для оптимизации производительности ваших приложений на React. И дело не только в запросах через fetch.
#react #cache
Погружение в Server Actions в Next.js 14 🚀
Статья на LogRocket блоге разбирает нововведение в Next.js 14 - Server Actions, позволяющее разгрузить клиентскую часть от задач по получению и мутации данных, выполняя их на сервере. Это предотвращает уязвимости и проблемы безопасности, связанные с обработкой данных на стороне клиента. В статье описывается история развития подходов к рендерингу веб-страниц, от клиентского рендеринга до генерации статических сайтов на сервере, и как Server Actions стали ответом на недостатки предыдущих подходов, упрощая процесс работы с данными в приложениях Next.js.
#nextjs #serveractions
Руководство по Domain-Driven Design (DDD): 📚
Domain-Driven Design (DDD) - это подход к разработке программного обеспечения, который ставит в центр внимания бизнес-логику и сложные бизнес-процессы. В этом руководстве автор объясняет, как применять DDD для создания масштабируемых и высокопроизводительных систем. Статья представляет из себя отличный справочник терминологии используемой в DDD и то, для чего каждый термин можно или нужно использовать.
#ddd #architecture
Начало работы с веб-производительностью 🚀
Статья посвящена важности веб-производительности и описывает, как улучшение скорости загрузки сайта может сделать его более доступным и приятным для пользователей, а также увеличить количество просмотров, репостов или продаж. Автор детально разбирает сложности веб-производительности, предлагая читателям понимание терминологии, метрик, инструментов и дает десять основных советов по улучшению производительности веб-сайтов.
#webperformance #optimization
Бенчмаркинг, профилирование и оптимизация JavaScript-библиотек 📈
Подробное исследование оптимизации JavaScript-библиотеки для локализации, включая бенчмаркинг, профилирование и оптимизацию. Автор делится личным опытом уменьшения размера библиотеки и увеличения её производительности, используя современные веб-API и оптимизируя код. Это путешествие через различные подходы к оптимизации предлагает ценные уроки и техники, которые могут быть применены к другим проектам.
#javanoscript #webperformance #optimization
Отправка UI через API 📲
В статье рассказывается о новом подходе к разработке пользовательских интерфейсов - отправке UI через API, также известном как серверный UI. Этот подход предлагает новый уровень динамичности и гибкости, который меняет традиционные парадигмы разработки UI. Серверные UI уже используются некоторыми из крупнейших компаний, таких как Instagram, Lyft и Airbnb.
#ui #api #serverdriven
👍3🔥2
#all_about_rsc #rsc #react #nextjs
Про внутренности серверных компонентов:
1. Знаете, я тоже сам своего рода стример: SSR и Server Components | Антон Петров | FrontendConf
2. Абсолютно новое мышление с Server Components | АйТи Синяк
3. Making Sense of React Server Components | Josh Comeau
4. How <Suspense /> and Components Streaming works in Next.js | Denis Gonchar
5. Deconstructing React | Tejas Kumar
6. Simplifying Server Components | Mark Dalgleish
Про создание серверных компонентов с нуля:
1. React Server Components, without a framework? | Timothée Pillard
2. RSC From Scratch. Part 1: Server Components | Dan Abramov
3. React from Another Dimension | Dan Abramov | RemixConf
4. React Server Components: A Deep Dive | Tejas Kumar | Conf42 JavaScript 2023
5. Exploring React Server Component Fundamentals | Daishi Kato | React Day Berlin 2023
6. React server components from scratch! | Ben Holmes
7. Rust Server Components | Antonio Pitasi
Про ментальную модель серверных компонентов:
1. Grok React Server Component by Quizzes | Herrington Darkholme
2. The Two Reacts | Dan Abramov
3. The Server Component Treatment | Dev Agrawal
4. When To Fetch: Remixing React Router | Ryan Florence
5. Data Flow in Remix | Jim Nielsen
6. Why do Client Components get SSR'd to HTML? | Dan Abramov
7. Understanding React Server Components | Alice Alexandra Moore
8. URL state is underrated | Lee Robinson
9. You Might Not Need React Query | TkDodo's blog
Про критику Next.js и его реализацию серверных компонентов:
1. Next.js 13 is not ready for production | Sanket Berde
2. Next.js, just why? | Pilcrow
3. Is React Having An Angular.js Moment? | François Zaninotto
4. My take on the current React & Server Components controversy | Lenz Weber-Tronic
5. Why I Won't Use Next.js | Kent C. Dodds
6. Why I'm Using Next.js | Lee Robinson
Про внутренности серверных компонентов:
1. Знаете, я тоже сам своего рода стример: SSR и Server Components | Антон Петров | FrontendConf
2. Абсолютно новое мышление с Server Components | АйТи Синяк
3. Making Sense of React Server Components | Josh Comeau
4. How <Suspense /> and Components Streaming works in Next.js | Denis Gonchar
5. Deconstructing React | Tejas Kumar
6. Simplifying Server Components | Mark Dalgleish
Про создание серверных компонентов с нуля:
1. React Server Components, without a framework? | Timothée Pillard
2. RSC From Scratch. Part 1: Server Components | Dan Abramov
3. React from Another Dimension | Dan Abramov | RemixConf
4. React Server Components: A Deep Dive | Tejas Kumar | Conf42 JavaScript 2023
5. Exploring React Server Component Fundamentals | Daishi Kato | React Day Berlin 2023
6. React server components from scratch! | Ben Holmes
7. Rust Server Components | Antonio Pitasi
Про ментальную модель серверных компонентов:
1. Grok React Server Component by Quizzes | Herrington Darkholme
2. The Two Reacts | Dan Abramov
3. The Server Component Treatment | Dev Agrawal
4. When To Fetch: Remixing React Router | Ryan Florence
5. Data Flow in Remix | Jim Nielsen
6. Why do Client Components get SSR'd to HTML? | Dan Abramov
7. Understanding React Server Components | Alice Alexandra Moore
8. URL state is underrated | Lee Robinson
9. You Might Not Need React Query | TkDodo's blog
Про критику Next.js и его реализацию серверных компонентов:
1. Next.js 13 is not ready for production | Sanket Berde
2. Next.js, just why? | Pilcrow
3. Is React Having An Angular.js Moment? | François Zaninotto
4. My take on the current React & Server Components controversy | Lenz Weber-Tronic
5. Why I Won't Use Next.js | Kent C. Dodds
6. Why I'm Using Next.js | Lee Robinson
🔥5👍3