Обновить
512K+

Веб-разработка *

Делаем веб лучше

384,55
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Vite, SVG и карьерные свичи: рассказываем, как прошел митап #DevTalks о фронтенде

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели1.9K

Всем привет! На связи Spectr.

В феврале мы провели митап #DevTalks, посвященный фронтенду, и сейчас хотим подробно о нем рассказать: поделимся докладами спикеров, материалами выступлений, отзывами участников и немного расскажем о внутренней кухне организации таких ивентов. 

Читать далее

Работаем с таблицами с помощью React Table

Уровень сложностиСложный
Время на прочтение24 мин
Охват и читатели60K


Привет, друзья!


В этом туториале я покажу вам несколько полезных приемов по работе с таблицами с помощью React Table.


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


Мы последовательно реализуем 5 вариантов таблицы:


  • с возможностью сортировки строк;
  • с возможностью фильтрации строк;
  • с пагинацией;
  • с возможностью выбора строк;
  • комплексную.

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


Предполагается, что вы имеете некоторый опыт работы с React и TypeScript.


Для тех, кого интересует только код, вот ссылка на соответствующий репозиторий.


Интересно? Тогда прошу под кат.

Читать дальше →

Как кастомизировать стандартные страницы ошибок

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели9.6K

Данная статья описывает утилиту для генерации статических страниц ошибок, используемых в качестве замены стандартным страницам. В статье подробно описаны возможности утилиты, среди которых шаблонизация, стилизация, локализация, генерация сниппетов для настройки сервера. Проект является Open Source, и открыт для новых идей и запросов.

Читать далее

Чем отличаются и на что влияют типы CDN: P2P, Push и Pull

Время на прочтение3 мин
Охват и читатели4.3K

CDN (Content Delivery Network) — распределенная сетевая архитектура, созданная для ускорения доставки контента пользователям. CDN влияет на скорость загрузки любого контента сайтов и приложений, который видит пользователь: аудио, видео, стриминг, изображения, тексты, графика.

Сеть доставки контента делится на три типа: P2P, Push и Pull. В материале разбираемся в отличиях и особенностях разных CDN.

Читать далее

Облачный Bitrix: оно того стоит

Уровень сложностиПростой
Время на прочтение13 мин
Охват и читатели5.2K

Доброго времени суток.

При работе с Bitrix‑инфраструктурой в определенный момент вы можете столкнуться с проблемой увеличения времени открытия различных страниц на вашей площадке (сайте), медленной отдачей заказов или замедленной выгрузкой новых товаров на площадку. Чаше всего это связанно с ростом проекта и повышением потока клиентов, из‑за чего сервера могут не справляться. И здесь мы сталкиваемся с необходимостью расширения Bitrix‑инфраструктуры — спасти ситуацию может переезд на новые сервера, а вместе с тем и улучшение пропускной способности площадки.

Читать далее

Почему Banditypes — самая маленькая TS-библиотека для валидации схем

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели6.5K

Я выпустил библиотеку banditypes — самый маленький валидатор схем для TS / JS. Удивительно, но базовый функционал валидации с приятным API можно упихнуть в 400 байт, если сконцентрироваться на размере и добавить пару грязных хаков. В этой статье расскажу, как добился такого результата.

Читать далее

Плохие практики разработки, которые до сих пор встречаю в стартапах

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели55K

Привет, я Виктор. Двенадцать лет назад я пришел в веб-студию в Самаре. Так начался мой путь в разработке. У нас не было гита, CI/CD, тестовых стендов и много чего еще. Я видел, как это мешало развитию команды и бизнеса. Приходилось на ощупь собирать грабли, открывать для себя хорошие практики и внедрять их. С тех пор я поработал старшим разработчиком в российском финансовом холдинге и немецком b2b-стартапе. Был тимлидом в фудтех-проекте, СTO в образовательных стартапах для российского и латиноамериканского рынка — и почти везде поначалу натыкался на похожие проблемы. Недавно переехал в Израиль, стал консультировать стартап. И что бы вы думали…

Читать далее 👉

