Posts in Russian
Краткий курс по экономике разработки программного обеспечения
- May 05, 2021
- Dec 02, 2021
- Ivan Zakrevsky
- Russian
- Software Architecture, Management, Agile, Economics
Статья переехала на новый адрес в Distributed Collaborative Knowledge Management System for System Architecture (о проекте).
Список психологических эффектов
- May 04, 2021
- Nov 16, 2021
- Ivan Zakrevsky
- Russian
- Soft Skills, Management, Communication, Career
Статья переехала на новый адрес в Distributed Collaborative Knowledge Management System for System Architecture (о проекте).
Может ли CQRS-команда возвращать результат?
- Apr 02, 2021
- Nov 14, 2021
- Ivan Zakrevsky
- Russian
- DDD, Microservices, Distributed Systems, CQS, CQRS, Functional Programming, OOP
Статья переехала на новый адрес в Distributed Collaborative Knowledge Management System for System Architecture (о проекте).
О гонке сообщений в условиях конкурирующих подписчиков
- Mar 31, 2021
- Nov 16, 2021
- Ivan Zakrevsky
- Russian
- DDD, Microservices, Distributed Systems, EIP
Статья переехала на новый адрес в Distributed Collaborative Knowledge Management System for System Architecture (о проекте).
Domain Events in DDD
- May 05, 2020
- Nov 14, 2021
- Ivan Zakrevsky
- Russian
- DDD, Model
Статья переехала на новый адрес в Distributed Collaborative Knowledge Management System for System Architecture (о проекте).
Список литературы для самообучения разработчика программного обеспечения
- Oct 11, 2019
- Nov 23, 2021
- Ivan Zakrevsky
- Russian
- Software Architecture, DDD, Clean Architecture, Clean Code, Event-Driven, Microservices, CQRS, Event Sourcing, Extreme Programming, TDD, XP, Refactoring, Programming, Software Construction, Career
Статья переехала на новый адрес в Distributed Collaborative Knowledge Management System for System Architecture (о проекте).
TDD - Разработка через тестирование
- Sep 30, 2019
- Jan 01, 2022
- Ivan Zakrevsky
- Russian
- TDD, Refactoring, Clean Code, Software Architecture, XP, Extreme Programming
Статья переехала на новый адрес в Distributed Collaborative Knowledge Management System for System Architecture (о проекте).
Роль сервисного слоя в CQRS и Event Sourcing на примере использования Redux в Angular
- Sep 16, 2018
- Ivan Zakrevsky
- Russian
- Software Design, Software Architecture, Service Layer, Angular, Redux, Flux, JavaScript, Model, CQRS, Event Sourcing
Нужно ли скрывать посредством Сервисного Слоя обращения к реализациям CQRS и Event Sourcing? Периодически мне попадаются примеры и неуверенная аргументация о том, что лучше - скрывать. Однако, когда вопрос мог коснуться меня лично, я решил во всем разобраться сам.
Про Agile на пальцах. Путь к быстрой разработке.
- Sep 15, 2018
- Nov 15, 2019
- Ivan Zakrevsky
- Russian
- Agile, XP, Scrum, Extreme Programming, Refactoring, Software Architecture
Я уже писал “на тему Agile-разработки шпаргалку”, более чем наполовину состоящую из цитат выдающихся архитекторов. Проблема в том, что она ориентирована на осведомленных людей (как правило, на менеджеров и архитекторов), и малопонятна тем, кто сталкивается с этим впервые. Поэтому я решил написать упрощенную версию своими словами. Вы не сможете использовать фрагменты этой статьи для аргументации перед заказчиком, так как она не содержит цитат праотцов архитекторы, но я надеюсь, что она будет легче для понимания ключевых моментов экономики разработки программного обеспечения.
Про Anemic Domain Model
- Jan 04, 2018
- Jul 29, 2022
- Ivan Zakrevsky
- Russian
- ORM, DataMapper, DB, SQL, Model, DDD, Repository
Время от времени в кругу моих знакомых регулярно поднимается вопрос о том, что Anemic Domain Model - никакой вовсе и не антипаттерн, и в качестве аргументов приводятся ссылки на статью “The Anaemic Domain Model is no Anti-Pattern, it’s a SOLID design” [1]. После очередного упоминания этой статьи я решил об этом написать.
Django Framework и Божественный Объект
- Jan 02, 2018
- Ivan Zakrevsky
- Russian
- Django
Божественные Объекты - распространенное явление для Django приложений, поэтому рассмотрим этот вопрос более детально.
Знакомство с Docker для Django-проекта
- Dec 23, 2017
- Jan 13, 2018
- Ivan Zakrevsky
- Russian
- Docker
При начале работы с Docker стоит обратить внимание на ряд моментов, которые освещены слабо даже в официальной документации, не говоря уже про многочисленные блог-посты.
О проблемах подбора персонала в IT-индустрии
- Dec 15, 2017
- Dec 23, 2017
- Ivan Zakrevsky
- Russian
- HR, Hiring
В разное время мне приходилось как наниматься на работу, так и принимать непосредственное участие в собеседовании кандидатов. Некоторые наблюдаемые мной явления имеют систематический характер проявлений, и я постараюсь их обобщить.
Реализация паттерна Repository в браузерном JavaScript
- Aug 06, 2017
- Nov 16, 2019
- Ivan Zakrevsky
- Russian
- Repository, ORM, JavaScript, Model, DDD
Хорошая архитектура освобождает Вас от привязки к конкретной реализации. Она позволяет Вам отложить момент принятия решения о реализации, и начать конструирование кода еще не имея этого решения. Принципиально важным моментом является то, что Вы обретаете возможность принять решение в момент наибольшей информированности, а также всегда можете легко подменить конкретную реализацию на любую другую. Вот эта обязанность возложена на паттерн Repository.
О моем опыте использования Django Framework
- Jul 26, 2017
- May 16, 2018
- Ivan Zakrevsky
- Russian
- Django, ORM, Python, Django Model
Django framework для Python позволяет быстро решать огромный спектр задач и легко находить исполнителей. При грамотном подходе, можно использовать все преимущества Django и не стать заложником ее недостатков.
Проектирование Сервисного Слоя и Логики Приложения
- Jul 17, 2017
- Oct 12, 2019
- Ivan Zakrevsky
- Russian
- Software Design, Software Architecture, ORM, Django Model, Service Layer, Redux, Flux, Model, CQRS, Event Sourcing
Эта статья посвящена вопросам управления Логикой Приложения и проектированию Сервисного Слоя (Service Layer), Use Case, CQRS, Event Sourcing, MVC и др.
Как добавить новые операторы для Python выражений
- Sep 08, 2016
- Ivan Zakrevsky
- Russian
- DB, SQL, Python
Библиотека sqlbuilder использует перегрузку операторов языка программирования Python для создания критериев выборки, что позволяет транслировать операторы языка программирования в операторы SQL.
К сожалению, Python поддерживает не так много операторов, как PostgreSQL, например, таких операторов как @>
, &>
, -|-
, @-@
и т.д.
Искусство воевать
- Aug 21, 2016
- Ivan Zakrevsky
- Russian
- Programming, Software Construction
Читая книгу «Code Complete» Steve McConnell, я обнаружил интересное сходство с военным искусством.
О проблемах инвалидации кэша. Тегирование кэша.
- May 21, 2016
- Nov 10, 2016
- Ivan Zakrevsky
- Russian
- Cache
О моем опыте решения проблем инвалидации кэша, и о принципах работы библиотеки cache-dependencies.
Построение Raw-SQL cредствами Storm-ORM
- Dec 08, 2015
- Ivan Zakrevsky
- Russian
- ORM, Storm ORM, DataMapper, DB, SQL, Python
Возникло у меня желание попробовать построить чистый, сырой запрос (Raw-SQL) с помощью storm.expr для одного самописного специфического маппера, сочетающего в себе паттерны Single Table Inheritance и Entity Attribute Value.
О книге "Refactoring" by M.Fowler
- Nov 01, 2015
- Ivan Zakrevsky
- Russian
- Python, Refactoring, Fowler
Хочу ответить на уже ставший популярным вопрос, нужно ли читать «Refactoring: Improving the Design of Existing Code» [1] если уже прочитал «Clean Code: A Handbook of Agile Software Craftsmanship» [4]?
Аргументы-флаги
- Oct 22, 2015
- Ivan Zakrevsky
- Russian
- Python, Programming, Software Construction
В главе “Flag Arguments” известной книги «Clean Code. A Handbook of Agile Software Craftsmanship.», Robert C. Martin советует не использовать аргументов-флагов, справедливо замечая, что это свидетельствует о том, что функция делает более одной операции.
Почему я выбираю Storm ORM для Python
- Oct 10, 2015
- Jul 31, 2017
- Ivan Zakrevsky
- Russian
- ORM, Storm ORM, DataMapper, DB, SQL, Python, Django Model, Model, DDD
В промышленных решениях на Python я чаще стал использовать KISS-style Storm ORM, и здесь я попытаюсь объяснить почему.
Emacs autocomplete and Dependency injection (DI)
- Oct 09, 2015
- Nov 29, 2016
- Ivan Zakrevsky
- Russian
- Emacs, Dependency Injection, Autocomplete, Python
В пассивных классах, которым зависимости внедряет программа, возникают трудности с автокомплитом в emacs с elpy-mode.