Цитата (twin @ 2.11.2014 - 07:02) |
Я не связан канонами. Никто не запрещает локально использовать любую парадигму, в отличие от. |
ни кто не спорит, что вы вольны устраивать мешанину из парадигм в своем коде.
_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
chee
Цитата |
Знаете тут дело не только в боязни поставить баг, в вашем случае, так как править предется много, вероятность поставить его больше. |
Это не так. Все зависит от конкретных условий. Вот к примеру с глазками тебе править придется не один класс. Причем придется сначала добавить класс MoveВlink, потом добавить реализацию в каждый класс животного. Как минимум свойство, если рассматривать наш пример. Он просто сейчас пустой, вот и кажется, что мало работы. Нет, все предется перелопатить. Большинство действующих классов. И вероятность багов совершенно не уменьшается.
Я больше скажу. По опыту, действий обычно требуется намного меньше сущностей. Так что вероятность правки действующего кода у вас выше.
chee
Цитата |
На счет усложнения, ухудщение оптимальности и прозрачности, то это дело субъективное. |
Субъективное, это восприятие. Как и субъективно восприятие ООП, как удобного инструмента. Для меня он адъ и израиль, для тебя аналогично выглядит мой код. Это восприятие.
А оптимальность и прозрачность, как таковые, можно объективно измерить либо вычислить.
Оптимальность сравнивается по потреблению ресурсов и времени работы скрипта.
Прозрачность обратно пропорциональна количеству и прямо пропорционально простоте кода.
Мы как раз и пытаемся сравнить эти параметры.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
Цитата (chee @ 2.11.2014 - 08:05) |
ни кто не спорит, что вы вольны устраивать мешанину из парадигм в своем коде. |
А и не надо, ибо это огромный плюс. Я могу использовать в приложении ваши наработки, вы мои - нет. У кого больше возможностей?

Что бы не спорить скажу. У меня.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
Упс... Что я вижу... Вот оно, и началось. Когда код так расползается, начинаются проблемы.
Цитата |
class AllAction extends AbstractAction {
public function action(\Animal $animal) { $animal->doJump(); if (!($animal instanceof Fish)) { $animal->doVoice(); } $animal->doMoveTail(); }
} |
Это хардкод. А он неминуемо приводит к багам. Вот и всё, дальше рассуждать о прозрачности нет смысла, ты сам запутался в своем коде.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
Цитата (twin @ 2.11.2014 - 12:09) |
Для меня он адъ и израиль, для тебя аналогично выглядит мой код. |
ваш код для меня понятен и довольно логичен, исходя из тех утверждений что вы тут пишите.
Цитата (twin @ 2.11.2014 - 12:09) |
Это не так. Все зависит от конкретных условий. Вот к примеру с глазками править придется не один класс. Причем придется сначала добавить класс MoveВlink, потом добавить реализацию в каждый класс животного. Как минимум свойство, если рассматривать наш пример. Он просто сейчас пустой, вот и кажется, что мало работы. Нет, все предется перелопатить. Большинство действующих классов. И вероятность багов совершенно не уменьшается. |
Да, я там ошибся придется править два класса, извините, то сообщение подправил.
Цитата (twin @ 2.11.2014 - 12:09) |
Оптимальность сравнивается по потреблению ресурсов и времени работы скрипта. Прозрачность обратно пропорциональна количеству и прямо пропорционально простоте кода. |
мы - нет, вы - да. Я сравниваю код по такому понятию, как поддерживаемость (багоустойчивость, расширяемость). Мне приходится работать в команде с проектом с длинным циклом поддержки, поэтому для меня поддерживаемость кода не пустой звук.
_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Цитата (twin @ 2.11.2014 - 12:21) |
Это хардкод. А он неминуемо приводит к багам. Вот и всё, дальше рассуждать о прозрачности нет смысла, ты сам запутался в своем коде. |
Опять вы сделали выводы за меня. Это было там с самого начала, поставленно это там преднамеренно. И принципам ООП не противоречит, так как инкапсуляция.
_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
chee
Цитата |
Да, я там ошибся придется править два класса, извините, то сообщение подправил. |
Не два. В том и дело. Как заставить собаку моргать обоими глазами, кошку левым, а рыбку правым? Сколько теперь?
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
Цитата (chee @ 2.11.2014 - 08:35) |
Цитата (twin @ 2.11.2014 - 12:21) | Это хардкод. А он неминуемо приводит к багам. Вот и всё, дальше рассуждать о прозрачности нет смысла, ты сам запутался в своем коде. |
Опять вы сделали выводы за меня. Это было там с самого начала, поставленно это там преднамеренно. И принципам ООП не противоречит, так как инкапсуляция.
|
Это не инкапсуляция, а хардrод. Давайте так. На одной странице рыба пусть молчит, а на другой разговаривает. Ну золотая. Как быть?
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
twin, если подвести итоги беседы то ваши подходы вполне логичны на текущих примерах и в принципе не сильно отличаются от моих, по качеству и поддерживаемости. Но как уже говорилось выше: ООП нужен не для hello world, а для довольно сложных вещей с кучей сущностей и действий. Я больше чем уверен, что при дальнейшем усложнении системы, ваш код начнет "костылять"
_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
chee
Цитата |
Я больше чем уверен, что при дальнейшем усложнении системы, ваш код начнет "костылять" |
Пока закостылял ваш. Причем на простой. На сложной ООП системе очень часто костылей чуть больше чем полностью.
Давайте попробуем без костылей и исправлений классов сделать условие про рыбок на разных страницах. Тогда и посмотрим.
И я готов потягаться и на сложной системе. Если этот пример кажется слишком простым. Фишка в том, что сложной систему как раз и делает ООП парадигма. Императив многое упрощает. А результат один. При всех внешних преимуществах.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
Цитата (twin @ 2.11.2014 - 12:40) |
Это не инкапсуляция, а хардrод. Давайте так. На одной странице рыба пусть молчит, а на другой разговаривает. Ну золотая. Как быть? |
class AllAction2 extends AbstractAction
{
public function action(\Animal $animal)
{
$animal->doJump();
$animal->doVoice();
$animal->doBlink();
$animal->doMoveTail();
}
}
можно так. а можно провести рефакторинг.
_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Вот и я про то. Всего сотня сторк, а уже рефакторинг потребовался. Либо костыль, как выше. Вобщем по моему все ясно, не стоит продолжать.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
twin, не все решения являются правильными с самого начала. Советую читать почитать,
http://www.ozon.ru/context/detail/id/1308678/.
_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
twin, ну еще, не надо делать каких-то выводов о всем ООП, на основе моего кода. Возможно бы другие программисты, решили эту задачу по другому, не допустив тех оплошностей при проектировании, которые допустил я.
_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
S.Chushkin
2.11.2014 - 13:27
Цитата (chee @ 2.11.2014 - 12:54) |
twin, ну еще, не надо делать каких-то выводов о всем ООП, на основе моего кода. Возможно бы другие программисты, решили эту задачу по другому, не допустив тех оплошностей при проектировании, которые допустил я.  |
Вот именно, - мы все делаем ошибки, увы. IMHO, ООП позволяет меньше делать ошибок.
Например, если условия усложняются: любое может не подавать голос, если оно спит, кроме рыжих кошек. То это решается простым изменением двух классов - Зверушки и Кошки. Больше ничего не трогается, что уменьшает вероятность ошибки по сравнению с правкой в большем количестве мест, я так думаю.
_____________
Рекламка / ad.pesow.com Хрень / mr-1.ru
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.