Добавить в корзинуПозвонить
Найти в Дзене

О процедурном подходе в программировании

Привет. Давайте-ка сейчас немного поговорим за процедурный подход в программировании. Думаю, вы как минимум изучали данную методику в институте или как максимум сами используете подобный стиль кодирования.
Поделюсь свои мнением и опытом на это счет. Вдруг, кому-то покажется полезным и интересным. А кому-то вообще, может откроет глаза.
Большинство корпоративных приложений содержат «вспомогательные

Привет. Давайте-ка сейчас немного поговорим за процедурный подход в программировании. Думаю, вы как минимум изучали данную методику в институте или как максимум сами используете подобный стиль кодирования.

Поделюсь свои мнением и опытом на это счет. Вдруг, кому-то покажется полезным и интересным. А кому-то вообще, может откроет глаза.

Большинство корпоративных приложений содержат «вспомогательные классы», также известные как «существительные (noun) агенты» - существительное, обозначающее того, кто выполняет действие.

Обычно такие классы оканчиваются на -er или -or. Таковы правила написания английских слов, что и вошло в привычку так писать название классов. Что в принципе и верно грамматически, ну и сразу дает понять при беглом просмотре кода "что за что отвечает".

Наличие слишком большого количества существительных агентов указывает на то, что разработчики думают процедурами, а не объектами.

Пример 1.

Чтобы читать значения CSV из файла, процедурный программист должен создать имя агента CsvParser с помощью метода parse.

Объектно ориентированный программист создаст класс под названием CsvFile с конструктором, который принимает File и метод content().

Видите разницу между подходами?

Пример 2.

Чтобы отформатировать Money, процедурный программист должен создать агент существительное MoneyFormatter с форматом метода (Money).

ОО-программист создал бы класс FormattedMoney с конструктором, принимающим Money, и методом toString().

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

Даже не знаю, почему так часто встречается именно процедурный подход. Но, думаю, это только потому что при обучении упор делался на понимание принципа программы, в том смысле что она должна работать "здесь и сейчас". А в мире высоких технологий, нужно чтобы программа работала всегда. Надеюсь вы уловили мою метафору.

Если нет, то перечитайте статью еще раз.