Как избежать побочных эффектов в сложном коде

Как избежать побочных эффектов в сложном коде
Как избежать побочных эффектов в сложном коде - halyzia @ Unsplash

Не существует серебряной пули для решения вашей проблемы.

Это не значит, что ее нельзя решить, хотя "решить" - это, вероятно, неправильный термин. ИМХО, лучше сказать "ею можно управлять", поскольку существует не одно решение, а лишь набор техник и практик, которые может применить ваша команда.

Не претендуя на исчерпывающую полноту:

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

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

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

  • Ваша команда должна накопить определенный опыт в функциональном программировании, неизменяемых структурах данных и таких методах, как map-reduce.

Это все, что пришло мне в голову прямо сейчас, возможно, я упустил несколько вещей, но я думаю, вы уловили общую идею - вашей команде нужен набор инструментов, а не только "одно кольцо, чтобы управлять ими всеми".

Прикрепляю к посту несколько видео по теме:

Прикрепленное видео 1 - Все о стероидах - Первый курс, ошибки, эффект от фармы и неудачный опыт

Прикрепленное видео 2 - Применение кветиапина при бессоннице: побочные эффекты и осложнения

Прикрепленное видео 3 - Иванов Е.В. - Побочные эффекты лекарственных средств


LetsCodeIt, 1 марта 2023 г., 00:42