SoftCraft
разноликое программирование

Яндекс.Метрика

SOLID и процедурно-параметрическое программирование

© 2026
Александр Легалов


Содержание


IT IS A GOOD DAY TO DIE

Warcraft 2: Beyond the Dark Portal.
Код непобедимости

Введение

Кто только ни писал статьи и ни снимал видео о SOLID, ни рассказывал об этих принципах в курсах по разработке программного обеспечения. Различные перепевы, опирающиеся на книги Роберта Мартина [mr2004Мартин Р. Быстрая разработка программ: принципы, примеры, практика. – М.: Издательский дом “Вильямс”, 2004. – 752 с., mr2011Мартин Р., Мартин М. Принципы, паттерны и методики гибкой разработки на языке C#. – СПб.: Символ-Плюс, 2011. – 768 с., mr2017Роберт С. Мартин. Гибкая разработка программ на Java и C++: принципы, паттерны и методики. М.: Вильямс, 2017.] многократно поясняют азы их использования в ООП с применением различных языков программирования. Появление иных методов динамического полиморфизма, в Go и в Rust привело к использованию этих принципов с применением другой техники. В этом нет ничего особенного так как сам дядюшка Боб тоже отошел от уровня кода и ОО парадигмы, перейдя к более общему отображению на чистую архитектуру, оставаясь, правда, в большинстве случаев на уровне тех же тривиальных ОО примеров [mr2018Мартин Р. Чистая архитектура. Искусство разработки программного обеспечения. — СПб.: Питер, 2018. — 352 с.].

Дядюшка Боб

Даже в своих первых книгах он писал о том, что следование SOLID не всегда должно сопровождаться использованию только ООП, так как зачастую это ведет к раздутому коду. Поэтому допускалось применение и других методов кодирования, что по сути сводилось к мультипарадигменному стилю. В ходе Чистых архитектурных изысканий эта мысль была сформулирована на уровне модулей еще конкретнее. Продекларировано, что SOLID является универсальной таблеткой, излечивающей от всех микробов и вирусов любых парадигм программирования [mr2018Мартин Р. Чистая архитектура. Искусство разработки программного обеспечения. — СПб.: Питер, 2018. — 352 с.]. В связи с этим становится интересным, каким образом данные принципы могут быть поддержаны с использованием процедурно-параметрической парадигмы программирования (4П).

4П поддерживает динамический полиморфизм и позволяет гибко формировать как модульную структуру программы так и безболезненно расширять данные и функции, обеспечивающие их обработку. Применяемые при этом технические приемы являются простыми и легко могут быть реализованы во вновь создаваемых или расширяемых языках процедурного и функционального программирования. Примером подобного расширения является наш язык PPC [ppcЛегалов А.И., Косов П.В. Процедурно-параметрическое расширение языка программирования C. Синтаксис и семантика - 2024-2025.], на котором уже реализовано много примеров, демонстрирующих гибкость процедурно-параметрического (ПП) подхода по сравнению с ООП и процедурным программированием [evoЛегалов А.И. Динамический полиморфизм и эволюция. - 2026.]. Не могу сказать, что впервые обращаюсь к этому вопросу. Уже было видео, записанное в рамках учебного семинара [al-solidЛегалов А.И. Принципы SOLID и процедурно-параметрическое программирование. Видео на rutube.]. Но хотелось бы зафиксировать ряд дополнительных соображений непосредственно в тексте.

Начнем, однако...

Щас спою...

Содержание