Все потоки
Поиск
Написать публикацию
Обновить
342.56

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

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

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

Важность мобильной оптимизации сайта

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

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

Итак, что мы вообще знаем о том, что такое оптимизация? Это процесс, при котором frontend-разработчик и web-дизайнер адаптируют верстку сайта под размеры и функционал других устройств, помимо компьютера. Делается это для того, чтобы интерфейс сайта, а также текст и визуальные элементы отображались и функционировали корректно и на смартфоне, и на планшете, и на других устройствах, отличных от компьютера. 

Читать далее

Особенности Effector, которые почему-то никто не обсуждает: опыт ВКонтакте спустя год использования

Уровень сложностиСредний
Время на прочтение31 мин
Количество просмотров17K

Upd: Поиском по "Upd" можно найти все корректировки, внесенные в статью после публикации в результате жаркой дискуссии в чате Effector.

Меня зовут Андрес, я руководитель команды разработки внутреннего UI-кита ВКонтакте. А это ещё одна статья про инструменты управления состоянием. Сегодня мы не будем изобретать ничего нового, а поговорим про библиотеку Effector.

TL;DR

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

В сети мало альтернативной информации про Effector, а действительно полезную трудно найти. Надеюсь, эта статья поможет немного исправить ситуацию.

(Внимание, под катом много картинок.)

Что там за особенности?

Как я сделал Notion 'у себя дома', есть фулл

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

Привет, хабровчане!

Давно не писал, потому что для меня Хабр изначально был DIY-тусовкой, в хорошем смысле этого слова, а у меня ничего DIYйного не было.

А сейчас вот появилось -- решил демонстрации ради запилить Notion из рельсов и шпалок.

К постановке вопроса зачем мы вернемся, как это принято тут и у всех айтишников -- в самом конце, а сейчас к конкретике и без воды.

И вот что из этого вышло

Настройка алиасов путей с помощью Node.js Subpath Imports в TypeScript проекте

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

Я попробовал новые Node.js Subpath Imports для алиасов путей в TypeScript проекте. Оказалось, всё не так просто!

Читать далее

Создание Discord бота для мониторинга цен на товары

Уровень сложностиСложный
Время на прочтение14 мин
Количество просмотров6.3K

Представьте себе ситуацию: вы внимательно следите за определённым продуктом на Яндекс.Маркете и хотите моментально получить уведомление, как только его цена изменится в желаемую сторону. Или, возможно, вы являетесь владельцем интернет-магазина и стремитесь постоянно отслеживать динамику цен конкурентов, чтобы оперативно реагировать и сохранять свою конкурентоспособность на рынке. В обоих этих случаях, а также во множестве других сценариев, Discord-бот для мониторинга цен станет вашим незаменимым цифровым помощником, работающим 24/7. В рамках этой подробной статьи мы детально разберём процесс создания такого многофункционального бота.

Читать далее

Красно-черные сигналы в node.js

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров4K

Что происходит, когда мы отправляем сигнал приложению на node.js? Когда вызываются обработчики? А где хранятся? Во всем этом мы разберемся в данной статье, начиная от пользовательского кода на javascript и до встречи с операционной системой.

Читать далее

Фиаско Фигмы или тёмная сторона последних апдейтов

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров12K

Этот пост в оригинале (eng) https://www.setproduct.com/blog/dark-side-of-figmas-updates

Глава 1: В какой‑то момент всё пошло не так

Смотря недавнюю конференцию CONFIG24, я не мог избавиться от неприятного зуда.

Чем сильнее зуд одолевал меня, тем больше приходило осознание – приоритеты Figma сместились с улучшения сервиса на увеличение прибыли.

Я неустанно задавал вопросы:

Что произошло с Figma, которую мы все так горячо любили?
Почему в приоритете деньги, а не список фич от пользователей, которые мы просим?
И если Фигма - ФСЁ, то что это сулит дизайн-инструментам в будущем?

Провал сделки с Adobe, похоже, стал переломным моментом.

Фокус Figma на создании функций с использованием искусственного интеллекта для увеличения количества пользователей - крутой поворот от первоначальной концепции сервиса.

Не подумайте, я не против использования искусственного интеллекта, но больш усилий, похоже, затрачивается  на что-то "модное", но не особо нужное.

Функция автоматического переименования слоев была изюминкой Figma, но ее недостаточно, чтобы компенсировать недостаток внимания к запросам пользователей.

Читать далее

Секрет внутри одного миллиона чекбоксов

Время на прочтение7 мин
Количество просмотров40K

