Обновить
404.79

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

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

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

Как в разы сократить время поиска респондентов для исследований и получать 35-40 заявок в месяц от кандидатов?

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

Помните поговорку: «Не имей 100 рублей, а имей 100 друзей»? В рекрутинге респондентов в сложных IT-продуктах такой же принцип — с помощью профессионального сообщества собираешь контакты по сусекам. Но в какой-то момент чаты скудеют, знакомства заканчиваются, а подбор агентств не подходит. Наступает время креативных решений.

Привет! Меня зовут Маша, я UX-проектировщик. В работе часто участвую в пользовательских исследованиях и сталкиваюсь со сложным подбором респондентов. В тексте расскажу, как мы решили изменить процесс рекрута и провели эксперимент: создали страницу Selectel.Мнения и собрали свою базу участников. Поделюсь стартовыми гипотезами и результатами.
Читать дальше →

Пишем хорошие компоненты, которые захочется переиспользовать, а плохие — не пишем

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

Обсудили с Антоном Крыловым, фронтенд-разработчиком Авито, как нужно и не нужно писать компоненты. Поговорили про характеристики компонентов и коснулись Dependency Injection и DSL-like подхода в React.

Читать далее

Разработка фронтенда ИТ-продукта: какой подход выбрать исходя из задач бизнеса

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

Подход к разработке фронтенда в продукте – уже давно не прихоть разработчика, а инструмент для решения бизнес-задачи. В статье простыми словами о том, почему это так, как выбор подхода зависит от назначения продукта, а также примеры использования подходов.

Читать далее

8 полезных библиотек React, которые упрощают жизнь разработчику

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

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

Читать далее

Роль архитектуры в ПО

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

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

В этой проблеме поможет разобраться Роман Хаимов. Он занимается разработкой ПО в практике Frontend “Рексофт”, компании, которая более 30 лет занимается разработкой ПО на заказ для российских и международных компаний. Сегодня Роман расскажет про главную задачу (или роль) любого структурного элемента в приложении. Вместе с ним мы посмотрим на простых примерах, на что влияет архитектура проекта, а также поймем, что может изменить ситуацию к лучшему.

Читать далее

Введение в View Transitions API

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


Новый View Transitions API, что можно перевести как "интерфейс переходов отображения", предлагает легкий способ анимирования перехода между двумя состояниями DOM — даже между загрузками страниц. Это прогрессивное улучшение, которое можно реализовать уже сегодня.

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

Есть 14 языков для хранения данных… Или как появился IEML

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

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

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

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

Читать далее

Развлечения с хеш-коллизиями

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

Мой друг и коллега по цеху, блоггер Сэм, недавно опубликовал своё третье иллюстрированное руководство, темой которого стало хеширование. Нет острой необходимости читать его руководство перед прочтением моей статьи, но я очень рекомендую вам это сделать. Хотя бы ради того, чтобы посмотреть на восхитительные анимации, от которых невозможно оторваться. Честно — они просто потрясающие. Тут, к сожалению, анимаций вы не найдёте, поэтому насмотритесь на них в той статье, а потом возвращайтесь сюда. Здесь вы сможете немного позабавиться поиском коллизий алгоритма хеширования MurmurHash3.

Сразу хочу отметить, что этот материал я писал исключительно ради развлечения. Ничто из того, что я тут покажу, не предназначено для продакшн-кода. И вот, как всегда, ссылка на GitHub-репозиторий, в котором можно найти код к этой статье.

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

Читать далее

Fastapi 0.100.0-beta1: ещё быстрее

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

На прошлой неделе вышла бета-версия нового FastAPI 0.100-beta1, а это значит что? Правильно, пришло время performance-тестов!

Читать далее

Ключи Passkeys — начало постпарольной эпохи? Не так быстро…

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


В мае 2023 года компания Google присоединилась к общему тренду отказа от паролей — и выкатила passkeys (ключи доступа), которые позволяют войти в аккаунт без пароля, а по пальцу, лицу, локальному пинкоду или аппаратному ключу. То есть авторизоваться в Google тем же методом, которым вы авторизуетесь в операционной системе (на смартфоне или ПК). Ранее об отказе от паролей заявила Microsoft.

