Pull to refresh
5
0
Alex Kols @Kolosoff

Администратор баз данных

Send message

Архитектурные паттерны для высокой масштабируемости. Часть 1

Level of difficultyHard
Reading time14 min
Views18K

Эта статья предназначена для разработчиков, архитекторов и технических лидеров, которые ищут способы оптимизации производительности и масштабируемости своих систем. Она поможет понять:

Когда стоит использовать более простые подходы (например, шардирование, репликацию, CQRS) вместо того, чтобы сразу переходить к микросервисам.

Какие trade-offs возникают при выборе каждого из паттернов или архитектурных решений.

Как избежать излишней сложности, которая может быть вызвана преждевременным внедрением сложных архитектур.

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

Читать далее

Лучшее self-hosted решение для стриминга игр и не только для Windows

Level of difficultyEasy
Reading time2 min
Views8.5K

С появлением handheld консолей на Android, Windows и SteamOS и контролера для телефона возникает желание поиграть на этих девайсах в игры с ПК. Самым простым решением будет использовать Steam Link, но из-за постоянных отвалов и фризов стало ясно что решение не самое оптимальное.

Читать далее

Основные идеи книги Inspired («Вдохновленные») Марти Кагана. Часть 1

Level of difficultyEasy
Reading time3 min
Views1.4K

Читая бизнес‑литературу, я стараюсь оставлять для себя заметки — основные идеи автора, к которым полезно вернуться спустя время. Сегодня я делюсь с Вами своими заметками по книге INSPIRED («ВДОХНОВЛЕННЫЕ») Марти Кагана. Книгу многие признают «настольной» для Продакт‑менеджеров, так что, надеюсь, эти заметки будут полезны как тем, кто хочет вспомнить основные тезисы книги, так и тем, кто хочет поверхностно ознакомиться с её содержанием. Разумеется, смысл передаю субъективно, согласно собственному восприятию. Если хотите что‑то добавить или оспорить — Welcome в комментарии 😊

Читать далее

Настраиваемся на работу: 8 вдохновляющих книг от команды Selectel

Level of difficultyEasy
Reading time4 min
Views11K

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

Читать далее

Делаем macOS безопаснее

Level of difficultyEasy
Reading time5 min
Views4K

Это руководство о безопасности, а не конфиденциальности.

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

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

Статья обновлена с выходом macOS Sequoia.

Читать далее

Как развернуть Supabase в облаке Timeweb Cloud

Level of difficultyMedium
Reading time7 min
Views1.6K

Пакет Supabase — это бесплатный аналог облачных сервисов Google Firebase (БД, аутентификация, хранение файлов, realtime обмен данными, framework для популярных языков). Перечисленные инструменты позволяют разработчикам быстро создавать как простые мобильные приложения и сайты, так и сложные корпоративные системы. Кроме того, при использовании Supabase вам не нужно уметь управлять сервером, пользователями и обслуживать базу данных — для этого в пакете присутствует готовая административная панель.

Читать далее

Часть 1: Как я создал идеальный REST API — микросервис инцидентов на Java и Spring

Level of difficultyMedium
Reading time16 min
Views15K

В этой статье вы узнаете, как спроектировать и реализовать REST API для микросервиса на Java с использованием Spring Framework.

Рассмотрим лучшие практики, принципы архитектуры, реализацию CRUD-операций и удобные инструменты, такие как Lombok, ControllerAdvice, MapStruct. Эта статья будет полезна как начинающим разработчикам, так и тем, кто хочет улучшить свои навыки в проектировании REST API.

Читать далее

Создание REST API с NestJS и TypeORM

Level of difficultyMedium
Reading time10 min
Views2.1K

NestJS — это прогрессивный фреймворк для построения эффективных и масштабируемых серверных приложений на Node.js. Он использует современные возможности JavaScript и TypeScript, вдохновлен архитектурными паттернами Angular и поддерживает модульность, инъекцию зависимостей и другие современные подходы.

TypeORM — это ORM (Object-Relational Mapping) инструмент, который позволяет взаимодействовать с базами данных, используя объекты и классы, что упрощает разработку и поддерживает различные СУБД, такие как PostgreSQL, MySQL, SQLite и другие.