Стрелочные функции и что о них стоит помнить

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели31K

Стрелочные функции давно стали привычной частью JavaScript, но за коротким синтаксисом скрывается несколько важных отличий от обычных функций.

В статье разбираем, как у них работает this, почему они удобны в callback«ах, где могут привести к ошибкам и почему не всегда подходят для методов объектов и классов.»

Читать далее

Работа с i18n — автоматизация Google Translate и другие полезные советы

Уровень сложностиСредний
Время на прочтение2 мин
Охват и читатели24K

NPM-пакет для интернационализации i18n используется на фронтэнде для создания мультиязычных вебсайтов очень часто. Перевод текста в нем содержится обычно в json или в js файлах, и требует дальнейшей обработки, чтобы с ним с комфортом могли работать контент-редакторы. В статье описывается как максимально упростить и сделать удобным хранение и внесение изменений в перевод.

Читать далее

Создание «Google Sheets» через Websockets на Node.js

Время на прочтение10 мин
Охват и читатели8K

Введение

Всем привет! Меня зовут Герман Панов и в этой статье мы разработаем табличный редактор - аналог Google Sheets (в упрощенном виде), работающий на основе вебсокетов, чтобы познакомиться со способами применения этой технологии в браузерах.

Поскольку цель - ознакомление, код будет не очень «чистым», но для базового примера этого будет достаточно. В качестве серверной платформы будем использовать Node.js, также потребуется пакет ws, предоставляющий API для работы с вебсокетами на сервере.

Читать далее

Градиентные тени на CSS

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели14K

Мне часто задают вопрос: Возможно ли создать тени из градиентов, а не из сплошных цветов? В СSS не существует конкретного свойства для этого (поверьте мне, я проверял), а в любом посте по этой теме содержится только множество хитростей для того, чтобы получить что-то похожее на градиент. В этой статье я расскажу вам о некоторых из них.


Но для начала… ещё одна статья о градиентных тенях? Серьёзно?

Читать дальше →

Angular — API композиции директив

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели8.1K

Поговорим о новом (уже старом) способе управления директивами в Angular

Читать далее

Готовим версионирование API в PHP-фреймворках: разбор способов и работа с организацией кода

Уровень сложностиПростой
Время на прочтение13 мин
Охват и читатели11K

Привет! Меня зовут Олег Мифле. В Skyeng работаю над проектом Skypro. В IT я уже больше десяти лет, семь из которых пишу на PHP. За плечами десятки разных проектов: e-commerce, финтех, CRM, а недавно добавился и EdTech. Были и классические фуллстек-проекты, и проекты, где фронтенд и бэкенд «живут» отдельно и коммуницируют друг с другом по API. Боль от отсутствия версионирования я испытал на себе. Хочу поделиться, как избежать проблем, как всё структурировать и организовать.

Обсудим:

• Что такое API.

• Зачем версионировать API и нужно ли вообще.

• Какие способы версионирования существуют и как его организовать — и с точки зрения подходов, и с точки зрения кода.

• Разберёмся, когда избавляться от старой версии или как жить с легаси до конца существования проекта.

Читать далее

Ближайшие события

Зачем кодить, если можно не кодить? Часть 2: Google Sheets и Notion

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели6.2K

Всем привет, и с вами снова Данил Губанов — backend-разработчик в Точке. В этом материале я расскажу об инструментах, с которыми можно быстро сделать лендинг с формами, создать таблицу и даже разработать приложение для психологической помощи (и всё это без кода). Речь пойдет про Notion и Google Sheets. Поехали!

Поехали

Как изучать язык Python для веб-разработки в 2023 году. Общие ориентиры

Уровень сложностиПростой
Время на прочтение17 мин
Охват и читатели50K

Привет, Хабр! Меня зовут Тимофей, я Python Engineer с опытом в 3+ года.

Я бы не назвал данную статью полноценным роадмэпом в том понимании, в котором это слово обычно используют. В статье нет сроков изучения, отсутствует подробный план, затрагивающей все темы и подтемы. Да и зачем нужен еще один роадмэп «под копирку», когда в сети и так хватает качественных предложений.

