Как стать автором
Поиск
Написать публикацию
Обновить
518.6

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

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

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

Фронтенд — новый легаси: Как мы проспали event-driven революцию

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

Введение: Архитектурное дежавю

Вы когда-нибудь замечали, как цифровой мир движется по спирали? В 2018 году я, размахивая Dockerfile и Helm-чартами, внедрял микросервисы на C# с RabbitMQ — всё ради священной цели «низкой связанности». А через три года, переключившись на Angular, с ужасом осознал: фронтенд-компоненты общались через цепочки Input/Output, словно это 2005-й, а мы пишем WinForms.

Это как собрать космический корабль, но управлять им через телеграф. На бэкенде мы гордо декларируем event-driven architecture, а на фронтенде компоненты перешёптываются через пропсы, будто подростки на школьной дискотеке. Ирония? Чем сложнее становились наши системы, тем больше они напоминали те самые монолиты, от которых мы бежали в мире backend.

Читать далее

FastAPI + Keycloak: Простая и безопасная авторизация в веб-приложении на примере реального проекта

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

Keycloak - это мощная open-source платформа для аутентификации и авторизации, которую используют даже банки и крупные корпоративные клиенты для защиты своих приложений и данных.

В статье на реальном примере (FastAPI + Python) простым языком объясню, как Keycloak помогает упростить управление доступом и почему его принципы универсальны для любого бэкенда, независимо от выбранного языка программирования

Читать далее

Превращаем школьный электронный журнал в файлообменник

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

Привет, Хабр. В этой статье я продолжу изучение возможностей электронного журнала(прошлая статья).

На этот раз поговорим о использовании школьного электронного как файлового хранилища. Загрузим туда образы линукса, аниме и многое другое...

Читать далее

Как ускорить написание повторяющегося кода в 10 раз

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

Ускорьте разработку React-компонентов! Эта статья о создании шаблонов для автоматизации рутинных задач: генерация папок, файлов, управление экспортами. Экономьте время и фокусируйтесь на главном.

Читать далее

Легко ли войти в IT через курсы по ручному тестированию

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

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

Мое небольшое исследование и выводы — под катом.

Читать далее

Solid.js как альтернатива (P)React+MobX на практике

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

Как известно, у Solid довольно скудная экосистема, поэтому для сложных проектов я беру React+MobX. Однако недавно подвернулся небольшой mobile-only проект, в котором разве что маскированные инпуты и кастомные селекты, которых для Solid предостаточно. При этом требования к размеру выходных файлов и перфомансу были высокие.

Очевидным решением посчитал взять Solid, заодно и сравнить его по всем параметрам (размер, перфоманс, возможности реактивности, удобство настройки) в реальном проекте. Никаких синтетических тестов с рендерингом больших таблиц и хранением в сторе нескольких мегабайт данных не будет, зато приведу замеры из реального приложения. Бонусом — репозиторий с универсальной архитектурой для Solid+Preact+React, где замена фреймворка (набора стейт‑менеджер + рендеринг UI) производится одной строчкой кода.

Читать далее

Как сделать мобильное приложение, если у тебя лапки? Путь от PWA до TWA

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

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

Если вы веб-разработчик, но руки «чешутся» написать мобильное приложение, варианты есть. В этой статье я расскажу, как создать собственное прогрессивное веб-приложение (PWA) и доработать его до TWA, чтобы потом протестировать и опубликовать в разных сторах. Никакого rocket science, просто небольшое пособие, которое основывается на моем опыте. Подробности под катом.
Читать дальше →

Как настроить баннер cookie-согласия по требованиям GDPR, Google Consent Mode и законодательства разных стран

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

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

В этой статье мы разберём:
· Зачем нужно согласие на cookie?
· Какие бывают типы cookie?
· Что такое Google Consent Mode?
· Как реализовать баннер согласия?
· Как управлять куки в зависимости от предпочтений пользователя?
· Как проверить, что настройки согласия работают?Зачем нужно согласие на cookie?

А также приведем примеры политик использования файлов cookie.

Читать далее

Эффективный поиск с Elasticsearch: как мы повысили конверсию на 27%

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

Хотим поделиться опытом разработки эффективного поиска для одного интересного проекта. Мы подробно рассмотрим, как сделали поиск удобным, быстрым и привлекательным для пользователей, увеличив конверсию на 27% всего лишь за счет грамотной настройки Elasticsearch.

Читать далее

Как фронтендеру сделать интерфейс дружелюбнее к пользователю. Коллекция HTML/CSS лайфхаков

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

Привет, Хабр.


Мне всегда нравились красивые и удобные интерфейсы. Желая сделать лучше для пользователя, я потратил не один день. Так я начал коллекционировать HTML и CSS лайфхаки, которые улучшают впечатление пользователя от интерфейса. В итоге у меня получился внушительный список.


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


Давайте посмотрим, что я вам подготовил.

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

История про Arduino отработавшую 11 лет

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

