Search
Write a publication
Pull to refresh
5
0

Специалист по БД

Send message

Технотекст 7: шорт-листы для 499 отборных статей

Level of difficultyEasy
Reading time22 min
Views7K

Технотекст 7 получился необычным: мы провели всего одну рассылку, остальные статьи собирали органически — анонсами, упоминаниями и даже личным общением с авторами (как в личке, так и в оффлайн формате). Для такой активности результат превзошёл все ожидания: мы получили 833 заявки, приняли 763, в шорт-листы попали 499 заявок, из них 132 от частных пользователей, 367 — от компаний.

Почти все статьи оказались качественными — поэтому при скоринге материалов для шорт-листов оставались в первом туре статьи с рейтингом выше +50 и даже выше +100. Из неприятного — две «нейроночные» статьи, они были сняты с конкурса, искренне надеемся, что это был эксперимент и кто-то пробовал нас на прочность. Увы, думаю, что этот год стал последним спокойным с позиций ИИ-шного контента — в новом сезоне проверяться будет каждая статья. 

Читать далее

Пример проектирования, ориентированного на домен: От хаоса к чистой архитектуре

Level of difficultyMedium
Reading time14 min
Views7.1K

Исследование принципов Domain-driven Design (DDD) на примере кейса "Аутсорсинг"

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

Читать далее

EntityFramework: (анти)паттерн Repository

Reading time15 min
Views118K
Repository Pattern
Репозиторий является посредником между слоем доступа к данным и доменным слоем,
работая как in-memory коллекция доменных обектов. Клиенты создают декларативные
описания запросов и передают их в репозиторий для выполнения.
  — свободный перевод Мартина Фаулера

EntityFraemwork предоставляет нам готовую реализацию паттернов Repository: DbSet<T> и UnitOfWork: DbContext. Но мне часто приходится видеть, как коллеги используют в своих проектах собственную реализацию репозиториев поверх существующих в EntityFraemwork.


Чаще всего используется один из двух подходов:


  1. Generic Repository как попытка абстрагироваться от конкретного ORM.
  2. Repository как набор запросов к выбранной таблице БД (паттерн DAO).

И каждый из этих подходов содержит недостатки.

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

Как освоить Linux за 64 часа, и почему я инвестировал в этот проект 1.5 года своей жизни

Level of difficultyMedium
Reading time17 min
Views64K

Привет, Хабр! Меня зовут Павел, и я расскажу вам о том, как можно быстро выйти из Матрицы освоить Linux. Мне повезло принять участие в крутом проекте по разработке учебного курса для службы каталога ALD Pro, которую Астра создала на замену MS Active Directory, и об этой истории мне хотелось бы вам поведать.

Увидеть, насколько глубока кроличья нора

Отзывчивый дизайн для веб-приложений: как обеспечить доступность на всех устройствах? Принципы отзывчивого дизайна

Level of difficultyEasy
Reading time15 min
Views4.4K

Отзывчивый дизайн — это подход к веб‑разработке, который позволяет создавать сайты, автоматически подстраивающиеся под размеры экрана устройства пользователя. С каждым годом количество вариантов растёт — от смартфонов до умных телевизоров. Поэтому адаптированный и отзывчивый дизайн стал основой успешных веб проектов.

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

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

Читать далее

Хардкорный NAS: как собрать хранилище на OmniOS и не сойти с ума

Reading time6 min
Views13K

Привет, Хабр! Сегодня расскажу, как я собрал сетевое хранилище NAS. Недавно оно понадобилось мне для дома, и я решил не покупать, а сделать свое. Тут не все так просто: есть разные варианты — «железный» и софтовый. В первом случае просто берем готовый NAS-сервер вроде Synology или QNAP, набиваем в него дисков — и все. Недешево, хотя в большинстве случаев это оправдано бесперебойной работой.

Но я не хотел тратиться, поэтому выбрал второй вариант — самостоятельную сборку на базе ПК. Выбор огромен — от Raspberry Pi до относительно недорогих HP ProLiant MicroServer. Я собрал на «железе», которое у меня было в запасе: HP ProLiant MicroServer Gen8, CPU Intel Celeron G1610T, 16 ГБ DDR3, 4 x 4 ТБ HDD. После сборки задумался о программном обеспечении. Его много — от готовых решений вроде TrueNAS, XigmaNAS, OpenMediaVault до самостоятельной настройки сервера с нуля на базе Linux или FreeBSD.