По своей природе парольные ключи невозможно «потерять». Ими не может воспользоваться злоумышленник. Разработчики заявляют, что такие ключи надёжнее обычных паролей и даже надёжнее, чем 2FA через SMS, поскольку SMS легко перехватить.

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

Сравнение тяжеловесности популярных библиотек UI компонент для Vue 3

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

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

Было проведено исследование - взяты три HTML элемента: Button, Input и Select, и проверено, насколько увеличатся js и css бандлы если использовать для них одну из 10 распространенных UI библиотек для Vue 3.

Читать далее

Приручаем Liquibase. Как скормить базе данных список из 10К офисов, чтобы потом не писать костыли?

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

Привет! Меня зовут Михаил, я Java Backend Developer в Simbirsoft. В этой статье хочу поделиться своим опытом создания миграций файлов с большим списком данных при помощи Liquibase. Cтолкнувшись с такой задачей на проекте, я был сильно удивлен тому, как мало материалов написано по этой теме, даже на английском. Поэтому описал то, что удалось собрать и проверить на собственном опыте.

Читать далее

Как делать резервные копии сайтов и серверов?

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

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

Читать далее

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

Цифровые аватары: эволюция визуального представления в онлайн-мире

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

Привет, Хабр! Меня зовут Александр Михалюк, я директор по продуктам beeline cloud. Возможно, вы уже знаете, что недавно у нас произошел масштабный ребрендинг, — ранее мы уже рассказывали о нем в статье про ASCII-арт. Сегодня речь пойдет о другой концепции, которую мы задействовали в нашем фирменном стиле. Эксперты beeline cloud получили цифровые аватары — посмотреть, как они выглядят, можно на сайте компании.

В этой статье я хочу рассказать, как развивалась идея цифровых аватаров и как нам удалось воплотить ее в брендинге beeline cloud. Надеюсь, будет интересно!

Читать далее

Как рассказывать про кейсы агентства, чтобы читатель не умер со скуки

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

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

Читать далее

Неудачное внедрение Redis Cluster в монолит на PHP 7.2.X

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

Исповедь о том как принес в проект проблему, которую так и не устранил в течение долгого времени.

Осторожно! Статья может вызвать обострение профессиональных заболеваний вплоть до боли ниже поясницы.

Читать далее

Введение в потоковую передачу данных в Вебе

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


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


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


Web Streams API постепенно становится краеугольным камнем основных веб-платформ, включая браузеры, Node.js и Deno. В этой статье мы рассмотрим, что такое веб-потоки, как они работают, их преимущества, а также инструменты, созданные на их основе.




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

Один Hugo сайт, Две Hugo темы

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

Как показала практика, Hugo - очень гибкий инструмент построения собственных веб-сайтов.

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

Об одной такой "штуке" и пойдёт речь в этой статье.

Читать далее

История одной XSS в Telegram

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

Здравствуйте, уважаемые читатели Хабра! Сегодня я хочу поделиться с вами информацией о XSS-уязвимости, которую я обнаружил в Telegram около двух недель назад. Также статья коснется некоторых особенностей работы программы поиска уязвимостей от Telegram. Моя цель — не только продемонстрировать вам интересный и относительно простой пример XSS, но и обозначить причины, по которым, возможно, не стоит тратить свои усилия на участие в багбаунти программе Telegram.

Читать далее

Как позволить PHP использовать весь CPU/RAM некоторыми [не]хитрыми манипуляциями

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

Рекомендую присмотреться к списку, если ваш проект вырос или планирует рост, написанный на любом интерпретируемом языке (php/ruby/python) на нескольких серверах с обычным стеком (веб-сервер/сервер приложений, субд, redis/memcahed, rabbitmq, ...).

В качестве подопытного для оптимизации был взят PHP backend - все нижеперечисленные приёмы были опробованы и применены. Наш проект почему-то задыхался на казалось бы неплохом железе и к тому же не утилизировал выданные ему аппаратные ресурсы.

Читать далее

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