Обновить
418.9

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

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

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

Лонгрид о JavaScript

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

JavaScript — ужасный язык программирования. По сравнению с другими распространёнными языками он выглядит генетическим уродом. Дело даже не в отсутствии многопоточности, или статической типизации, или того, что node_modules для простого проекта занимают сотни мегабайт, а в том, что в JavaScript столько стилей и подходов, что семь человек одну и ту же несложную задачу могут написать на нём семью различными способами. Каждый из них с трудом будет понимать, что написал другой, и тихо материться. Причем, так напишут и новички, и опытные программисты, которые просто привыкли писать по‑своему или захотели выпендриться.

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

Читать далее

Как мы собрали более 1К регистраций креативных IT-умов на наш первый хакатон

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

1007 регистраций, 247 команд, 68 готовых решений, 15 финалистов, 4 призера и 2 победителя. На кону - 1 миллион рублей. Так выглядит в цифрах Kokoc Hackathon-2023 от команды Kokoc Group. Для компании это первый опыт организации такого масштабного онлайн-конкурса для web- и mobile-разработчиков, product- и project-менеджеров, аналитиков, дизайнеров, маркетологов. Несмотря на это, результат превзошел ожидания. О внутренней кухне подготовки к хакатону откровенно расскажу я, Алёна Попова, IT HR BP Kokoc Group.

Читать далее

Представляем Firebolt: Продуктивный React фреймворк

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

Создание веб-приложений должно быть простым...

К сожалению, современная веб-разработка постепенно становится все более сложной и запутанной. Веб всегда был просто вебом, так почему же он не стал проще? Почему мы не становимся более продуктивными?

Сегодня мы рады публично представить Firebolt: новый вид фреймворка react для создания веб приложений. В Firebolt собрано все, чему мы научились за последние несколько лет, и сведено в крошечный, молниеносно быстрый фреймворк, созданный для того, чтобы вы работали продуктивно и приносили пользу.

Читать далее

HTML и CSS ошибки, влияющие на доступность. Мой опыт и моего незрячего знакомого Ильи. Часть 7

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

Хабр, я снова пришёл к вам с практическими советами про доступность вместе с Ильёй. Мы показываем, как HTML и CSS могут улучшить или ухудшить её. Напоминаю, что Илья — мой незрячий знакомый, который помогает мне найти наши косяки в вёрстке.


Сегодня мы рассмотрим следующие аспекты:

  • к чему приводят распространённые ошибки с элементом <label>;
  • лучший лайфхак с inputmode="numeric" улучшающий мою жизнь;
  • как пользователи скринридера понимают, что модальное окно открыто.

Давайте начнём!

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

Самый простой гайд по созданию бота для анализа сообщений в Telegram

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

Есть Telegram-каналы, которые отслеживают определенные события в мире. А мы следим за их сообщениями, чтобы не упустить ничего важного. Если собирать и анализировать данные вручную, процесс будет отнимать много времени и требовать высокой концентрации от человека. Чтобы решить эту проблему, наш партнер и фронтенд-разработчик Владилен Минин создал Telegram-бота, который автоматизирует процесс и выдает резюме по собранной информации.

В этой статье рассказываем, как с помощью нейросети создать бота, который собирает и обрабатывает информацию из сообщений, и задеплоить его на облачный сервер.
Читать дальше →

Как я выиграл Хакатон, едва не потеряв рассудок

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

Несколько недель назад мы с моим другом Беном выиграли JumboHack, Хакатон, проводившийся в Университете Тафтса. Нашим проектом было приложение, которое в стиле Spotify Wrapped генерирует отчёт по питанию в университетских столовых среди студентов на основе данных из раздела «Meal Plan» портала оплаты услуг. Благодаря грамотному продвижению проекта Беном, мы смогли буквально за пару дней привлечь к использованию нашего приложения сотни студентов. В итоге мы победили в общей номинации, а также в номинации «самый завершённый проект» и стали абсолютными победителями конкурса.

