Как стать автором
Обновить
300.53

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

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

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

GET запросы на практике: правила, принципы и примеры

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

Я думаю, что вы не раз уже гуглили, заглядывали в статьи, манифесты IT-гигантов о лучших практиках проектирования API. Я тоже.

Но в большинстве из них всё ограничивается описанием URL ресурса, мотивацией использовать пагинацию, сложными словами про кэширование и SSL. Это, безусловно, необходимо для общего понимания технологий, но практически не помогает, когда ты сидишь перед пустой страницей и надо начать “проектировать контракт”.

Я работаю тимлидом направления системного анализа в X5Tech и за все время развития карьеры сталкивалась с большим количеством кейсов проектирования Web систем. IT продукты в большинстве очень динамичны: постоянно изменяются требования, появляются новые, итеративно улучшается пользовательский опыт (по принципу 20% усилий на 80% результата, а остальное доделаем потом).

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

В этой статье предлагаю спроектировать контракт по шагам, и на каждом из них я расскажу про общие рекомендации из копилочки “Полезное”, а также про личные правила и практики, полученные долгим опытом работы над постоянно меняющимися ИТ-продуктами, которые помогут для “дальновидного” проектирования GET REST API.

Читать далее
Всего голосов 7: ↑6 и ↓1 +5
Комментарии 3

Новости

Чек-лист для бизнеса: что нужно сделать перед началом разработки сайта

Время на прочтение 12 мин
Количество просмотров 616

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

Сделали простой и понятный чек-лист, который поможет вам подготовиться к интервью с подрядчиком и объяснить, чего вы ждете от будущего сайта. 

Эти советы универсальны, они никак не касаются типа разработки. Чек-лист скорее направлен на сбор информации и материалов, которые позволят создать конверсионный ресурс и отразить в нем необходимые ценности и миссии бренда. Теперь обо всем по порядку.

Читать далее
Всего голосов 6: ↑2 и ↓4 -2
Комментарии 2

Flowise: доступ к AI без кода

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

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

Как без единой строчки кода сделать чат-бот с доступом в сеть, или сервис для генерации изображений, анализа файлов, как встроить это всё в свой проект... Об этом и не только в обзоре Flowise.

Читать далее
Всего голосов 7: ↑6 и ↓1 +5
Комментарии 0

Полезные расширения VScode для работы с документацией

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

Как правило, работа с документацией — это последний этап любого проекта, связанного с данными (data science, data visualization и т. д.), проектированием и разработкой ПО. Речь о создании и редактировании библиотек, файлов README, обучающих материалов и др. Среди всех преимуществ VScode — его уникальная экосистема расширений. И особенно впечатляют те, что помогают работать с документацией. В этой статье поделюсь самыми полезными из них.

Читать далее
Всего голосов 17: ↑15 и ↓2 +13
Комментарии 7

Истории

Гонка за скоростью: сравнение производительности ведущих фреймворков JavaScript в веб-разработке. Fastify, Express, Koa

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

Недавно я задался вопросом «Какой JS фреймворк самый быстрый». Я обратился с этим запросом в гугл и нашел очевидный ответ «это fastify!». Но почему именно он?.

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

Читать далее
Всего голосов 10: ↑8 и ↓2 +6
Комментарии 10

Валидация данных на уровне бизнес-логики приложения

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

Данная статья продолжает тему статьи "Когда ни туда, ни сюда, или в поисках оптимальной границы Domain слоя".

Во многих бизнес приложениях для сущности User выдвигается стандартное требование: "При регистрации пользователя нужно проверять, что записываемый email уникальный, ни у одного другого пользователя такого больше нет".

Подобная задача предельно типовая и поэтому должна иметь типовое решения. Далее рассматривается решение, основанное на трёхслойной архитектуре, в которой каждый слой (layer) состоит из трёх подслоёв (sublayer). Такая архитектура была описана в статье "Пример описания многослойной архитектуры, основанной на использовании наборов подслоёв и иерархии моделей данных".

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

Читать далее
Всего голосов 3: ↑1 и ↓2 -1
Комментарии 8

Анатомия StyleX

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



Hello world!


