LINUX.ORG.RU
ФорумTalks

Еще один забавный случай или...

 , ,


0

1

Еще один забавный случай или:

public function getCurlException()
    {
        if (curl_errno($this->handle)) {
            throw new FooBar_exception(
                'Ошибка curl: ' . curl_error($this->handle)
            );
        }
        else return true;
    }

Эмм.. Что?

Если курл завершил запрос с ошибкой, тогда бросаем исключение.
Если все гут, тогда возвращает тру.
Представляю себе это как-то так:

try {

    if ($fooBar->getCurlException()) {
        // ой, ничего не случилось
    } else {
        // дабл-ой, нас тут уже нет
    }

} catch (FooBar_exception $e) {
    // ...
}

Так зачем там нужен ретурн тру?
Пойду грепну где это дергается...

А, ну точно, копипаста, каждые 20-40 строк в каждом методе повторяется:

$options = array(
    // везде почти одинаковые параметры
);
$this->connection->openCurlRequest();
// метод, судя по названию, должен ставить одну опцию, а ставит несколько
$this->connection->setOption($options);
$html = $this->connection->execute();
$this->connection->getCurlException(); // о, вот она!

Ах, да:

ЛОРовцы, родные!
Ни за что на свете
Не ходите в офис,
ПоХаПе писать!
В ПоХаПе "собаки" (@),
В ПоХаПе нотайсы,
В ПоХаПе большие
Злые копипасты
Будут вас кусать,
Бить и обижать,-
Не ходи ты, ЛОРовец,
ПоХаПе писать.

Метод getCurlException ненужен
А $this->connection->execute(); должен возвращать html или бросать ексепшен в случаи неудачи. Ну и обернуть этот блок в try/catch

П.С. Это твой говнокод или все еще копаешься в примерах в тестовом задании?

kiotoze ★★★★
()

Так зачем там нужен ретурн тру?

В этом случае может и тупость копипаста, а в общем случае может быть корректно. Например, когда эта функция — одна из нескольких возможных. И точка вызова проверяет статус «всё ок».

А уж в ООП такое вообще на каждом шагу. Мало ли, как устроен метод, если при единообразном вызове анализируется результат, метод должен его вернуть. Даже если конкретная эта реализация может вернуть только один вариант.

KRoN73 ★★★★★
()

А, ну да, надо ж спросить чонить..

А как ви считаете, нужно ли рефакторить вот это все, или забить и жить спокойно?

deep-purple ★★★★★
() автор топика
Ответ на: комментарий от kiotoze

Это уже не тестовое, а легаси, чьё-то.

возвращать html или бросать ексепшен в случаи неудачи

Да, я так и подумал сразу почему автор так не сделал сам.

deep-purple ★★★★★
() автор топика
Последнее исправление: deep-purple (всего исправлений: 1)
Ответ на: комментарий от deep-purple

А как ви считаете, нужно ли рефакторить вот это все, или забить и жить спокойно?
А, ну точно, копипаста, каждые 20-40 строк в каждом методе повторяется:

Если проект еще развивается - то нужно. Если только поддержка и баг фикс - то можно оставить.

kiotoze ★★★★
()

ТС, а тебе действительно нужно дёргать страничку сайта и грепать оттуда ссылки «прямщяс»? То есть, может... можно было бы обойтись отложенными заданиями по крону? И найти 100500 других способов реализации, а не pure PHP если он вызывает у тебя такую боль. :)

Spoofing ★★★★★
()

Я подобное делал как «assertSomethingIsOkay»

Когда сама функция не делала ничего, кроме предоставления возможности исключению вылететь

Northsoft ★★
()
Ответ на: комментарий от Spoofing

Я этот легаси не писал. И да, там по крону это и дергается, но есть и ручной запуск. И вообще оно там дохрена чего еще делает. Но я туда не лазию. А вот по поводу других способов — команды не поступало. Как и чем я буду аписнять потраченное время без согласования работ?

deep-purple ★★★★★
() автор топика
Ответ на: комментарий от deep-purple

Ты еще код смарти открой. У меня была задача связанная с правкой исходников смарти, я просто ох##л от этой лапши.

drull ★☆☆☆
()
Ответ на: комментарий от ggrn

Да просто, жизнь — боль. Потому и в толксы.

deep-purple ★★★★★
() автор топика

Чем-таки уже хотел с нами поделиться притащивший сюда ЭТО?

Тем, что пых-пыхером быть менее денежно и престижно, чем даже эникейщиком, но в крупной компании?

Мы это и так знаем.

Bioreactor ★★★★★
()
Ответ на: комментарий от Bioreactor

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

deep-purple ★★★★★
() автор топика
Ответ на: комментарий от deep-purple

Но, вместо того чтобы посмотреть как дядьки делают (это если он не знал, а вообще должен знать, хотябы поверхностно представлять) и какие плюсы в том подходе, он пишет откровенный бред.

Уж лучше тогда делать так: https://packagist.org/search/?q=curl

static_lab ★★★★★
()
Ответ на: комментарий от deep-purple

Я, возможно, буду весьма нетактичным, однако, квалифицированные мотивированные программисты НЕ пойдут работать в маленькую компанию.

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

Вот поэтому и мотивированные студенты учат Java (+ сдают IELTS >= 7.0), а не языки с «низким порогом вхождения».

Bioreactor ★★★★★
()
Последнее исправление: Bioreactor (всего исправлений: 1)
Ответ на: комментарий от Bioreactor

Нет, ты все тактично сказал. Но все не так страшно как ты описал. Стабильность есть. Такой бизнес, что, клиент если находится, а он находится за такой срок, то компания присасывается к его сиське на несколько лет. Но карьерный рост это врядли. Людей тут совсем пшик.

deep-purple ★★★★★
() автор топика
Ответ на: комментарий от deep-purple

Вот поэтому я, как человек переживший перестройку и гайдарономику, предпочитаю работать в крупной компании.

Знания в IT устаревают фактически мгновенно.

Да и «вырасти по зарплате» можно только в финансовом+банковском секторе.

Поэтому из native ДС жителей нынче фактически мало кто идет в IT.

Мода на айтишников была в конце 1980-х .. начале 1990-х.

В основном набор идет из умных молодых людей «из регионов».

Bioreactor ★★★★★
()
Ответ на: комментарий от deep-purple

но я таки туда заглянул и ахнул.

Если это единичные случаи то проект можно считать хорошим :) Бывают проекты где тупо нужно все переписать (объективно), но нельзя, бо кода ооочень много.

goingUp ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.