Спустя несколько дней после начала разработки «одного миллиона чекбоксов» (One Million Checkboxes, см. новость на Хабре) я решил, что меня взламывают. Что это делает в моей базе данных?

Спустя несколько часов я уже лил слёзы гордости за талантливых подростков.

Но вернёмся к началу.

Что такое One Million Checkboxes?


26 июня 2024 года я запустил веб-сайт под названием One Million Checkboxes (OMCB). На нём был один миллион глобальных чекбоксов — нажатие на чекбокс мгновенно переключало его состояние для всех на сайте.


Вот как выглядел сайт через полчаса после запуска

Мои ожидания от этого сайта были крайне малы и совершенно ошибочны. Я думал, что сотни игроков будут нажимать тысячи чекбоксов, однако за две недели работы сайта пятьсот тысяч игроков нажали на флажки более 650 миллионов раз. Сайт попал в новости New York Times и Washington Post; он есть в Know Your Meme и Википедии. Это было безумное приключение.
Читать дальше →

ИИ как платформа

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

Новая предметная область

ИИ - тема хайповая. Часто мы рассуждаем о том, сможет ли ИИ заменить мясных программистов и если сможет, то когда именно. Есть два базовых полярных мнения и множество комбинаций между ними: на одном полюсе считают, что скоро нам всем кирдык и интеллектуальный труд доживает последние дни. На другом полюсе - скептически ухмыляются, и говорят, что никакой особенной угрозы нет: у ИИ нет и никогда не будет того, что есть у человеческих мозгов.

У многих из нас уже есть опыт общения с разными нейросетями, как позитивный так и не очень. И еще имеется, я бы сказал, некий "странный" опыт, отдельная категория, от которого больше вопросов чем ответов. Техно-гиганты анонсируют повсеместное внедрение и тотальную разумность будущих железяк. А мы, тем временем, удивляемся, каким-же, кхм... тупым и ленивым может быть этот всемогущий ИИ, если его попросить сделать что-то действительно полезное.

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

Читать далее

CMS за 0 рублей: как мы начали использовать Strapi

Время на прочтение16 мин
Количество просмотров24K

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

Читать далее

JavaScript: структуры данных и алгоритмы. Часть 4

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


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


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



Сегодня мы рассмотрим дерево отрезков, дерево Фенвика, а также граф (направленный и ненаправленный).


Код, представленный в этой и других статьях серии, можно найти в этом репозитории.


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

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

Telegram Боты на Aiogram 3.x: Доступ после подписки на каналы, получение Telegram ID и админка с рассылкой сообщений

Уровень сложностиСредний
Время на прочтение39 мин
Количество просмотров21K

В рамках цикла публикаций о разработке телеграм-ботов с использованием aiogram 3 я давно хотел осветить несколько ключевых тем: получение Telegram ID пользователей, групп и каналов, рассылка сообщений всем пользователям бота, вход в бота только по подписке на определенный канал или каналы, интеграция базы данных SQLite с помощью aiosqlite и деплой (удаленный запуск бота на сервере или хостинге). Сегодня мы закроем все эти вопросы.

Мы создадим бота с использованием вебхуков (о необходимости и способах их настройки я уже рассказывал в одной из предыдущих статей) и в конце статьи осуществим деплой на сервисе Amvera Cloud. Я выбрал этот сервис из-за бесплатного доменного имени с HTTPS-протоколом, которое автоматически выделяется и привязывается к созданному проекту, а также за простоту деплоя: достаточно загрузить файлы через GIT или внутренний интерфейс, сгенерировать простой файл с настройками прямо на сайте Amvera, и проект автоматически соберется и запустится.

Читать далее

Собираем данные из сотни микросервисов, или Как мы разобрали Ozon на кубики, а потом собрали заново

Уровень сложностиСредний
Время на прочтение21 мин
Количество просмотров22K

Всем привет! Меня зовут Саша, я руковожу группой разработки Composer Core в Ozon Tech. В этой статье я расскажу о том, как устроена пользовательская часть одного из ведущих российских маркетплейсов, в развитии которой на момент написания статьи участвуют сотни специалистов из десятков команд. При наличии такого количества людей разрабатывать новую функциональность, не рискуя сломать уже существующую, является достаточно сложной задачей.

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

Продукт, который мы разработали, вряд ли когда-нибудь станет open-source-проектом, так как он слишком зависит от специфики инфраструктуры Ozon Tech. Но основные принципы могут быть полезны при проектировании похожих систем.

Читать далее

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

Практическая реализация современной аутентификации на платформе .NET: OpenID Connect, шаблон BFF и SPA

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

