Posts by Ivan Zakrevsky

О проекте Medplus

Проект Medplus.ru - один из лучших проектов в моей практике с точки зрения вопросов проектирования, архитектуры, и организации процесса разработки (Agile), в котором мне, к тому же, довелось играть первую техническую роль. Команда была создана людьми, которые стояли в свое время у истоков таких известных проектов как ok.ru и sravni.ru. В этом посте я постараюсь говорить популярным языком, чтобы мои слова были понятны не только техническим специалистам.

Read more ...


Про Anemic Domain Model

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

Read more ...


Понимание Redux и Flux для ООП программистов

На тему Redux / Flux много написано в интернете, но в основном все описания сводятся к тому, “как” они делают непонятно “что”, а главное - непонятно “зачем”. Я постараюсь изложить свое видение этого вопроса, возможно, оно окажется более понятным для ООП-программистов.

Read more ...


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

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

Read more ...


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

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

Read more ...


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

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

Read more ...


О качестве комментариев в интернете

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

Read more ...


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

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

Read more ...


Implementation of Repository pattern for browser's JavaScript

Good architecture makes you free from certain implementation. It allows you to postpone the moment of decision on implementation and begin code construction even without the decision. The most important point is that you gain the opportunity to make a decision at the time of the greatest awareness, and you can also easily replace a specific implementation with any other. This responsibility is assigned to the Repository.

Read more ...


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

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

Read more ...


About my experience of using Django Framework

Django framework by Python allows you to quickly solve a huge range of tasks and easily find developers. With a competent approach, you can use all the advantages of Django and not become a hostage of its shortcomings.

Read more ...


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

Эта статья посвящена вопросам проeктирования Сервисного Слоя (Service Layer) и рассматривает широко распространенные ошибки.

Read more ...


Design of Service Layer

This article is devoted to the issues of designing Service Layer and considers the widespread mistakes.

Read more ...


How to quickly develop high-quality code. Team work.

This article is about how to write high-quality code quickly. This article focuses mainly on architects and managers, so there’s a lot of quotes of famous architects.

Read more ...


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

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

Read more ...


Usefull links

Here is the list of articles and sites that I find interesting. This page is regularly updated.

Read more ...


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

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

Read more ...


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

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

Read more ...


About problems of cache invalidation. Cache tagging.

About my experience of solving problems of cache invalidation and principles of the library 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 ...


Why I prefer Storm ORM for Python

I began using KISS-style Storm ORM for enterprise applications on Python, let me explain why.

Read more ...


Emacs autocomplete and Dependency injection (DI)

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

Read more ...