Скорее, я хотел бы составить абстрактный план обучения, который сможет задать общий ориентир, а также будет коррелировать с роадмэпом вроде roadmap.sh. Кроме этого, я смогу дать несколько полезных советов из своего опыта, а также составлю списки полезных ресурсов для изучения языка, сопутствующих инструментов и технологий, которые в свое время помогли или же помогают мне самому.

Читать дальше →

Хранение токена доступа в сервис-воркере

Уровень сложностиСредний
Время на прочтение14 мин
Охват и читатели9.8K


Привет, друзья!


На днях прочитал эту интересную статью, посвященную различным вариантам хранения токена доступа (access token) на клиенте. Мое внимание привлек вариант с использованием сервис-воркера (service worker) (см. "Подход 4. Использование service worker"), поскольку я даже не задумывался о таком способе применения этого интерфейса.


СВ — это посредник между клиентом и сервером (своего рода прокси-сервер), который позволяет перехватывать запросы и ответы и модифицировать их тем или иным образом. Он запускается в отдельном контексте, работает в отдельном потоке и не имеет доступа к DOM. Клиент также не имеет доступа к СВ и хранимым в нем данным. Как правило, СВ используется для обеспечения работы приложения в режиме офлайн посредством кэширования критически важных для работы приложения ресурсов.


В этой статье я покажу, как реализовать простой сервис аутентификации на основе JSONWebToken и HTTP Cookie с хранением токена доступа в сервис-воркере.


Для тех, кого интересует только код, вот ссылка на соответствующий репозиторий.


Интересно? Тогда прошу под кат.

Читать дальше →

Зачем нужен личный сайт в 2023 году

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели40K

В конце 90-х почти каждый житель Сети стремился завести личный сайт или хотя бы страничку на бесплатном хостинге. Где ещё выложить резюме, опубликовать фотографии, новые статьи? Какой URL напечатать на визитке? Проводились даже всероссийские конкурсы на лучшую домашнюю страницу.

Потом выросли соцсети типа ЖЖ, «Одноклассников», «ВКонтакте» — и личные странички сошли на нет. Кто теперь вспомнит о тех бесплатных хостингах, которые рекламировались на каждом углу?

Но сейчас история делает новый виток — и персональные сайты опять входят в моду, только на современных технологиях.
Читать дальше →

Как сделать SILO-структуру сайта

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели8.2K

Сделать сайт удобным и понятным для посетителей, а также оптимизированным для поисковых систем — задача каждого SEO‑специалиста. Одним из ключевых элементов, влияющих на эти факторы, является структура сайта. Сегодня мы поговорим о том, как сделать структуру сайта по SILO методу, чтобы улучшить его позиции в поисковых системах и увеличить трафик.

Читать далее

Что нам несет Python 3.12

Время на прочтение3 мин
Охват и читатели35K

Переписали виртуальную машину на новый DSL

И теперь ее гораздо проще менять, оптимизировать и проводить эксперименты.

В качестве примера, можно посмотреть на попытку добавления register-based интерпретатора. Другой пример, что часто два опкода идут вместе и выполняются последовательно большую часть времени. Например, LOAD_CONST и RETURN_VALUE. Для оптимизации, можно добавить новый опкод этой операции. Вместо двух действий он будет выполнять одно. На частых задачах получится неплохая прибавка к производительности. 

Еще один пример: опкод CALL_FUNCTION. Сам по себе довольно медленный. У него есть целая семья оптимизаций, например специализация CALL_FUNCTION_ISINSTANCE, когда мы выкидываем промежуточный слой и сразу вызываем C-реализацию isinstance. Минус в том, что Python богатый и динамически типизированный язык. В runtime может что-то поменяться и мы получим замедление — придется сваливаться обратно на общий путь опкода CALL_FUNCTION.

Читать далее

Внедрение low-code платформы — стратегия лоскутного покрытия

Уровень сложностиПростой
Время на прочтение2 мин
Охват и читатели2.6K

Здравствуй, Хабр!

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

Читать далее