Я не искал легких путей (ведь я инженер!) и решил поэкспериментировать. Выбрал довольно экзотический вариант создания NAS при помощи операционной системы OmniOS. ZFS в ней поддерживается нативно, а сама она продолжает славные традиции своего предка — illumos. Это стабильность, поддержка ZFS, предсказуемое поведение в продакшене, а также простая, но гибкая модель управления сервисами (SMF). Плюс четкая структура пакетов и ориентация на безопасность и прозрачность исходного кода. Подробнее обо всем этом — дальше.

Читать далее

Одноплатные компьютеры, которые вывезут почти все: пять новинок последнего времени

Reading time5 min
Views61K

Одноплатные компьютеры уже давно не просто игрушка для энтузиастов. Это мощные системы, которые могут работать с AI, подверрживать одновременно несколько 4K-дисплеев, управлять роботами и даже выполнять серверные задачи. В 2025 году рынок пополнился новыми моделями, которые впечатляют возможностями и ценами. В этом обзоре — пять самых интересных новинок, которые подойдут как для разработчиков, так и для тех, кто ищет компактную, но мощную альтернативу традиционному ПК.
Читать дальше →

Как реализовать пакетную подпись PDF-документов

Level of difficultyMedium
Reading time18 min
Views4K

Автоматическое подписание документов электронной подписью используют там, где требуется пакетная подпись документов без участия сотрудника. Это могут быть как небольшие сайты, например по продаже билетов в театр и музей, или порталы с онлайн-обучением при отправке сертификатов о прохождении курсов, так и крупные банковские приложения, например, при генерации выписок по счетам, форм договоров или квитанций. В ЕСИА, СМЭВ, ГИС ЖКХ и других государственных информационных системах также реализована автоматическая подпись.

В этой статье реализуем автоматическое подписание для PDF-файлов и добавим штамп «Документ подписан электронной подписью».

Читать далее

Альтернатива Keycloak: как настроить SSO в Authentik

Level of difficultyEasy
Reading time13 min
Views7.8K

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

Не так давно передо мной встала задача настроить единый вход (SSO) в наше приложение, и так исторически сложилось, что в компании для этого используют open‑source‑провайдер аутентификации authentik.

Первым делом я, конечно, полез в официальную документацию провайдера, но, к сожалению, не нашел там каких‑то подробных гайдов или туториалов по настройке. Дальше я, само собой, решил погуглить — нашел статьи по запуску authentik, а вот более‑менее подробного туториала, как все это заставить работать, используя наш стек (Java, Spring Boot), не оказалось. Поэтому я решил сделать его сам.

В статье разберем шаги для простейшей настройки authentik и запустим его в связке с Spring Boot приложением.

Читать далее

API Key Authentication в ASP.NET Core Web Api

Level of difficultyMedium
Reading time6 min
Views6.1K

Недавно я столкнулся с задачей реализации аутентификации с использованием API Key в ASP.NET Core Web API. Хотя многие авторы рекомендуют использовать IAuthorizationFilter для этой цели, я обнаружил, что это не самый подходящий вариант. У меня есть более удачный подход, которым я хотел бы поделиться, включая примеры. Реализация была протестирована как в .NET 8, так и в .NET 9.

Читать далее

Защита своего приложения с помощью JWT и Spring Security

Level of difficultyMedium
Reading time42 min
Views13K

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

Читать далее

Scrum is dead или почему Kanban намного эффективнее Scrum

Level of difficultyEasy
Reading time6 min
Views25K

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

Читать далее

Работаем с JSONB в JPA EclipseLink

Level of difficultyMedium
Reading time7 min
Views1.6K

Поддержка полей JSONB в СУБД PostgreSQL стала результатом большой работы команды PostgresPro и приблизила использование форматов и инструментов для работы с JSON в этой базе данных к статусу полноценной. В отличии от текстового в своей основе типа JSON, JSONB позволяет строить индексы по содержимому поля, что должно значительно ускорить поиск по таким данным. Также он реализует некоторые оптимизации, например не поддерживает дубликаты ключей в рамках одного уровня JSON-структуры, а если они все-таки встречаются, использует последнее значение.