Живое демо нашего проекта доступно здесь.
Читать дальше →

PHP и Laravel дайджест новостей за февраль 2024 года

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

Всем привет! Краткий обзор новостей из мира PHP и Laravel за январь 2024 года от Сергея Пантелеева и Данила Щуцкого (CutCode).

Читать далее

Web3: Фантастические SDAPPS и где они обитают

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

Сейчас разработка Web3 проектов стала уже обычным делом и выпустить свой токен может каждый школьник (даже отстающий, если спросит у ChatGPT, где какую кнопку нажать). Останется лишь написать DAPP (Decentralized application), добавить к нему пользовательский интерфейс (UI), разместить его на сервере и вот Web3 проект готов.

Но подождите! Мы говорим о «разместить на сервере»? Разве проект, размещенный на одном сервере, может называться «Decentralized»? Или надо разместить его на нескольких серверах, чтобы он стал «Decentralized»?

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

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

Но так ли это на самом деле? Кажется, мы сильно лукавим, когда утверждаем, что UI, расположенный на нашем сервере, никак не влияет на пользовательский опыт.

Читать далее

INP: что это и зачем с этим работать

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

С 12 марта 2024 года показатель FID (First Input Delay) из семейства Core Web Vitals заменён новой метрикой — INP (Interaction to Next Paint), которая отражает скорость отклика сайтов. Необходимость такой замены, среди прочего, подтверждают данные об использовании Chrome: согласно им, 90% времени пользователь проводит на странице после её загрузки. Таким образом, важно тщательно измерять скорость реагирования сайта на протяжении всего жизненного цикла страницы. В этом и помогает метрика INP.

Меня зовут Коновалов Илья. Я Performance Engineer и Front-end Developer в медицинской компании «СберЗдоровье». В этой статье я расскажу, что такое INP и как работать с новой метрикой.

Читать далее

Воплощённые типы

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

Всем привет!

Хочу представить вам подход к определению типов, позволяющий сделать ваш код чище и понятнее. Я называю это "Воплощённые типы"("Embodied types").

Воплощённый тип - тип, для которого определена переменная с одинаковым именем и в которой содержится объект с утилитами для этого типа.

Читать далее

Путь развития Frontend разработчика (Вторая часть)

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

Это вторая часть roadmap frontend разработчика, Если вы не читали первую часть, то настоятельно рекомендую ознакомится, Первая часть. В этой статье я продолжу вам рассказывать про мое представление современной карты развития frontend разработчика.

Читать далее

Система уведомлений в ресурсах Laravel

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

В предыдущей статье по работе с API ресурсами в Laravel была затронута тема изменения бизнес-потребностей в области формирования внешнего вида объекта ответа на запрос к API приложения.

В этой мы пойдём дальше и введём новую бизнес-потребность под названием "нотификации". Их суть в том, чтобы вместе с ответом на запрос добавлять информацию о каких-либо действиях.

Читать далее

О вреде Test Driven Development

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

Artem Zakharchenko, автор библиотеки для тестирования MSW с 15К звезд на GitHub, поделился мыслями о Test Driven Development.

TDD - это неправильная практика. Она всегда была неправильной. Она неправильна по определению. Ее главная заслуга - поощрение тестирования, но на этом все и заканчивается.

TDD подразумевает написание тестов до написания кода. Так что же в этом неправильного? Вы пишете тесты, чтобы описать намерения, стоящие за системой - как вы ожидаете, что она будет себя вести. TDD в значительной степени подразумевает, что вы должны знать, как ведет себя система, еще до ее реализации. Вы должны знать, что вы делаете.

В большинстве случаев вы этого не знаете. Все разработчики, которых я знаю, не знают этого заранее. Я не знаю этого заранее. На самом деле, я могу потратить несколько дней на эксперименты, написание MVP, пока не начну немного понимать, какими должны быть части моей системы и чего я от них ожидаю.

