Welcome to @emacsway’s blog!

Here is a list of most recent posts:

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

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

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

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

  • Jan 04 - Про Anemic Domain Model

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

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

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

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

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

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

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

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

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

  • Aug 13 - О качестве комментариев в интернете

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

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

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

  • Aug 06 - 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.

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

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

  • Jul 26 - 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.

  • Jul 17 - Проектирование Сервисного Слоя

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

  • Jul 17 - Design of Service Layer

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

  • Jul 10 - 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.

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

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

  • Aug 29 - Usefull links

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

  • Aug 21 - Искусство воевать

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

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

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

  • May 21 - About problems of cache invalidation. Cache tagging.

    About my experience of solving problems of cache invalidation and principles of the library cache-dependencies.

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

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

  • Nov 01 - О книге “Refactoring” by M.Fowler

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

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

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

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

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

  • Oct 10 - Why I prefer Storm ORM for Python

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

  • Oct 09 - Emacs autocomplete and Dependency injection (DI)

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