В этой статье мы попробуем подключить и использовать функционал JSONB-полей в нашем java-приложении на фреймворке Jmix. Если вы используете Spring, решения по настройке и, может быть, даже использованию могут слегка отличаться, т. к. там используется ORM Hibernate.

Читать далее

Получаем персональные данные пользователей с Госуслуг: Интеграция с ЕСИА на Java

Level of difficultyHard
Reading time8 min
Views5.3K

В эпоху цифровизации обеспечение надежной аутентификации и авторизации пользователей становится основой для безопасного доступа к различным государственным сервисам. Единая система идентификации и аутентификации (ЕСИА) предоставляет инструменты для выполнения этих задач в России. В этой статье я поделюсь опытом интеграции с ЕСИА с использованием OpenID Connect 1.0, а также предоставлю пример реализации интеграции на Java с ЕСИА для получения персональных данных пользователя. 

Читать далее

Вёрстка Учебника (LaTeX + CPP + GNU Make + Jenkins = Учебник)

Level of difficultyEasy
Reading time12 min
Views3.7K

Вы, наверное удивитесь, но чтобы написать учебник, надо знать системы сборки из софтверного БигТеха и, как ни странно, старый добрый сишный препроцессор (cpp).

Да, господа... Именно так...

В этой заметке я покажу несколько трюков по работе с LaTeX.

Читать далее

Малиновый киноцентр или как сделать неубиваемый смарт-ТВ

Reading time6 min
Views65K

Самая полная инструкция по созданию из Raspberry Pi домашнего киноцентра с минимальными затратами и подробной настройкой приложений.

Знаю, что скажут 90% читателей: "Зачем тебе магнитофон? Смарт-ТВ купи и счастье". Я отвечу. Проблема в том, что ещё в 90-ых был куплен шикарный телевизор с 5.1 звуком и Full-HD монитором, правда не стандартного разрешения (не 4:3 и не 16:9). Менять телевизор и попадать минимум на 40 тысяч из-за дивидюшника за 3 тысячи - как-то не разумно. В планах сделать экран с проектором и звуком, но вот покупать смарт-ТВ, который не поковыряешь - для меня слишком больно. Купил Sony - мучайся с их смартом и так с любой фирмой.

В моём распоряжении был старый комп-башня и куча старых деталей, который валялись по квартире и офису. Тестил всё на этом железе в разных конфигурациях: от сборки с интегрированной видюхой от интел с 1 ГБ оперативы и пентиумом на борту, до GTX 660 с 8 ГБ оперативы и i5 во главе. Разница есть, но только в загрузке файлов - то есть не критичная. Картинка в FullHD выдаётся ровно без крашей всю дорогу. Имея задумку повесить экран с проектором, делать громоздкую станцию - не вариант.

Читать статью

Не UML-диаграммы на PlantUML. Обзор с примерами

Level of difficultyEasy
Reading time4 min
Views7.7K

Привет Хабр! Меня зовут Татьяна Ошуркова, я разработчик и аналитик Назначением инструмента PlantUML принято считать построение UML-диаграмм. Но на самом у него намного больше возможностей и типов диаграмм, которые можно создать.

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

Читать далее

Боремся с «мутью» в звуке электрогитары

Level of difficultyEasy
Reading time8 min
Views10K


Привет, Хабр! Дешёвые хамбакеры очень часто звучат «замыленно»: звуку недостаёт не только красоты, но и разборчивости. Более качественные электрогитарные звукосниматели сто́ят дорого, да ещё и стали труднодоступными.

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

Уровень телекастеровского «твэнга» и стратокастеровского «стекла» теперь можно регулировать, причём на гитаре, оснащённой двумя экранированными пассивными хамбакерами. (Неэкранированные тоже подойдут, даже лучше).
Посмотрим и послушаем!

Information

Rating
6,609-th
Location
Екатеринбург, Свердловская обл., Россия
Date of birth
Registered
Activity

Specialization

Fullstack Developer, Database Developer
ASP.NET Web API
PostgreSQL
Git