По данным 2023 JavaScript Rising Stars библиотека StyleX заняла второе место в разделе Styling / CSS in JS (первое место вполне ожидаемо занял TailwindCSS).


stylex — это решение CSS в JS от Facebook, которое недавно стало открытым и быстро набрало популярность (на сегодняшний день у библиотеки 7500 звезд на Github). Это обусловлено ее легковесностью, производительностью и небольшим размером итоговой таблицы стилей.


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

Читать дальше →
Всего голосов 12: ↑12 и ↓0 +12
Комментарии 4

Система иконок на React

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

Очень часто при разработке React-приложения нам приходится работать с большим количеством иконок в проекте. Наверное, каждый разработчик стремится максимально упростить и автоматизировать подобные рутинные задачи. Есть несколько способов работы с иконками в веб-приложениях, но я хочу поделиться с вами именно тем, который кажется мне наиболее удобным. Данная статья поможет frontend-разработчику сделать работу с иконками комфортнее, используя их в качестве React-компонентов.

Читать далее
Всего голосов 6: ↑5 и ↓1 +4
Комментарии 7

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

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

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

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

Привет, Хабр! Меня зовут Саша, в этой статье я расскажу, как задеплоить в облако статический веб-сайт с помощью объектного хранилища стоимостью около 1₽/мес. А также — настроить красивый домен. Подробности под катом.
Читать дальше →
Всего голосов 32: ↑32 и ↓0 +32
Комментарии 28

Дави жуков

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

Существует много курсов программирования и повышения IT-квалификации, но ни на одном из них не учат системно искать и исправлять ошибки. В реальных крупных проектах до 30% времени может уходить не на написание нового кода и фич, а на поиск первопричин неисправностей и их устранения. Именно недочёты и ошибки будут мешать вашему клиенту составить положительное впечатление о продукте, а в некоторых случаях они полностью блокируют процесс. Кроме того, инженер, который только пишет новый код и не решает ошибки, не получает архитектурный опыт и не расширяет кругозор, что приводит к появлению новых недочётов в проектах. Я опишу наш инструментарий для исправления ошибок в веб-приложениях и поделюсь опытом.

Читать далее
Всего голосов 17: ↑14 и ↓3 +11
Комментарии 8

Я полностью слеп и я сам себе техподдержка

Время на прочтение 5 мин
Количество просмотров 6.2K
Я пользуюсь Интернетом уже 20 лет. Думаю, примерно в 2004 году, у меня наконец-то на семейном компьютере была установлена нормальная программа для чтения с экрана. Я не так долго наблюдал, чем у некоторые, но все же это позволило мне увидеть некоторые радикальные изменения, произошедшие с разработкой программного обеспечения, доступностью и большими технологиями.

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

Десять лет назад (я взял эту цифру с потолка, но я думаю, что она точна) это все еще было в какой-то степени верно, но чтобы компенсировать это, агенты обычно имели определенный уровень прозрачности и контроля над системами, которые они поддерживали, и некоторые возможности, которых нет у пользователей. Сейчас часто кажется, что служба поддержки существует только для того, чтобы делать то же самое, что мы уже можем делать с веб-сайта или приложения.
Читать дальше →
Всего голосов 31: ↑24 и ↓7 +17
Комментарии 10

Pkl — новый язык конфигураций от Apple. Обзор и сравнение с YAML и JSON

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

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

Популярность конфигураций вроде INI с годами менялась. По мере развития приложений росла и сложность конфигурирования. Поэтому особенно важно правильно выбрать язык конфигураций, чтобы не усложнить жизнь себе и своему pet-проекту. Под катом рассказываем о пикулях и Pkl — новом решении от Apple.
Читать дальше →
Всего голосов 31: ↑29 и ↓2 +27
Комментарии 28

Кэширование кода в веб-приложениях

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

