Все потоки
Поиск
Написать публикацию
Обновить
300.38

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

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

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

Linux для начинающих: WSL — это читерство. Как Microsoft дал нам Linux без головной боли. Часть 2

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

WSL2 — удобный инструмент, но, как и любая технология, он не идеален. В этой статье я хочу рассказать о нескольких подводных камнях, с которыми столкнулся сам, и о том, как их можно обойти. Мы не только разберем решения распространенных проблем, но и раскроем потенциал WSL2: запустим Docker с GPU-ускорением для нейросетей и даже Android Studio. Забудьте о конфликтах сред и долгой настройке после переустановки системы — превратите WSL2 из источника проблем в мощный инструмент, который работает на вас

Читать далее

Фильтры в таблицах

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

В B2B-системах и корпоративных интерфейсах фильтры — не «приятный бонус», а спасательный круг в работе пользователя. Когда у вас таблица на 10 000 строк и 100+ колонок, обычным поиском или сортировкой не обойтись. Тут уже нужны сложные фильтры: с несколькими условиями, каскадными зависимостями, сохранёнными пресетами и продуманной логикой применения.

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

Читать далее

React Custom Hook: useStorage

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

Одним из ключевых преимуществ этого пользовательского хука является его простота. Вы можете использовать его для хранения данных любого типа, таких как строки, числа или даже сложные объекты, всего с помощью нескольких строк кода. Кроме того, useStorage выполняет сериализацию и десериализацию данных за вас, поэтому вам не нужно беспокоиться о преобразовании значений в JSON и из него.

Читать далее

SSO на базе Spring Authorization Server. Можно ли в прод?

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

В современных приложениях централизованная аутентификация и авторизация играют ключевую роль в обеспечении безопасности и удобства пользователей. Именно с такой задачей мы столкнулись в компании NAUKA при создании "Платформы" — экосистемы, предназначенной для функционирования наших решений и разработки собственных прикладных приложений. В качестве основного компонента системы аутентификации и авторизации был выбран Spring Authorization Server.

Настоящая статья - это небольшой практический обзор реализации SSO-сервера на основе технологии Spring Authorization Server с акцентом на решении типовых проблем, которые возникают при её использовании в реальной системе. Мы рассмотрим как технические детали, так и архитектурные решения, которые помогут создать надежный и масштабируемый сервер авторизации.

Читать далее

JavaScript: зачем конструктору return …

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

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

И, ведь, ну в самом деле, подумаешь, ну может разработчику хочеться вернуть не эземпляр, не instance, а какой-нибудь другой объект, и зачем-то при этом ему нужен именно вызов конструктора. Ну, допустим, он хочет чтобы new.target был заполнен и т.п., ну, мало ли какие варианты зачем-то иметь возможность в противном случае вернуть объект. Или может он хочет асинхронных конструкторов и вернуть new Promise, где уже в resolve передать this как вариант для создания await new MyConstructor. Или может быть хочет вернуть Proxy над this для отслеживания операций с этим экземпляром. В общем есть всякие разные причины когда гуманно было бы иметь этот "сахар", но всё же, может быть есть что-то, что иначе никак не сделать? И, самое важное, что эта функциональность былв всегда, с самой первой версии же. Понятно, что может быть про это вообще не думали, просто делали "как привычно". И, да, функции-конструкторы, в отличие от class-овможно вызвать без new и в те времена никаких классов в JavaScript не было конечно, и return объективно был нужен, но может быть есть какие-нибудь варианты когда и с new имеется глубокий практический смысл уже и тогда существовали, то есть может быть назначение операции возврата иного значения конкретно у конструкторов вполне себе приемлемое. И, да, конечно, конструкторы не возвращают примитивы, но может быть и для объектов есть какое-то применение тоже находилось бы, ну, вдруг, внезапно, может быть ...

Читать далее

Как платформа Linear завела меня в кроличью нору local-first-разработки

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

Я начал пользоваться платформой Linear пару месяцев назад. То, с чем я столкнулся, затянуло меня в кроличью нору деталей local-first-разработки (локально-ориентированной разработки), которые изменили мой взгляд на веб-приложения.

Читать далее

ИИ при найме

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

Тренд 2025 года: в некоторых бигтехах кандидату дают сложную задачу и разрешают пользоваться ChatGPT.
Мол, мы же всё равно работаем с ИИ, давайте проверим, как кандидат с ним ладит.

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

Читать далее

DevOps инфраструктура для стартапов ч.2

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

Это продолжение нашей истории. Во второй части показываем, как подружить Portainer и Docker Swarm, чтобы деплоить аккуратно и без docker service update. Один шаблон пайплайна, dev/prod окружения, и уведомления в Telegram -- всё максимально просто.

В итоге получается рабочий до безобразия простой CI/CD для маленькой команды. Подойдёт, если для Кубера слишком рано и слишком дорого. В конце ждет ссылка на репозиторий со всем шаблоном.

После первой статьи было выявлено несколько недостатков такой инфры, их мы тоже описали

Читать далее

Clean Architecture во frontend: почему я ушёл от FSD

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

