Посты | OTUS
Версионирование данных БД в рамках процесса непрерывной поставки. Часть 2

DevOpsDeep11.05_Site.png В первой части мы обсудили проблемы, которые решаются с помощью IaС-инструментов. Определив задачи и результаты их решения, в этой заметке я хотел бы рассказать о том, как можно управлять миграциями с помощью liquibase. Есть два способа: 1. Описывать и запускать их при помощи CLI liquibase в процессе деплоя; 2. Описывать миграции вместе с кодом приложений и запускать их применение во время запуска приложений.

Зачем нужен этот блог?

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

Что здесь можно найти?

-кто за что отвечает в OTUS, к кому бежать по каким-то вопросам

-обновления и инструкции по работе с преподавательской, с элементами сайта, с сервисами

Старый добрый ADO.NET

C#Deep8.05_Site.png

При проектировании корпоративного приложения возникает вопрос:

«Как правильно организовать систему работы с БД?»

В современных учебниках программирования рассматривается зачастую один вариант – ORM (EF, NHibernate и т.д.). И практически совсем не упоминается ADO.NET.

4 в 1: мифическая роль Product Owner

Product_Deep_6.4-5020-c05c5a.png

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

Рендеринг полигональных моделей с помощью Helix Toolkit

C#Deep_4.05_Site.png

Каким образом формируются 3D-модели, отображаемые пользователю?

Всё очень просто! Как нам известно из компьютерной графики, любая 3D-модель, отображаемая компьютером, представляет из себя в упрощённом случае набор из вершин и граней, которые образуют треугольники (Triangle). Таким образом, например, реализован формат ply.

Как программист ошибку искал

C++Deep3.04Site.png

Один день из жизни команды разработчиков

«Слипы в коде – это очень и очень плохо!» – разорялся программист Вася на совещании. «Согласен, но давай пока так оставим?» – робко парировал его коллега Антон. «Лааадно, ты прав. Так действительно проще.» – нехотя согласился Вася.
Куда делись «Кнопки на миллион долларов»?

UXUIDeep5_Site_27.04.png

Недавно я решил вслух задать миру вопрос «Куда делись кнопки на 300 миллионов долларов?». И даже заготовил свой ответ:

«Теперь в мире проектирования и разработки всё настолько хорошо, что кнопки сильно подешевели.»

Null, Nil и пустота

Как мы можем представить программно «ничего»? Например, когда метод ожидает на вход объект, но его нет, а вызов происходит. В программах всё должно быть чётко и понятно, там нельзя сказать «Извините, ничего не пришло». В языках программирования отсутствие значения – тоже значение! Это означает, что мы можем сравнивать данные с этим «ничем», чтобы проверить: нам на вход был подан объект или подано его отсутствие. Objective C в этом плане не является исключением, так давайте рассмотрим это подробнее.

Версионирование данных БД в рамках процесса непрерывной поставки. Часть 1

DevOpsDeep3Site.png

Используя IaС-инструменты, мы можем поднимать и деполитизировать окружения с необходимыми версиями приложений по кнопке. Но ряд приложений помимо изменений кода требуют изменения структуры данных или самих данных в БД. Работать с ручным выполнением миграций в рамках процесса непрерывной поставки неэффективно.