Pull to refresh
4
0
Ogra @Ogra

Пользователь

Send message
Слишком длинная цепочка. Товарищ выше правильно заметил — штрафовать человека, читавшего книгу в исправном робомобиле не за что.
Как вариант — вводить обязательную страховку для владельцев робомобилей. Очевидно, что для более безопасных машин будут предлагаться пониже страховые выплаты, что и будет конкурентным преимуществом на рынке.
Я, кажется, пересчитывал этот пример с учетом инфляции, и получил не очень большую разницу. Но она все-таки была.
Скорость реакции и углы обзора у такой машинки в разы лучше, чем у человека.
Да и регистратор в неё ставить не надо ;)
Я в отпуске-то код писать начинаю, от того, что скучно становится. Так что и на пенсии буду писать =)
Засесть за какой-нибудь Open Source проект, развивать его, ездить по конференциям.
Красиво. Выложите, пожалуйста, свою модификацию куда-нибудь.
Иногда это все допустимо. Только ситхи возводят все в абсолют!

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

Падать вместо попытики исправиться — это иногда совершенно корректная обработка ошибок ;) Особенно во время разработки.
Посмотрел. Понравилось. Поставил. Не понравилось.
Остаюсь на Droid Sans Mono.
Вы считаете себя хорошим программистом?
Да какая там у него магия-то, низкоуровневая =) Не буду сейчас искать цитату, но Йэннифер неплохо так прошлась по магии ведьмаков =)
В C++, например. В PHP, насколько я помню, еще нет перегрузки операторов, так что до С++ еще расти и расти =)
Так это ООП.
Вопрос в том, понял ли автор, что он написал статью сам про себя? Возгордился и попал в сети темной стороны Силы =)
Должно быть либо $userModel->register($user), либо $user->register()
Все, достаточно. А то, что в топике — классический такой говнокод =)
если дальше раширять приложение, то гораздо уробнее и приятнее расширять его если приложение было грамотно спроектировано

ППКС, как говорится. Только ООП тут ни при чем — при любом подходе возможны хорошие и плохие проекты.

если же подходить к вопросу в процедурном стиле, то я не представляю как реализовать это.

Не представляете? Наверное, мало работали в процедурном стиле?
Функциональщину я даже не рассматриваю — её преимущества не объяснить в комментариях, особенно ярым адептам ООП.
Хорошего способа — нет. Т.е. можно сделать ООП код без ООП конструкций языка (суть ООП не в ключевых словах, а в полиморфизме, наследовании), но с ними проще и понятнее. Там где действительно нужен полиморфизм — уходить в процедурщину я не советую.
А вот это уже полиморфизм — и это сильная сторона ООП =)

Способ, конечно же, есть:
foreach($modifiedObjects as &$object)
{
      if ($object['validate']($object))
      {
          $object['save']($object);
      }
      else
      {
          $objectsWithErrors []= $object;
      }
}

В таком подходе есть один серьезный плюс — легко менять методы «на лету», создавая объекты, не привязанные к классам.
Но, смотрится это плохо, да и IDE не сможет подхватить эти функции. Это магия Си, её не нужно использовать в языках с развитым ООП.
Если `_load` сплошь одинаковые, то никто не мешает написать одну функцию — `load`
load('user', $userId);
load('category', $categoryId);
load('foo', $fooId);


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

// Этот код выполнится, но когда где-нибудь потом всплывет ошибка, будет очень тяжело её локализовать
$user['age'] = -5;

// А вот этот код может отреагировать на неверное значение: ассертом, исключением, кодом возврата или же просто не изменив состояние объекта.
$user->setAge(-5);
можем изменить данные и вызвать метод save объекта $user и сохранить запись в таблице, можем провести вализацию

user_save($user);
user_validate($user);

В чем проблема? Где костыли?

Процедурный стиль, ООП стиль, функциональный стиль — это лишь инструменты. И не в выборе инструментов дело. А вот то, как эти инструменты используются и отличает программиста от кодера. Если вы не в курсе, то Линус пишет на С, а не на С++, и прекрасно обходится без статических фабрик.

Information

Rating
5,080-th
Location
Томск, Томская обл., Россия
Date of birth
Registered
Activity