Эта статья — изложение персонального опыта работы с кэшем на стороне браузера при создании веб‑приложений. В повседневной разработке я использую десктопный Chrome. У него есть панель инструментов и он в принципе удобен для разработчика. Но когда нужно проверять приложение на смартфонах, начинается геморрой — каким образом доставить на смартфон новый код, если там уже есть старый? Больше всего меня бесит Safari on iPhone. Если в Chrome есть возможность удалить все данные для отдельного сайта, то в iPhone все данные удаляются для всего Safari. Если и есть в iPhone какой‑нибудь способ удалить через конфигурацию смартфона/приложения данные для отдельного сайта, то мне так и не удалось его найти. Буду благодарен, если кто‑либо мне о нём сообщит в комментах.

Читать далее
Всего голосов 5: ↑4 и ↓1 +3
Комментарии 10

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

Moscow QA #3 — митап по тестированию ПО
Дата 14 марта
Время 18:30 – 21:30
Место
Москва Онлайн
Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн

Аутентификация для WebSocket и SSE: до сих пор нет стандарта?

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

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

В статье разберем особенности аутентификации применительно к протоколу WebSocket и технологии Server-Sent Events, обсудим, какие нюансы могут быть, когда клиентская часть находится в браузере, и на что еще стоит обратить внимание, чтобы избежать неочевидных проблем.

А еще заодно поговорим про уязвимость Cross-Site WebSocket Hijacking (CSWSH) и в целом посмотрим на многие вопросы через призму информационной безопасности.

Читать далее
Всего голосов 34: ↑34 и ↓0 +34
Комментарии 4

Насколько потолстел JavaScript к 2024 году?

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

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

И всё это время я жил с мыслью, что если средний размер страницы равен, скажем, 3 МБ, то JS-бандл должен составлять около 1 МБ. Естественно, основную часть объёма должно занимать содержимое, не так ли?

Что ж, проверить это можно лишь экспериментальным путём, чем я и займусь! Эту статью я пишу в 2024 году и думаю, что через пару лет эксперимент неплохо бы повторить.
Читать дальше →
Всего голосов 148: ↑145 и ↓3 +142
Комментарии 142

Когда ни туда, ни сюда, или в поисках оптимальной границы Domain слоя

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

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

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

Читать далее
Всего голосов 12: ↑11 и ↓1 +10
Комментарии 53

Chromium. Отрисовка страницы с помощью Blink, CC и планировщика

Время на прочтение 10 мин
Количество просмотров 896

Движок Chromium от компании Google состоит из огромного числа внутренних механизмов, подсистем и других движков. В этой статье мы погрузимся в процесса компоновки и вывода Web-страницы непосредственно на экран. А так же, чуть ближе познакомимся с движком Blink, композитором (или, как его еще называют, сопоставитель контента) и планировщиком задач.

Читать далее
Всего голосов 2: ↑2 и ↓0 +2
Комментарии 4

Создание WordPress-плагина для отправки SMS-сообщений

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

Привет, Habr! Меня зовут Анастасия Иванова, я технический писатель МТС Exolve. В этой статье я расскажу, как создать свой WordPress-плагин для отправки SMS-сообщений. Кроме сайта, вам потребуется Exolve SMS API.

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

Итак, пользователи согласны получать ваши сообщения, рассылки готовы… Начнём! Все подробности — под катом!

Читать далее
Всего голосов 6: ↑6 и ↓0 +6
Комментарии 2

Как разработать браузерное расширение в Chrome на React: разбираем на примере Cloudhood

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

Всем привет! Меня зовут Егор, я технический лидер в команде, которая занимается разработкой личного кабинета Cloud.ru. Некоторое время назад загорелись идеей сделать браузерное расширение на React, но не было хороших гайдов (либо я их не нашел), поэтому в итоге написали свой) В статье поделился нашим опытом и наработками, а также рассказал, зачем мы вообще взялись за этот open source проект.

Читать дальше
Всего голосов 3: ↑3 и ↓0 +3
Комментарии 1

Skunk Works курильщика, или собственный лоу-код на страже продаж

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

С вами Саша Хрущев, технический директор IT-компании WINFOX, и мы продолжаем рассказывать историю нашего лоу-код продукта. Почитайте, как развивается продукт в последние годы: инсайты, сложности, результаты и все такое.  

Читать далее
Всего голосов 4: ↑3 и ↓1 +2
Комментарии 0

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