как не плодить код?

Духовность™

Продвинутый новичок
как не плодить код?

PHP:
class test ...

function foo1()
{
    // логика присущая данному методу

    // логика

    // логика присущая данному методу
}

function foo2()
{
    // логика присущая данному методу

    // логика

    // логика присущая данному методу
}
тут "логика" - пара-тройка десятков однотипных строк, которые ещё будут расти.. как можно красиво вынести их для предотвращения копипаста? Может в отдельный метод "логику" вынести? Или нужно ли это выносить? Что можно придумать? Может гоуту как-то? Или че ещё язык умеет?
 

dimagolov

Новичок
чем приватный метод смущает? вроде исходя из всех теорий его нужно выделять в этом случае.
 

soines

Новичок
какой goto.. Вынеси их в отдельный метод, так будет гораздо удобнее.
 

Духовность™

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

почему в php нельзя сделать так: code = {/* логика */}

и написать в теле: code
 

craz

Нестандартное звание
мона так сделать) подключением файла.

а вначале файла слезно извиниться перед последующими программистами которые будут обслуживать код,
PHP:
 /*мол так и так у меня два метода делают одно и тоже но 
я не смог из них сделать один и поэтому повторяющиеся строки 
подключаю из файла еще раз сорь и если встретите сильно не бейте*/
 

soines

Новичок
Автор оригинала: triumvirat
Эх..
отдельный метод должен быть отдельным методом, для конкретных действий. А выносить повторяющийся код в методы - это, ИМХО, говнокодство.

почему в php нельзя сделать так: code = {/* логика */}

и написать в теле: code
Может и вообще ООП - говнокодство? А зачем тогда ты пишешь классы и методы? Копи-пасть код каждый раз когда хочешь вызвать какой-нибудь метод.

inline функций в php нету, извиняй. А вообще чем по сути это будет отличаться от того же метода
что
PHP:
private function code() 
{
...
}
...
$this->code();
-~{}~ 03.06.10 00:34:

Автор оригинала: craz
мона так сделать) подключением файла.
Ну это совсем извращение) одно дело конфиги так тянуть, а другое - логику)
 

craz

Нестандартное звание
Ну это совсем извращение) одно дело конфиги так тянуть, а другое - логику)
а не извращением вы считаете что метода два а куски повторяются в них? может это один метод в таком случае? просто входные переменные надо фильтровать и логику строить внутри метода, а не плодить искусственных конструкций...
 

Духовность™

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

-~{}~ 03.06.10 00:40:

может это один метод в таком случае? просто входные переменные надо фильтровать и логику строить внутри метода
О! точно!
 

soines

Новичок
triumvirat, подожди. Ты сам в первом посте написал, что код у тебя в двух методах повторяется? или нет?
craz, без самого кода, не зная что там внутри этих методов говорить сложно.. может и извращение..
Но ИМХО неправильно в метод вставлять какой-то код инклюдом... как-бы не ООП-шно получается.
 

fixxxer

К.О.
Партнер клуба
тут конечно можно обсудить AOP, но ТС все равно ни хрена не поймет.
 

Духовность™

Продвинутый новичок
гы, как ни странно, совет craz помог. слил все в один метод, все круто получилось гггыгг
 

craz

Нестандартное звание
Автор оригинала: soines
triumvirat, подожди. Ты сам в первом посте написал, что код у тебя в двух методах повторяется? или нет?
craz, без самого кода, не зная что там внутри этих методов говорить сложно.. может и извращение..
Но ИМХО неправильно в метод вставлять какой-то код инклюдом... как-бы не ООП-шно получается.
инклудить - это пример мегаговнокода(и никогда не будет при таком подходе "как-бы не ООП-шно получается"), иногда гиперболы помогают понять суть...


З.ы. опять же в шутку, надо темку замутить "как перестать гавнокодить и стать столяром/маляром/заправщиком на АЗС" - к ТС некоем случаем не относиться, это просто реально будет интересная темка...
 
Сверху