Обновить
385.2

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

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

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

Веб-разработка: 15 материалов для самостоятельного изучения

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

Привет, Хабр! Мы на курсе Практикума по веб-разработке постоянно смотрим, что новенького появилось в сети для самостоятельного обучения веб-технологиям. И ресурсов в доступе довольно много. Они разнообразны и обучают современным технологиям в разных форматах: видео, учебники, интерактивные курсы, гайды и доклады. Если вы учитесь на курсах или уже работаете во фронтенде, эти материалы помогут улучшить навыки и избавиться от белых пятен. Делимся найденными сокровищами.

Читать далее

Что произошло в мире Python за последний месяц

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

Привет! Раз в месяц мы в Moscow Python Podcast собираемся и обсуждаем новые релизы, PEP, заинтересовавшие нас инструменты и статьи. В апреле поговорили об исследовании экосистемы Django от JetBrains, LTS-релизе Django 4.2, релизе Pandas 2.0 и свежих PEP. Под катом — текстовая выжимка из обсуждения.

Читать далее

Экономный APM для backend или как использовать Loki+Grafana+логи приложения для APM

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

Обычно процесс оптимизации типичного backend'а на php включает:

оптимизации SQL‑запросов в БД;

оптимизации работы с кэшем (повышение hitrate, увеличение объёма кэшируемых данных);

оптимизация внутренних процессов в backend (вынесение тяжёлых процессов в асинхронный режим, оптимизация внутренних структур данных)

Всё это уже было проведено, но не давало достаточного эффекта - API был большим, в нём было много сервисов с разной логикой, сложностью и связями. Точечные улучшения давали эффект, но было желание посмотреть на весь backend сверху - оценить потоки данных, оценить создаваемую нагрузку на каждый из внешних хранилищ (БД, кэш, сервисы) и оптимизировать исходя из полученных данных.

Читать далее

GraphQL: от восторга до разочарования

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

Задаётесь вопросом, стоит ли использовать GraphQL в своём проекте? Ваши разработчики спорят, выдвигая аргументы типа «GraphQL — это будущее» и «REST проще»? Мы с моей командой обсуждали эту тему бесконечно. В статье я приведу краткие выводы.

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

Генерация сайтов с помощью AI

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

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

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

Читать далее

Микрофронтенды — универсальное решение всех проблем или просто удобный подход?

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

Сейчас понятие «микрофронтенды» встречается довольно часто, но что это такое и какие задачи они решают? Зачем нам микрофронтенды, если есть микросервисы или монолит? И стоит ли тащить микрофронтенды в свой проект только потому, что это модно? Расскажу об этом, а также о трёх способах организации микрофронтендов: Podium, Single-SPA и Module Federation. Какой среди них лучший и нашли ли разработчики в нём панацею? Об этом читайте под катом.

Читать далее

Продакт, не копайся в метриках — апгрейдь технологии, метрики сами вырастут

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

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

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

Читать далее

Интерфейс дерева комментариев. Сравниваем Хабр и клиенты Reddit; переделываем Хабр

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

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

Одна из самых старых и самых популярных площадок с деревьями комментариев — это Reddit. Правда, большая часть его пользователей едина в одном: его интерфейс ужасен. Но его API открыто, поэтому на выбор есть множество клиентских приложений, особенно для мобильных телефонов — Joey, Relay, Slide и Boost и другие. Их авторы — как правило, и сами недовольные стандартным интерфейсом Реддита — потратили много времени и сил на поиск удобного интерфейса для комментариев. И большая их часть пришла к очень похожим вариантам дизайна.

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

Читать далее

Кормушка для собак с интеграцией Bitcoin и Lightning Network

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

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

Читать далее

Наблюдение за температурой: введение в холодные и горячие Observable в rxjs

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

По мере изучения RxJS разработчик рано или поздно сталкивается с такими понятиями, как cold и hot observable. А на технических собеседованиях в команды, которые используют RxJS, можно услышать вопросы по этой теме.

Например, чем горячий поток отличается от холодного? Можно ли холодный поток превратить в горячий и наоборот? И если да, то как это сделать?

В статье попробуем разобраться в теме и найти ответы.

Читать далее

Философские вопросы интернационализации веб-приложений

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

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

Языки

Если вы поддерживаете два или три языка, это не имеет большого значения. Но если вы хотите поддерживать дюжину вариантов, вы должны как-то решить, какие из них. Для начала неплохо погуглить самые популярные языки, но этот вариант совсем не точен. Лучше посмотрите статистику или аналитические отчеты, которые дадут вам представление о том, на каких языках говорят ваши пользователи. В Росплате я такие данные не собираю, поэтому нужна была другая точка отсчета. Мне пришлось проявить инициативу и просто спросить потенциальных пользователей: «Привет, ребята, какие языки вы ожидаете увидеть на странице настроек?». Честно говоря, ответ был неожиданным. Арабский, иврит, хинди и бенгалбский!

Обнаружение

Когда новый пользователь попадает в приложение, он может не говорить по-английски, который является языком по умолчанию. Значит, должен быть какой-то способ угадать. И есть один: используйте заголовок Accept-Language на стороне сервера. Этот заголовок не только говорит вам, какую локаль использовать, но и дает вам подсказку, например, этот пользователь говорит на языке А и языках Б (я уверен на 90%) и С (я уверен на 50%). С этой информацией вы можете быть намного увереннее: если вы не поддерживаете основной язык пользователя, вы, вероятно, можете использовать дополнительные.

Читать далее