Привет! Хочу поделиться с тобой опытом перехода от Feature-Sliced Design к Clean Architecture во фронтенде. Почему я считаю Clean Architecture более подходящей для сложных приложений, и как она решает проблемы, с которыми ты точно сталкивался.

Если ты используешь FSD и тебе уже больно или до сих пор пишешь всю логику в компонентах React — эта статья точно для тебя.

Читать далее

Понимание CSS corner-shape и сила суперэллипса

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

Свойство CSS corner-shape — это одно из самых захватывающих нововведений в геометрический инструментарий веб-дизайна за последние годы. Оно расширяет наши возможности по управлению внешним видом углов, выходя за рамки привычных скруглений с помощью border-radius. Это на первый взгляд небольшое дополнение открывает целый мир новых возможностей, которые раньше требовали сложных реализаций на основе SVG или решений с использованием изображений.

Читать далее

DevOps Tutorials — Kubernetes: разворачиваем веб-приложение в облачном кластере

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

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

В этой серии статей я делюсь с вами своим опытом решения различных задач из области веб-разработки и не только.

Другие статьи серии:

DevOps Tutorials — Ansible: разворачиваем веб-приложение на виртуальном сервере

DevOps Tutorials — Terraform: создаем виртуальный сервер в облаке

В предыдущих статьях мы рассмотрели настройку сети и создание виртуального сервера Ubuntu Linux в Yandex Cloud с помощью Terraform и деплой Angular+Java веб-приложения на этом сервере с помощью Ansible. В этой статье мы научимся разворачивать JavaScript+Go веб-приложение в кластере Kubernetes.

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

Читать далее

PHP и Laravel дайджест новостей за июль 2025 года

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

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

Сергей Пантелеев и Данил Щуцкий собрали ключевые новости PHP и Laravel за июль. Будьте в тренде — читайте обзор! 🚀

Читать далее

Как мы прикрутили real-time чат в админку на React без Jivo и LiveChat

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

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

Недавно нам нужно было добавить чат в админку одного из проектов. Забавно, но решения вроде Jivo или LiveChat мы даже не рассматривали. Так были уверены, что сможем без проблем собрать кастомный чат прямо внутри Admiral.

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

Что было дальше?

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

Альтернатива чатам с ИИ для анализа и оптимизации SQL запросов. Часть 2

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

Месяц назад я опубликовал пост об инструменте для автоматической оптимизации SQL-запросов. Идея была простая — убрать этап «общения» с ИИ и предоставить простой интерфейс, где не нужно придумывать промпты.

За первый месяц сервис использовали более 1000 человек. Ниже — выводы и результаты.

Читать далее

Создание шаблона проекта HTML-сайта в Visual Studio

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

Не помню уже с какой версии, но весьма давно, в Visual Studio пропали типы проектов, создающие шаблон простого html/js/css сайта. Появилось много новых: в разных видах ASP.NET Core, Blazor, Vue, Angular, React etc. А вот шаблона простого классического сайта нет. Но это можно исправить.

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

Приступим

«Великолепный» CSS. Коллекция странностей CSS, на которые я потратил кучу времени

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

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

CSS часто преподносит сюрпризы, способные запутать даже опытных разработчиков. Я понимаю их раздражение. Тут всё закономерно.

Однако, несмотря на потраченные нервы, мне нравится CSS. Именно поэтому мне хочется, чтобы разработчики тратили меньше времени на борьбу с ним. С этой целью я собрал ряд не самых очевидных моментов, которые в своё время ставили в тупик меня и моих коллег.

Читать далее

Улучшаем JavaScript-код с помощью стрелочных функций

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

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

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

Читать далее

Chrome-расширение на базе ИИ, сделанное с помощью ИИ. От идеи до релиза в Web Store за 2 вечера

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

Мне было лень бесконечно копипастить треды из Gmail/LinkedIn в GPT ради «сгенерировать ответ», а потом возвращать черновик назад.

За два вечера я с помощью ИИ собрал Chrome-расширение на ИИ, которое помогает отвечать на письма: оно тянет контекст цепочки и генерит черновик прямо в окне Gmail (in-place) - без переключений и лишних окон.

Под капотом - OpenRouter (свой API-ключ и выбор модели), system + custom prompts и минимальные permissions без бэкенда.

В статье - как я превратил эту «ленивую» боль в мини-продукт для генерации ответов, короткий путь от идеи до публикации в Chrome Web Store и грабли с ревью.

Читать далее

Интеграция .NET-приложения с внешним API по ГОСТ TLS через CryptoPro

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

Всем привет. Представлюсь — меня зовут Евгений Думчев и я Team Lead.NET разработки в DDPlanet.

В какой‑то момент в моей практике появилась задача по интеграции с внешним API. Для взаимодействия требовалось применять предоставленный публичный доверенный сертификат сервера.cer и клиентский.pfx сертификат. Особенность в том, что.pfx сертификат был выпущен через CryptoPro CSP — а это вносит свои тонкости в процесс интеграции…

Читать далее

Unit тесты в React разработке

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

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

Читать далее

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