Построение современной и надежной системы аутентификации — задача, которая требует тщательного подхода. В огромном количестве информации легко запутаться: многие материалы представлены в неструктурированном виде, а часть из них и вовсе описывает устаревшие или даже небезопасные в настоящее время методы и подходы. К тому же каноническое описание шаблона Backend-For-Frontend (BFF) довольно абстрактно и вызывает сложности в практической реализации у многих разработчиков.

Это подтолкнуло меня создать подробное и максимально доступное руководство, посвященное реализации современного подхода к аутентификации на платформе .NET с использованием OpenID Connect, архитектурного шаблона Backend-For-Frontend (BFF) и распределению ответственности между одностраничным приложением (SPA) на React и серверным API.

В статье рассматриваются ключевые аспекты настройки аутентификации, такие как использование потока Authorization Code с Proof Key for Code Exchange (PKCE) и интеграция его с одностраничными приложениями (SPA) на React. Приведены примеры на базе .NET и React, включающие пошаговые инструкции по настройке клиента OpenID Connect и BFF, а также демонстрируется использование библиотеки YARP для проксирования запросов к внешним API. В результате выполнения инструкций вы самостоятельно создадите полнофункциональное приложение с безопасной аутентификацией и надежным взаимодействием с внешними сервисами и разберетесь в его внутреннем устройстве и взаимодействии с другими сервисами.

Читать далее

Автоматизация Code Review с помощью LLM

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

Как  разработчики большой мультибрендовой торговой площадки (Faire) внедрили автоматизированные c LLM  Code Review (статья - мой перевод для нашего ТГ канала посвященного разработке софта при помощи LLM). 

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

Похоже, что LLM хорошо подходят для выполнения таких общих задач код-ревью. Имея достаточно информации о pull request: метаданные, diff, логи сборки и  отчеты о покрытии тестами, можно эффективно настроить LLM для добавления полезной информации, выявления багов или потенциально опасных изменений и даже автоматического исправления простых ошибок.

Читать далее

SPA приложение, без JS фреймворков и потери SEO в Bitrix

Уровень сложностиСложный
Время на прочтение12 мин
Количество просмотров3.6K

Создадим прототип SPA в Bitrix без использования популярных JS фреймворков и библиотек, все будет сделано средставами Bitrix.

И самое главное без потери серверного рендеринга и SEO страниц.

Погнали

React и жизнь после сборки

Уровень сложностиСредний
Время на прочтение27 мин
Количество просмотров3.6K

Бывает что на руках есть лишь «бинарная» сборка сайта на модном фреймворке вроде Angular или React, в которой «срочно надо что‑то поправить». А исходного кода нет. Есть лишь вы, «бандл» с обфрусцированным JavaScript‑кодом внутри и горящие сроки. Рассказываю что с этим можно cделать кроме увольнения.

Оживить

Работа с бэклогом UX-исследователя

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

К работе с бэклогом можно подойти по-разному. При выборе формата важно учитывать особенности конкретной команды: количество ролей, степень неопределенности в прогнозировании будущей нагрузки, количество и сроки задач.

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

Читать далее

Как развернуть сайт на VDS

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

Представим, что вы дописали свой проект или закончили первые задачи на проекте и настала пора публиковать работу в сеть (организовать dev/test площадки или «выкатить в прод»).

Расскажем, как это делаем мы.

«Где разворачиваться?» — один из первых вопросов, который может у вас возникнуть.

Мы ответим, что самое универсальное, простое и правильное решение — это VDS (виртуальный выделенный сервер, который хостинг-провайдер предоставляет вам в аренду). Это почти как снять квартиру, в которой будут жить ваши веб-проекты, где лояльный арендатор позволяет делать все, что вам угодно, и не лезет, пока вы платите и не делаете ничего нелегального.

Читать далее

Гладкое бритье: Razor Pages для разработчиков веб-форм

Время на прочтение15 мин
Количество просмотров4.7K

Если вы, будучи разработчиком ASP.NET Web Forms, сомневаетесь в переносимости своих навыков на более современную платформу .NET (например, .NET Core или .NET 6), то спешу вас успокоить — все не так уж и плохо. Хоть Microsoft и не планирует переносить Web Forms, приобретенные вами навыки вполне применимы в аналогичном фреймворке под названием Razor Pages. Да, вам все равно придется адаптировать свое мышление к этой новой платформе, но если вы не пожалеете на это время, ты вы откроете для себя такой же мощный и простой в использовании инструмент для создания веб-приложений.

Читать далее

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