Обновить
433.78

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Читать далее

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

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

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

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

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

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


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


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

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

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

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

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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


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


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



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


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


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

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

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

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

Построение современной и надежной системы аутентификации — задача, которая требует тщательного подхода. В огромном количестве информации легко запутаться: многие материалы представлены в неструктурированном виде, а часть из них и вовсе описывает устаревшие или даже небезопасные в настоящее время методы и подходы. К тому же каноническое описание шаблона 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 мин
Охват и читатели5.9K

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

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

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

Читать далее

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

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

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

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

Погнали

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

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

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

Оживить

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

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

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

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

Читать далее

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

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

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

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

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

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

Читать далее

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

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

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

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

Читать далее

Frontend. MVA архитектура

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

Здравствуйте.

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

Вы, возможно, узнаете в данном подходе Flux или MVI, но я считаю, что это что-то другое. Почему - вы узнаете дальше.

На самом деле не важно как это всё называется, придумал ли я что-то новое или нет.

Я пришел к определенному архитектурному подходу, решил поискать нечто подобное и точно такого же не нашел. Решил поделиться, потому что считаю его очень удобным и простым.

Эта статья является расширением/продолжением прошлой статьи, которую, как мне кажется, многие не поняли. Если вы дочитаете эту статью до конца и заинтересуетесь - советую прочесть прошлую вместе с комментариями для лучшего понимания.

Читать далее

Неизвестно полезный CSS. Часть 4

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


Привет, Хабр. Я продолжаю рассказывать про неизвестные широкому кругу разработчиков CSS фишки. Я отбираю их так, чтобы они были полезны в разного рода проектах.


Неважно, верстаете ли вы сайт для малого бизнеса или создаёте супермодное React приложение. Они поддерживаются большинством браузеров. Отдельно отмечу, что я не считаю IE11 современным браузером. По этой причине я не учитывал его.


Сегодня мы рассмотрим:

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

Больше не буду затягивать. Давайте посмотрим, что я вам подготовил.

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

Как объединить фронтенд с бэкендом и не сломать веб-приложение

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

Привет! Меня зовут Артём Шумейко, я Python-разработчик и создатель одноименного канала на YouTube. Представьте: у вас есть проект с фронтенд- и бэкенд-частью. Первый работает на одном порту и отображает данные, после — передает бэкенду. Второй работает на другом порту, принимает и обрабатывает эти данные, после чего возвращает ответ. Обычно сайты находятся на едином домене с фронтендом и бэкендом, а здесь — на двух отдельных. 

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

Читать далее

Cистемный аналитик с ЗП 400+. Найти за 30 дней. Часть 1

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

Системный аналитик — это новый чёрный в мире IT. На эту позицию заходят новички, бизнес-аналитики, опытные разработчики и даже менеджеры.

Войти в системную аналитику может (почти) каждый человек, не лишённый логики и интеллекта, а на 400+ слабо?

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

Читать далее

Tower — библиотека для асинхронных middleware

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

Привет, Хабр! Ведущий системный программист компании "Криптонит" Михаил Доронин поделился опытом написания промежуточного ПО — middleware. Оно часто используется в веб-разработке. Например, веб-сервер может использовать middleware для обработки запросов до того, как они будут переданы основному приложению. Так удобно выполнять аутентификацию, логирование, сжатие данных и другую обработку запросов. Наша команда разработчиков на Rust использует для создания middleware библиотеку Tower. О ней и пойдёт речь в этой статье.

Ключевым понятием Tower является типаж Service, суть которого на псевдо-Rust некоторого (надеюсь, не столь отдалённого) будущего, сводится к следующей записи:

Читать далее

SOLID in React

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

Хочется вспомнить SOLID принципы и рассмотреть, как можно их применять в разработке интерфейсов на примере React компонентов.

S: Single Responsibility Principle (Принцип единственной ответственности). Означает, что каждый класс/функция/компонент должны выполнять только одну конкретную задачу.

На примере React компонента: компонент, который отрисовывает пользовательский интерфейс, не должен содержать в себе логику авторизации этого пользователя.

O: Open-Closed Principle (Принцип открытости-закрытости). Означает, что класс/функция/компонент должны быть открыты для расширения, но закрыты для модификации. Чтобы их можно было расширять новым функционалом, не изменяя при этом исходный код.

Читать далее

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