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

C#Deep8.05_Site.png

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

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

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

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

ProdOwnerDeep_4.05_Site.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С-инструменты, мы можем поднимать и деполитизировать окружения с необходимыми версиями приложений по кнопке. Но ряд приложений помимо изменений кода требуют изменения структуры данных или самих данных в БД. Работать с ручным выполнением миграций в рамках процесса непрерывной поставки неэффективно.

ScopeGuard: одним велосипедом стало меньше

С++Deep2Site.png Все, кто хоть раз восхищался нововведениями стандарта C++11 (давно это было, но восхищаться можно бесконечно), знают о существовании интеллектуальных указателей, которые позволяют не беспокоиться о корректной очистке памяти.

Как поверить в непредвзятость тестов?

Тесты, на которые я ответил, окончены с оценкой "B", как поверить в то, что это не предвзятая оценка с целью заманить меня на курсы? Хотелось бы видеть как минимум: а) статистику по количеству правильных ответов (не даёт никаких гарантий всё равно), б) темы, которые необходимо подтянуть по мнению авторов теста.