Роль UX/UI-дизайна в процессах автоматизации бизнеса на примере оформления ипотеки

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

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

Читать далее

Оптимизация бэкенда приложения с примерами на Symfony. Часть 1

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

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

В текущей статье, рассмотрим темы - n+1, пагинация и индексы. Приятного чтения!

Описание приложения

Рассматриваемый проект - это веб-журнал посещений различных мест людьми с возможностью выгрузки и загрузки журнала в формате XML. Пользователь может загрузить журнал посещений в формате XML через форму на странице /upload, и на основе информации из файла будет заполнена база данных. Вся информация о посещениях будет отображаться на главной странице /index. Экспорт из системы осуществляется через команду, которая преобразует информацию из системы в формат XML и выгружает ее в файл (data.xml).

Читать далее

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

Работа с размерами изображений с помощью класса Uri в Joomla 4

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

Парадокс, конечно, но это возможно. Казалось бы, причем тут класс ядра для работы со строками url. Но именно он может помочь нам в Joomla 4. Статья о том, как автоматически определять размеры файлов изображений для атрибутов width и height с помощью ядра Joomla 4 и не грузить сервер.

Читать далее

Storybook: разработка без боли для команды и бизнеса. Возможности и нюансы

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

Всем привет! Если вы считаете Storybook лишним инструментом, эта статья для вас. Раньше я и сам мог присоединиться к такому мнению, но попробовал Storybook в деле, когда участвовал в разработке сервиса рассрочки для одного из крупнейших маркетплейсов. Разработкой этого проекта занимались две команды, состоящие из 15 человек.

Меня зовут Александр, я frontend-разработчик в Simbirsoft. Хочу поделиться, как этот инструмент может сократить время на разработку и тестирование, улучшить качество конечного продукта, а также сэкономить бюджет на больших проектах.

Советую к прочтению фронтенд-разработчикам и тимлидам, которые хотят упростить процесс тестирования и отладки компонентов интерфейса веб-приложений. Также материал может помочь менеджерам проектов и владельцам бизнеса в поиске новых подходов для ускорения и оптимизации процесса разработки. И даже если вы новичок во frontend-разработке и хотите узнать о новых инструментах и технологиях в этой области — welcome.

Мы рассмотрим такие возможности, как создание документации, тестирование, тестирование доступности, работу с моками, аддоны для имитации API и контекста. Я поделюсь, какие проектные задачи мне удалось решить, и чем может быть полезен Storybook для вас.

Читать далее

Java на стероидах, или опыт работы с Jmix

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

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

Читать далее

Искусственный Художник — Google от мира Text-To-Img

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

Здравствуйте, меня зовут Дмитрий Карловский и я люблю рисовать шедевры, но у меня совсем не хватает терпения довести хоть один из них до конца.

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

Далее вас ждёт реверс-инжениринг HuggingFace API для использования модели Kandinsky, поддержка запросов на 100 языках мира благодаря модели Small100, проектирование бесконечной виртуальной ленты в несколько строк на $mol и, конечно, примеры творчества Искусственного Художника.

Вскрыть пациента

Вовлеченность посетителей сайта: на что влияет, как измерить и как повысить — 4 рабочих способа

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

Про важность вовлечения аудитории в социальных сетях поговорили уже все — повторяться не будем. А что насчет сайта? В статье расскажем, какую роль вовлеченность играет в web продвижении, на какие метрики обращать внимание при продвижении сайта и какая есть корреляция между вовлеченностью и продажами. 

Читать далее

Как сделать калькулятор заказов на сайт в Excel и превратить его в генератор счетов

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

Как сделать калькулятор заказов на сайт в Excel и превратить его в генератор счетов

Расчет стоимости заказа онлайн сильно увеличивает конверсию. Еще сильнее она улучшается при немедленном оформлении счета (и договора). Почему же так часто приходится долго ждать расчета стоимости и оформления заказа? Что мешает использовать на сайте тот самый файл Excel, в котором рассчитывает заказ продавец?

Давайте разберемся концептуально →

Если расчет стоимости делается в Excel и этот Excel живет в облаке, то почему бы не позволить любимым клиентам самостоятельно делать расчет в заботливо подготовленном шаблоне? У клиентов разный уровень подготовки, но галочки поставить и ввести свое имя с адресом могут все. А больше от них ничего и не требуется ¯\_(ツ)_/¯

Посмотрим на живом примере → как повесить на сайте свой Excel с расчетом заказа и автоматическим оформление счета (и договора). Не будем пока выяснять что лучше использовать: Google Sheets или MS Office, сегодня разговор не об этом. Плюсы и минусы технической реализации в разных сервисах в этой заметке не рассматриваем.

Читать далее

Способы создания авторизации на сайте. Руководство с примерами. Безопасность в браузере

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

В данной статье мы разберем 4 способа как зарегистрировать нового пользователя:

1.Сторонние сервисы авторизации (такие как Google)

2.Авторизация с использованием токенов

3.Авторизация с помощью номера телефона

4.Логин + Пароль

Статья даст вам конкретный алгоритм реализации каждого способа. Необходимые библиотеки, а также примеры кода. Я постараюсь приводить в пример реализацию на чистейшем JavaScript, для того чтобы вы смогли внедрить функционал в свое проект, не зависимо от используемого фреймворка, однако также будут примеры для тандема Angular + Asp .Net Core. Мы обсудим как защитить ваш сайт от взлома. На сколько это сложно и возможно ли в принципе гарантировать 100% защиту. Итак, давайте приступим.

Читать далее

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