Шел 2014 год, в моем поселке люди сидят на водозаборе и управляют по RDP скважинами удаленно.

Система работает круглые сутки и на мониторе уже видна "тень" красных и зеленых индикаторов.

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

Читать далее

Новый ЕМИСС 2.0 со сводными таблицами, API и погодой?

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

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

Читать далее

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

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

Прошлый пост https://habr.com/ru/articles/902990/

И вот подходил испытательный срок к концу. Я в ожидание 1 on 1 с директором и hr-ом и вот захожу в гугл мит, и разговор начинается сразу:

HR: 'Привет, к сожалению у меня для тебя плохие новости.'
Я: 'Сижу в ахере так как считаю что перфоманс для джуна мастхэв'
Директор: 'Мы ожидали большей выработки, но к сожалению данных результатов не хватает'
Я: 'Да, я все понимаю. Ничего страшного, не расстроен. Просто не сошлись взглядами'
HR: 'Когда назначить дату увольнение'
Директор: '30 апреля последний день (к слову созвон 28 апреля. Даже за неделю не смогли предупредить)'
Я(в мыслях): 'Хотят меня пнуть чтобы майские не оплачивать. Работаем по ТК РФ. Я так просто не уйду и заберу небольшую котлетку:D'
Я(Вслух): 'Хорошо, перешлите мне приказ об увольнение мне надо с ним ознакомиться'
И на этом созвон закончился. HR начало поливать меня комплиментами какой я большой грин флаг, но понимаю что я очередной сотрудник, которого компания сливает чтобы сэкономить бабок.

P.S. К слову у меня 155 задач закрыто, 75 готовы к релизу.НО видимо надо больше. И это с зарплатой 67к руб на руки.

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

НО. Я так просто не ушел и начались споры с компанией чтобы они выплатили мне небольшую компенсацию. Что вот так просто за пару дней до конца испыта, меня выкидывают на улицу.

Об этом в следующем посте \o/

Читать далее

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

Меня заставили повайбкодить

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

Я давно пользуюсь кодогенерацией. Ещё во времена Yii фреймворка мне нравилось, что одним кликом мышки можно было сгенерировать CRUD с бэкендом, таблицами и формами. Backbone.js сразу из коробки обеспечивал REST API запросы и другие фичи. Между тем временем и нынешним днём — целый пласт инструментов для автоматизации, бутстрапинга и шаблонизации разработки. Приходилось и хрюкать, и глотать. То, что всё это, мягко говоря, так себе — уже отдельная история. Местами стало даже хуже. Хуже, чем когда вы неделю возились с конфигом Webpack.

В этой статье мы рассмотрим вайбкодинг. В чистом виде так сказать.

Читать далее

Валидация сложных форм с помощью Constraint Validation API

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

DOM предоставляет API для валидации пользовательского ввода. Вообще говоря, мы им пользуемся часто, например:

Читать далее

T-SQL в .NET Core EF Core: Гибридный подход к производительности и гибкости

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

В мире .NET разработки, работа с базами данных – неотъемлемая часть. Entity Framework Core (EF Core) предоставляет удобный способ взаимодействия с данными, но при работе с SQL Server, особенно в сложных сценариях, LINQ запросы могут уступать в производительности и гибкости T-SQL. Статья рассматривает эту дилемму, предлагая гибридный подход. Мы погрузимся в проблему: как эффективно использовать мощь T-SQL, не отказываясь от преимуществ EF Core? Обсудим интеграцию T-SQL через Raw SQL, Views, UDF и Stored Procedures. Раскроем лучшие практики: разделение ответственности, оптимизацию запросов, безопасность и тестирование. Поймем, как сочетать удобство ORM с производительностью SQL Server, применяя Data-Driven Design и, при необходимости, Domain-Driven Design. Статья – руководство для .NET разработчиков, стремящихся к оптимальному балансу между производительностью, гибкостью и удобством разработки при работе с SQL Server и EF Core.

Читать об этом

Как я уязвимости в школьном электронном журнале искал

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

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

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

Читать далее

Меню для отзывчивого интерфейса без скриптов

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

В этой статье мы расскажем как создать отзывчивое меню по принципу mobile-first, используя только HTML и CSS — без JavaScript. Полный код, используемый в этой статье, доступен в репозитории на GitHub.

Читать далее

JavaScript. Как сделать невероятно быстрый многопоточный Data Grid на 1 000 000 строк. Часть 2/2: работа с потоками

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

Demo | GitHub

Особенности Fast Data Grid:
— Невероятно быстрый
— Многопоточный
— Всего 523 строчки кода
— Нет зависимостей
— Vanilla JavaScript

Попробуйте скролл и поиск по 1 000 000 строк — Fast Data Grid.

В статье расскажу про работу с потоками.

Читать далее

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

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


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


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

  • что можно сделать лучше для пользователей с дислексией;
  • как незаметно улучшить интерфейс для пользователей с травмой кистей рук;
  • есть ли сложности с сокращениями для пользователей скринридера.

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

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

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