Паттерны проектирования в Dart. Часть 1

В этой статье мы рассмотрим примеры реализации самых часто используемых основных и порождающих шаблонов на языке Dart. Будем использовать возможности наиболее актуальной версии Dart 2.17. Читать


Паттерны проектирования в Dart. Часть 2

Во второй части поговорим о структурных шаблонах и о их реализации с использованием синтаксических конструкций языка Dart и возможностей стандартной библиотеки. Мы будем стараться исключать возможности, предоставляемые такими сущностями языка как символы и рефлексия (пакет dart:mirrors), поскольку они не поддерживаются во Flutter (но обозначим возможные их применения при использовании Dart для бэкэнда), предпочитая использовать кодогенерацию во всех ситуациях, где это возможно. Читать


Паттерны проектирования в Dart. Часть 3

Основой поведенческих шаблонов является идея разделения ответственности и добавление абстракций для упрощения расширения и модификации сложной системы и, в действительности, все современные подходы к управлению состоянием приложения (через потоки событий, подписку на изменение объектов состояния, однонаправленные потоки данных) являются разновидностями реализаций поведенческих шаблонов. Разберемся с ними подробнее и посмотрим, как возможности языка Dart могут использоваться для их реализации в реальных приложениях. Часть 3


Инженерный подход к тестированию алгоритмов: исследовательский анализ рабочего процесса. Часть 1

Недавно я стал участником дискуссии о том, что значит «тестировать алгоритм», или же что значит «заниматься разработкой тестов для алгоритмов». Увы, я не смог сразу сформулировать для себя убедительного определения. В этой статье я попытаюсь проанализировать и протестировать два алгоритма и посмотреть, куда это меня приведет. Начну я с более классических алгоритмов, в которых входные и выходные данные, и их отношения четко определены. Читать


Инженерный подход к тестированию алгоритмов: исследовательский анализ рабочего процесса. Часть 2

Во второй части рассмотрим алгоритмы, основанные на машинном обучении, где определение правильных результатов не столь четкое. Читать продолжение