Читать далее

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

Пора переходить на микрофронтенд? Опыт «Инферит Клаудмастер»

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

Приветствую всех новичков и гуру фронтенда, а также всех, кто работает с интерфейсами. Я Никита Борцов, создаю красоту на фронте первой в России FinOps-платформы для управления облачными затратами “Инферит Клаудмастер”.

В этой статье вы узнаете о:

факторах, сформировавших тренд на уход фронтенд-разработки от монолита к микрофронтенду,
процессах со стороны команды разработки при переходе на микрофронтенд,
кейсе платформы “Инферит Кладумастер”: почему для нашей команды микрофронтенд с плагином Module Federation стал полезным решением,
признаках того, что пора переходить на микрофронтенд.

Читать далее

Сначала войдите через Телеграм

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

Как-то мне понадобилось ограничить доступ к статическому сайту. Я написал сервер, который просит пользователей войти через Телеграм и пропускает только людей из белого списка. Ничего сложного, но вдруг кому-то понадобится.

Читать далее

Кеширование next.js. Дар или проклятие

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

В 13 версии команда next.js представила новый подход к проектированию приложения - так называемый App Router. В 14 версии его сделали стабильным и основным для новых приложений.

App Router значительно расширяет функционал next.js - частичный пререндеринг, шаблоны, параллельные и перехватываемые роуты, серверные компоненты и многое другое. Однако, даже несмотря на все эти улучшения - далеко не все решили перейти на App Router. И на это есть свои причины.

О преимуществах и проблемах нового роутера я уже рассказывал в предыдущей статье. Дальше же речь пойдёт не о новых абстракциях или их особенностях. На самом деле ключевым и самым спорным изменением является именно кеширование. В этой статье будет рассказано что, зачем и как кеширует самый популярный фронтенд фреймворк - Next.js.

Читать далее

Готовимся к вопросам по вёрстке на интервью Frontend-разработчика: свойство display

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


За свою карьеру у меня было достаточно много собеседований. Конечно, одной из основных тем вопросов была вёрстка. Немного похвалюсь. Не было вопроса, на который я не ответил.


Недавно у меня появилось желание снова проверить себя и показать сообществу свои ответы на самые популярные вопросы по вёрстке. Может же быть так, что мои ответы были неполными или некорректными. Если это так, то я научусь новому. А если всё хорошо, то они помогут другим людям в подготовке к собеседованию. Кажется, это в любом случае будет полезно.


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


Сегодня я дам ответ на следующий вопрос: «Зачем нужно использовать свойство display

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

Валидируйте это немедленно

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

Как говорилось в одном сериале: “Все врут”. Поэтому валидация данных является контрактом – этаким камнем в фундаменте бизнес-логики программы.

def handler_create_user(r: Request):
input_data = r.post()
name, email = input_data. get('name'), input_data.get('email')
if not name or not email:
raise HTTPBadRequest('name & email must have values')
return User.create(name=name, email=email, password=uuid4())

Узнали? Не согласны? Если на оба вопроса ответили “да” или просто хотите почитать размышления про валидацию в целом (и в Python в частности), то добро пожаловать под кат.

Читать далее

JS. Валидация данных. Пишем свой YUP

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

Создаем TypeScript библиотеку для валидации данных. Поэтапно добавляем основной функционал и типизацию. Делаем основую упор на простоту кода и проиводительность. Как протитип используем yup и zod.

Читать далее

Изучаем WebRTC на практике: Лучшие инструменты и демо

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

В этой статье(или дайджесте) я поделюсь ключевыми инструментами, демонстрационными приложениями и открытыми проектами, незаменимыми для практического понимания WebRTC. Здесь не будет туториалов или подробных объяснений о той или иной части WebRTC, а скорее некий дайджест ресурсов, которые помогут лучше разобраться в теме. Если вы работаете с этой технологией уже какое-то время, вряд ли вы найдете что-то новое для себя.

Читать далее

Вклад авторов