A PHP Error was encountered

Severity: Notice

Message: Trying to get property of non-object

Filename: models/model_blog.php

Line Number: 181

A PHP Error was encountered

Severity: Notice

Message: Trying to get property of non-object

Filename: models/model_blog.php

Line Number: 183

о функциях (программистское) | Yablor.ru

о функциях (программистское)

топ 100 блогов avva05.01.2010 Эта запись будет интересна только программистам.

Предлагаю вопрос о том, как обустраивать код. Представьте себе, что у вас есть функция foo() (неважно, на каком языке; может, это метод, а не функция - неважно), вся работа которой - вызвать какие-то другие четыре функции A(), B(), C(), D(), которые расположены в других файлах и которые и делают всю основную работу. foo() должна приготовить для них аргументы, передать результаты работы A() в B(), и так далее. Логика foo() выглядит очень просто:

1. Вызвать A().
2. Вызвать B().
3. Вызвать C().
4. Если результат, который вернула C, интересный (условие на одну строчку), вызвать D().

Каждый из этих пунктов занимает где-то 5-10 строк: кроме самого вызова, из-за того, что он готовит правильные аргументы, проверяет, что функция вернула, плюс комментарий, плюс в нескольких местах пишет что-то в лог - в общем, всякие мелочи, но накапливается. Общий размер функции foo() - 40 строк.

Есыь предложение разбить функцию foo(), выделив каждый из логических кусков в отдельную функцию - скажем, doA(), doB() итд. - чтобы foo() только их вызывала. Противник этого преедложения говорит, что на данный момент нет никаких оснований считать, что кому-то еще понадобиться вызывать doA(), doB() итд., кроме foo(). Кроме того, тестировать отдельно doA(), doB() итд. тоже не надо - у главных функций A(), B() итд. есть свои тесты, и у foo() будет свой тест. С другой стороны, сторонник этого предложения, соглашаясь с этим, говорит, что все равно foo() слишком длинна, и что раз есть возможность выделить ее части в отдельные функции, правильным будет сделать этот рефакторинг. После него код будет читабельнее, понятнее, и удобнее для поддержки.

Как вы считаете? И какие аргументы выдвинули бы в поддержку своей точки зрения?

Оставить комментарий

Архив записей в блогах:
Эндрю Карне́ги зарабатывал сумасшедшие деньги и очень быстро стал мультимиллионер ом. У Правительства возникли подозрения, что он занимается чем-то незаконным и была сформирована комиссия из членов конгресса. Но проверка не обнаружила ничего подозрительного. И тогда они спросили ...
Фото дня-взгляд на Покровский монастырь. В Москве у Покровской заставы, на Таганской улице, 58 стоит Свято-Покровский женский ставропигиальный монастырь, обладающий интереснейшей историей. Ставропигиальный – значит независимый от местной епархиальной власти, подчиненный непосредственно ...
Китайский пятилетний план: Общий вид Одним из самых значимых экономических событий ушедшего года стало принятие в середине марта 13-го пятилетнего плана КНР. Конечно, современные китайские пятилетние планы - это вовсе не то, что было в СССР, закончившем своё существование как раз ...
Ибо тут мало кто из гуманитариев знает(с) про степень развития интернета в Туле на современном этапе развития , да и чо они могут знать про пушку системы Гатлинга характеристики которой, несмотря на более чем 40-летний срок службы, остаются уникальными. . Так, есле тока языки ...
И продолжаю следить за событиями в Молдавии и ее маленькой, но ставшей сейчас едва ли не единственным реальным очагом сопротивления власти Санду и Ко -- Гагаузии Так вот, там накануне избранная новой главой автономии Евгений Гуцул обвинила гагаузский парламент в препятствовании ее ...