Обновить
733.59
OTUS
Развиваем технологии, обучая их создателей
Сначала показывать

Git для новичков: ветки, коммиты и первый pull request

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

Git — это вызов, через который проходит каждый второй новичок в разработке. Ветки называются «asdasd», коммиты — «правки», а pull request пугает своей красной кнопкой. Знакомо?

Меня зовут Сергей Прощаев, я Tech Lead в FinTech и преподаватель на курсах в OTUS. В этой статье разбираем самое главное: как создавать ветки и почему их нельзя называть как попало, что писать в коммитах, как сделать pull request в лучших практиках команд разработки

Разобраться в Git

Работаем с контейнерами в C++ с помощью библиотеки Ranges

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

Понятие контейнер сейчас активно применяется в контексте Docker и аналогичных решений по контейнеризации. Однако, в языке C++ контейнеры существуют уже очень давно и являются фундаментальной частью Standard Template Library (STL). Они предоставляют готовые реализации наиболее часто используемых структур данных, избавляя разработчика от необходимости писать их с нуля.

Контейнеры C++ можно разделить на несколько основных категорий. Последовательные контейнеры (Sequence Containers) хранят элементы в линейной последовательности, при этом порядок элементов определяется позицией добавления. Ассоциативные контейнеры (Associative Containers) автоматически сортируют элементы по ключу. При этом, они обеспечивают достаточно быстрый поиск (O(log n)). Неупорядоченные ассоциативные контейнеры (Unordered Associative Containers) хранят элементы в хеш-таблицах. Обеспечивают поиск в среднем за O(1). Адаптеры контейнеров (Container Adapters) предоставляют ограниченный интерфейс поверх других контейнеров.

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

Читать далее

Инженерия среды для агентов: использование Codex в мире с приоритетом агентов

Уровень сложностиСредний
Время на прочтение14 мин
Охват и читатели4.8K

Что происходит с инженерной практикой, когда код в проекте пишет не человек, а агент, а команда занимается средой, ограничениями и контурами проверки? В этом тексте — разбор реального эксперимента OpenAI, где внутренний продукт собирали через Codex почти без ручного кода: с собственными правилами для агентов, архитектурными инвариантами, наблюдаемостью, документацией внутри репозитория и постепенным ростом автономности. Это любопытный взгляд на разработку в режиме, где главным дефицитом становится уже не скорость написания кода, а человеческое внимание.

Читать далее

Как можно внедрять, но не внедрить DevOps

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели7.2K

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

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

Читать далее

Domain-Driven Design: полный гайд по моделированию домена в 2026 году

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

Моделирование домена — это не про UML-диаграммы и не про красивые ER-модели. Это про то, как перестать тратить месяцы на переписывание кода и начать говорить с бизнесом на одном языке. В статье — разбор DDD без воды: Ubiquitous Language, Bounded Context, тактические паттерны (Entities, Value Objects, Aggregates) и реальный пример кода на Java. Заходите — будет практично!

Разобрать DDD

Повторный вход в акторы в Swift

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

Акторы в Swift решают проблему гонок данных. Cам по себе актор гарантирует, что к его состоянию обращается только одна задача одновременно. Никаких мьютексов, семафоров, очередей — компилятор сам следит.

Звучит неплохо. Но есть подвох, и он называется повторный вход (reentrancy). Актор защищает от одновременного доступа, но не защищает от того, что состояние изменится между двумя вашими обращениями к нему.

Читать далее

Пора переезжать на локальные LLM. Или нет?

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

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

Что если переход на локальную инфраструктуру (вроде Ollama) это решение, которое не просто поможет сэкономить, но изменит саму динамику разработки?

Читать далее

Управляемые блокировки в 1С

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

Управляемые блокировки в 1С. Механизм выглядит простым (объект БлокировкаДанных, три метода — добавить, установить значение, заблокировать), а на практике поведение отличается от ожидаемого настолько, что в типовых конфигурациях до сих пор находят ошибки, связанные с блокировками.

Читать далее

Advisory locks в PostgreSQL: распределённая блокировка без Redis, которая у вас уже есть

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

В PostgreSQL есть фича, про которую знают далеко не все, хотя она существует с незапамятных времён. Advisory locks — пользовательские блокировки, которыми управляет не БД, а ваше приложение. PostgreSQL только хранит их состояние и разруливает конкуренцию. А вы решаете, что именно заблокировать и когда отпустить.

Зачем это нужно? Вы строите распределённую систему, несколько инстансов приложения работают с одной базой, и вам нужно гарантировать, что определённую операцию выполняет только один инстанс одновременно. Классический ответ — Redis с SETNX или Consul/ZooKeeper. Но если у вас уже есть PostgreSQL — зачем тащить ещё одну зависимость?

Читать далее

Кто такой продакт‑менеджер? И почему ответ на этот вопрос почти всегда неправильный

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

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