Сочетание NestJS и TypeORM предоставляет мощный инструментарий для разработки REST API, обеспечивая высокую производительность, модульность и удобство поддержки кода.

Читать далее

Хоук ― трекер ошибок в ПО на замену Sentry

Reading time4 min
Views2.1K

Всем привет. Меня зовут Петр, я основатель клуба веб-разработки CodeX. Клуб зародился в ИТМО и сейчас состоит из выпускников и студентов разных университетов. Речь пойдет об одном из наших open source инструментов ― трекере ошибок Хоук. Его релиз состоялся в непростой момент — 22 февраля 2022 года. Вскоре платежная система оказалась недееспособна, и глобальная экспансия провалилась. Но в этом году Хоук снова расправил крылья — сервис пришел на замену мастодонтам, заблокировавшим всех российских пользователей. Расскажу, как мы его развиваем.

Читать далее

Добавление поддержки нескольких языков в NestJS и Angular приложениях

Reading time15 min
Views1K

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

Читать далее

Почему в разработке чат-ботов мы в качестве основы используем Jmix

Level of difficultyEasy
Reading time5 min
Views1.7K

И за шесть лет работы в нашей айти-команде пока не нашли ни одного критичного минуса. Рассказываю как мы пилим чат-ботов на базе Jmix

Читать далее

Прощай, программист? AI уже пишет код лучше тебя

Level of difficultyEasy
Reading time18 min
Views39K

Дмитрий Рожков, менеджер команды Kubernetes-сервисов и создатель популярного YouTube-канала Senior Software Vlogger, поделился своим опытом тестирования AI-ассистентов для программирования. Он рассказал о том, способны ли нейросети заменить программистов, какие подводные камни ждут при работе с AI-помощниками и почему мы до сих пор не видим бума новых приложений, созданных с помощью искусственного интеллекта.

Читать далее

Интеграция TFLite во Flutter: внедряем модели машинного обучения в мобильное приложение

Level of difficultyMedium
Reading time6 min
Views2.4K

Привет! Меня зовут Никита Грибков, я Flutter-разработчик в AGIMA. В этой статье расскажу про фреймворк TensorFlow Lite, который позволяет интегрировать в мобильное приложение модели машинного обучения. Это полезная штука, если нужно реализовать фичи, связанные с распознаванием речи или с классификацией изображений. Покажу, как обучать модели и как затем с ними работать.

Читать далее

Создание простой CRM на Next.js и Prisma для B2B

Level of difficultyMedium
Reading time3 min
Views4.5K

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

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

Ещё до того, как я начал заниматься разработкой, мне пришла идея поучаствовать в создании собственной CRM-системы и глубже погрузиться в процесс её разработки. Спустя несколько лет я начал заниматься веб-разработкой, и в какой-то момент понял, что даже небольшому бизнесу, где я работал, нужна CRM. Я пробовал использовать таблицы в Google Docs, тестировал триальные версии популярных CRM, но они были перегружены ненужной информацией и казались неудобными. Так что я решил создать что-то простое, что будет удобно мне и, возможно, другим.

В своей CRM я использую Next.js. Эта система не претендует на то, чтобы обслуживать тысячи пользователей, но она точно может решить задачи 1-2 небольших отделов продаж. У меня есть репозиторий на GitHub, и если кому-то это решение покажется интересным, его можно взять и доработать под свои задачи. В этой статье я постараюсь кратко описать текущий функционал, с какими трудностями я столкнулся и что удалось внедрить в качестве новых гипотез.

Читать далее

JWT-аутентификация при помощи Spring Boot 3 и Spring Security 6

Level of difficultyMedium
Reading time15 min
Views77K

Переход от базовых приложений к более сложным требует использования Spring Security для обеспечения безопасности. Новая версия, Spring Security 6, изменяет некоторые базовые реализации, а русскоязычных материалов на эту тему очень мало. В этой статье мы рассмотрим JWT-аутентификацию и авторизацию с помощью Spring Boot 3 и Spring Security 6, чтобы помочь начинающем разработчикам разобраться и начать пользоваться базовым функционалом этой библиотеки. Цель данной статьи - показать, как использовать JWT-аутентификацию с API-интерфейсами.

