Posts in Russian

Краткий курс по экономике разработки программного обеспечения

Статья переехала на новый адрес в Distributed Collaborative Knowledge Management System for System Architecture (о проекте).

Read more ...


Список психологических эффектов

Статья переехала на новый адрес в Distributed Collaborative Knowledge Management System for System Architecture (о проекте).

Read more ...


Может ли CQRS-команда возвращать результат?

Статья переехала на новый адрес в Distributed Collaborative Knowledge Management System for System Architecture (о проекте).

Read more ...


О гонке сообщений в условиях конкурирующих подписчиков

Статья переехала на новый адрес в Distributed Collaborative Knowledge Management System for System Architecture (о проекте).

Read more ...


Domain Events in DDD

Статья переехала на новый адрес в Distributed Collaborative Knowledge Management System for System Architecture (о проекте).

Read more ...


TDD - Разработка через тестирование

Статья переехала на новый адрес в Distributed Collaborative Knowledge Management System for System Architecture (о проекте).

Read more ...


Роль сервисного слоя в CQRS и Event Sourcing на примере использования Redux в Angular

Нужно ли скрывать посредством Сервисного Слоя обращения к реализациям CQRS и Event Sourcing? Периодически мне попадаются примеры и неуверенная аргументация о том, что лучше - скрывать. Однако, когда вопрос мог коснуться меня лично, я решил во всем разобраться сам.

Read more ...


Про Agile на пальцах. Путь к быстрой разработке.

Я уже писал “на тему Agile-разработки шпаргалку”, более чем наполовину состоящую из цитат выдающихся архитекторов. Проблема в том, что она ориентирована на осведомленных людей (как правило, на менеджеров и архитекторов), и малопонятна тем, кто сталкивается с этим впервые. Поэтому я решил написать упрощенную версию своими словами. Вы не сможете использовать фрагменты этой статьи для аргументации перед заказчиком, так как она не содержит цитат праотцов архитекторы, но я надеюсь, что она будет легче для понимания ключевых моментов экономики разработки программного обеспечения.

Read more ...


Про Anemic Domain Model

Время от времени в кругу моих знакомых регулярно поднимается вопрос о том, что Anemic Domain Model - никакой вовсе и не антипаттерн, и в качестве аргументов приводятся ссылки на статью “The Anaemic Domain Model is no Anti-Pattern, it’s a SOLID design” [1]. После очередного упоминания этой статьи я решил об этом написать.

Read more ...


Django Framework и Божественный Объект

Божественные Объекты - распространенное явление для Django приложений, поэтому рассмотрим этот вопрос более детально.

Read more ...


Знакомство с Docker для Django-проекта

При начале работы с Docker стоит обратить внимание на ряд моментов, которые освещены слабо даже в официальной документации, не говоря уже про многочисленные блог-посты.

Read more ...


О проблемах подбора персонала в IT-индустрии

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

Read more ...


Реализация паттерна Repository в браузерном JavaScript

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

Read more ...


О моем опыте использования Django Framework

Django framework для Python позволяет быстро решать огромный спектр задач и легко находить исполнителей. При грамотном подходе, можно использовать все преимущества Django и не стать заложником ее недостатков.

Read more ...


Проектирование Сервисного Слоя и Логики Приложения

Эта статья посвящена вопросам управления Логикой Приложения и проектированию Сервисного Слоя (Service Layer), Use Case, CQRS, Event Sourcing, MVC и др.

Read more ...


Как добавить новые операторы для Python выражений

Библиотека sqlbuilder использует перегрузку операторов языка программирования Python для создания критериев выборки, что позволяет транслировать операторы языка программирования в операторы SQL. К сожалению, Python поддерживает не так много операторов, как PostgreSQL, например, таких операторов как @>, &>, -|-, @-@ и т.д.

Read more ...


Искусство воевать

Читая книгу «Code Complete» Steve McConnell, я обнаружил интересное сходство с военным искусством.

Read more ...


О проблемах инвалидации кэша. Тегирование кэша.

О моем опыте решения проблем инвалидации кэша, и о принципах работы библиотеки cache-dependencies.

Read more ...


Построение Raw-SQL cредствами Storm-ORM

Возникло у меня желание попробовать построить чистый, сырой запрос (Raw-SQL) с помощью storm.expr для одного самописного специфического маппера, сочетающего в себе паттерны Single Table Inheritance и Entity Attribute Value.

Read more ...


О книге "Refactoring" by M.Fowler

Хочу ответить на уже ставший популярным вопрос, нужно ли читать «Refactoring: Improving the Design of Existing Code» [1] если уже прочитал «Clean Code: A Handbook of Agile Software Craftsmanship» [4]?

Read more ...


Аргументы-флаги

В главе “Flag Arguments” известной книги «Clean Code. A Handbook of Agile Software Craftsmanship.», Robert C. Martin советует не использовать аргументов-флагов, справедливо замечая, что это свидетельствует о том, что функция делает более одной операции.

Read more ...


Почему я выбираю Storm ORM для Python

В промышленных решениях на Python я чаще стал использовать KISS-style Storm ORM, и здесь я попытаюсь объяснить почему.

Read more ...


Emacs autocomplete and Dependency injection (DI)

В пассивных классах, которым зависимости внедряет программа, возникают трудности с автокомплитом в emacs с elpy-mode.

Read more ...