Так кто же это такой? Давайте разберемся в этом вопросе подробнее.

Читать далее

Как ускорить создание реплики PostgreSQL: pgBackRest вместо pg_basebackup

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

Создать реплику PostgreSQL на базе в 1 TiB — задача, где быстро выясняется, что NVMe и сеть в 75 Гбит/с сами по себе ничего не гарантируют: упираешься в инструмент, который копирует данные в один поток. В статье разбираемся, как обойти этот потолок с помощью pgBackRest и параллельной передачи, какие настройки реально влияют на скорость, где легко потерять порядок величины на «мелочи» вроде хранилища под spool, и почему в PostgreSQL 18 внезапно стало лучше — но недостаточно.

Открыть статью

Java для автотестов: первые шаги с нуля

Время на прочтение8 мин
Охват и читатели10K

Статья к открытому уроку курса QA Automation Engineer про начало разработки тестов на языке Java которая погружает в основы синтаксиса.

Читать далее

Darts: библиотека для временных рядов

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели9.3K

В Python хватает инструментов для работы с временными рядами, но обычно приходится жонглировать тремя-четырьмя пакетами с разными API. Darts — библиотека, которая собирает всё в одном месте: статистические модели, градиентный бустинг, нейросети — и работает по знакомой схеме fit() / predict(). Сегодня разберём её подробно: что умеет, где удобна, как использовать в задачах.

Читать далее

Внутри Intel 1405: фото кристалла памяти на регистре сдвига (1970)

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

В 1970 году 512 бит памяти были инженерным компромиссом, а ожидание «своего» бита — нормальной частью работы системы. В этой статье — разбор микросхемы Intel 1405 с фотографиями кристалла, вскрытого вручную, и подробным анализом того, как устроен регистр сдвига на уровне транзисторов и поликремниевых дорожек. Заодно посмотрим, почему такая память оказывалась дешевле статического ОЗУ, как она применялась в Datapoint 2200 и зачем для неё понадобился отдельный мощный драйвер тактовых сигналов. Это взгляд внутрь эпохи, когда архитектурные решения буквально были видны под микроскопом.

Заглянуть внутрь

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

delegatecall в Solidity

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

Если вы пишете на Solidity больше полугода, вы наверняка уже сталкивались с прокси-контрактами. Если нет — сталкивались, просто не знали об этом: почти каждый серьёзный протокол на EVM использует какой-нибудь прокси-паттерн. Uniswap, Aave, OpenSea — все они. А в основе всех прокси лежит один опкод — DELEGATECALL.

Читать далее

Установка Java за 5 минут: JDK 21 или 25 — что выбрать новичку в 2026 году

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели8.7K

Уже вышла Java 25 — самая свежая версия, которую все хотят попробовать. Но ставить ли её новичку? Или взять проверенную Java 21 LTS? В этом гайде — пошаговая установка Java на Windows с картинками, разбор различий между версиями, настройка JAVA_HOME и PATH ориентирован для начинающих разработчиков, изучающих Java

Читать далее

Kotlin для новичков: от установки IDE до первого проекта

Время на прочтение6 мин
Охват и читатели8.3K

Kotlin уже не просто язык для Android. В 2026 году на нём пишут бэкенд, кроссплатформенные приложения и даже заменяют Java. Почему команды уходят с Java на Kotlin, как новичку начать и при чём тут Kotlin Multiplatform? Разбираемся и пишем «Hello, World!» с Gradle. Бонус: пример кода и ссылка на репозиторий.

Читать далее

Коллекции в Java: алгоритмическая сложность и как не тормозить код

Время на прочтение7 мин
Охват и читатели6.4K

Как выбрать коллекцию в Java, чтобы код летал? Разбираем алгоритмическую сложность (Big O) самых популярных структур: ArrayList, LinkedList, HashSet, HashMap. В конце — схемы выбора и лучшие практики от команд. Сохраняйте, чтобы не забыть!

Читать далее

Протокол кольцевой защиты сети ERPS

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

Существует несколько различных протоколов, предназначенных для обеспечения бесперебойной работы сети на канальном уровне. Сегодня мы рассмотрим Ethernet Ring Protection Switching – технологию, обеспечивающую высокую доступность и отказоустойчивость в кольцевых топологиях.

Разобрать ERPS

Асинхронная архитектура на CQRS: гайд по внедрению в 2026 году

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

Монолит тормозит, бизнес требует новых отчётов, а каждая правка ломает всё вокруг? Знакомо! В этой статье рассматриваются примеры внедрения CQRS и Event Sourcing. разбираются практики разделения команд и запросов, построение асинхронной архитектуры на Kafka. Под катом — код, Mermaid-схемы и best practices, которые реально работают.

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

Информация

Сайт
otus.ru
Дата регистрации
Дата основания
Численность
101–200 человек
Местоположение
Россия
Представитель
OTUS