Читать далее

От дизайна к фронтенду: как передать макет в разработку

Reading time6 min
Views1.5K

Привет, Хабр! Меня зовут Света, я — руководитель направления Friflex design. Мы занимаемся разработкой мобильных приложений и веб-сервисов. 

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

Читать далее

Знакомство со Scratch для детей: как установить программу и создать первую игру

Level of difficultyEasy
Reading time7 min
Views11K

Язык программирования Scratch — это относительно молодой язык, который появился в 2007 году как способ обучения детей кодингу. Он прост, интерактивен и доступен для ребят, так как в нем не нужно писать строчки кода, составлять скрипты с тегами и классами, подключать внешние библиотеки. Scratch сравним с детской компьютерной игрой: у вас есть сцена, на которой происходит действие с персонажами. Они могут прыгать, бегать, кидать мяч, гонять на машинках и выполнять любые другие действия. Чтобы создать в Скретч программу, нужно построить её из специальных «кирпичиков» — цветных блоков-операторов. Так, при помощи синих блоков мы перемещаем объект на поле, зеленым блоком проводим все математические действия и настраиваем логику, красным задаем значения переменных и так далее.

Читать далее

Акции, игры и роботы: будущее ритейла, которое уже наступило

Reading time11 min
Views11K

Сегодня мы можем позволить себе веб-страницы, весящие больше, чем оригинальный DOOM, и объём вычислений для их рендера, которого хватило бы для взлома Энигмы. В век технологического изобилия уже не так ценишь байты и флопсы. Единственный по-настоящему ценный ресурс — это люди, и современные разработчики готовы биться за этот ресурс, как Джон Кармак бился за каждый такт процессора.

30 мая прошла конференция X5 Future Night, где более сорока спикеров рассказывали о передовых технологиях ритейла, помогающих привлечь и удержать покупателя, максимизировать его удовлетворение и свою выгоду. Запись всей конференции можно посмотреть на досуге, а в этой статье хотим подсветить несколько технологий, которыми X5 Tech особенно гордится.

Читать далее

Computed сигналы и ChangeDetection — подробный разбор

Level of difficultyMedium
Reading time8 min
Views2.1K

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

Для многих моих коллег сигналы стали чем-то мистическим. С одной стороны, код с ними стал выглядеть элегантнее, с другой была обнаружена проблема с пониманием внутренних механизмов их работы. В частности, загадочно выглядели computed сигналы, в которых в отличие от хуков React не прописываются зависимости напрямую. Также возникали вопросы связанные с детекцией изменений. В отличие от Observable и async pipe, который использует напрямую ChangeDetectorRef, сигналы могут вызываться в шаблоне, вызывая, при этом, его изменения.

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

Читать далее

Полезные и неизвестные библиотеки Java

Level of difficultyEasy
Reading time14 min
Views11K

Из этой статьи вы узнаете о некоторых не очень известных, но полезных библиотеках Java. Это вторая статья из серии «Полезное и неизвестное». Предыдущая описывала несколько привлекательных, но малоизвестных возможностей Java. Подробнее об этом можно прочитать здесь.

Сегодня мы сосредоточимся на библиотеках Java. Обычно мы используем в своих проектах несколько внешних библиотек — даже если не включаем их напрямую. Например, Spring Boot поставляется с определенным набором зависимостей, включенным стартерами. Если мы включаем, например, spring-boot-starter-test, то одновременно мы включаем такие библиотеки, как mockito, junit-jupiter или hamcrest. Конечно, это известные библиотеки для сообщества.

На самом деле существует множество различных Java‑библиотек. Обычно мне не нужно использовать многие из них (или даже они мне не нужны) при работе с такими фреймворками, как Spring Boot или Quarkus.

Однако есть несколько очень интересных библиотек, которые могут пригодиться везде. Возможно, вы не слышали ни об одной из них. Я собираюсь представить 5 моих любимых «полезных и неизвестных» Java‑библиотек. Давай начнем!

Читать далее
1

Information

Rating
Does not participate
Location
Кишинев, Молдова, Молдова
Registered
Activity