Информация об изменениях

Сообщение Re[11]: Проектирование, переписывание, прокрастинация :) от 23.08.2021 9:15

Изменено 23.08.2021 9:22 bnk

Re[11]: Проектирование, переписывание, прокрастинация :)
Здравствуйте, Евгений Музыченко, Вы писали:

bnk>>для этого есть область видимости. Ну public/private в смысле


ЕМ>Это само собой. Я про то, что в святцах рекомендуется стремиться к независимости любой функции, а наличие особых условий, в которых она может быть вызвана, объявлено моветоном.


Если смотреть не на мантру, а для чего она была придумана, то это обретает смысл — независимую функцию легче протестировать.

В общем надо сначала согласиться с какой-то базовой системой аксиом, типа "чем раньше находится ошибка — тем дешевле ее починить".
Не думаю что с этим кто-то будет спорить, или?

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

В общем должна быть какая-то высшая цель в том, чтобы делать функции независимыми.
Если бы полностью независимые функции были на самом деле сильно удобнее, вложенные функции или лямбды например не стали бы так популярны.
Re[11]: Проектирование, переписывание, прокрастинация :)
Здравствуйте, Евгений Музыченко, Вы писали:

bnk>>для этого есть область видимости. Ну public/private в смысле


ЕМ>Это само собой. Я про то, что в святцах рекомендуется стремиться к независимости любой функции, а наличие особых условий, в которых она может быть вызвана, объявлено моветоном.


Если смотреть не на мантру, а для чего она была придумана, то это обретает смысл — независимую функцию легче протестировать.

В общем надо сначала согласиться с какой-то базовой системой аксиом, типа "чем раньше находится ошибка — тем дешевле ее починить".
Не думаю что с этим кто-то будет спорить, или?

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

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

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