За последние 24 часа нас посетили 34826 программистов и 1753 робота. Сейчас ищут 878 программистов ...

Наткнулся на очень интересную статью.

Тема в разделе "Прочие вопросы по PHP", создана пользователем mpak, 28 июн 2011.

  1. mpak

    mpak Активный пользователь

    С нами с:
    30 окт 2006
    Сообщения:
    440
    Симпатии:
    0
    Общая суть статьи у меня давно плавает на поверхности. Но обьяснить ни себе ни окружающим почему мне не нравится ООП я не мог.
    Автор статьи сделал это очень понятно и доходчиво. Предлагаю обсудить.

    http://www.vb-net.ru/asp2/36/index.htm

    На всякие разместил на свой сайт http://mpak.su/pages/649
    Под последними словами автора подпишусь кровью.

    Я думал что я один такой кто не любит ООП.
    Если не сложно возле своего ответа указывайте свой опыт в программировании.

    Мои первые программы были написаны для ZX-Spectrum примерно 95 году

    И поправьте наконец регулярные выражения на форуме чтобы неанглийские домены нормально посвечивались. Говорил уже с год назад. Но ничего не изменилось с тех пор. http://ОткрытыйМагазин.РФ Или здесь нет программистов?
     
  2. Ensiferum

    Ensiferum Активный пользователь

    С нами с:
    11 июл 2010
    Сообщения:
    1.292
    Симпатии:
    0
    Адрес:
    из секты поклонников Нео
    хрень какая-то. Мне удобно, буду пользоваться. Достоинства и недостатки есть абсолютно у всего. Нужно свою голову на плечах иметь
     
  3. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    чисто хаяние MS политики

    опять же, относится к компилируемым языкам. ООП тут не при чём

    то же, что и первое

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

    ЛПП

    хорошо спроектированный проект легко расширяется и модифицируется

    не нравится готовое? - пиши своё

    у кого как

    ясно видно, пункт 1 - хаяние студии и подхода, используемого MS:
    я думал, что тут обсуждается программирование...

    и ещё раз "при чём тут ооп?!". то, что студия реализует это "по-другому" - так это студия.

    согласен, однако не в данном контексте:
    относится к продуктам, выпускаемым студией. при чём тут ооп ?


    Вывод: думаю, что к названию статьи Недостатки обьектно-ориентированного программирования в WEB нужно обязательно дописать с использованием MS VISUAL STUDIO .NET
     
  4. YSandro

    YSandro Старожил

    С нами с:
    7 апр 2011
    Сообщения:
    2.523
    Симпатии:
    2
    Да там всё про MS.
    При этом в заголовке ответа страницы
    Код (Text):
    1. Server: Microsoft-IIS/7.0
    2. X-Powered-By: ASP.NET
    Автор просто: 1) не осилил ООП, 2) есть жертва своей же наивности, просто обижен, 3) рубит сук, на котором сидит - это не умно.
     
  5. Volt(220)

    Volt(220) Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    1.640
    Симпатии:
    1
    Это справедливо для любой библиотеки, будь то библиотека классов или функций. ООП не причем.
    Точно так же как фреймворк сделанный на PHP3 должен работать на сайте с PHP5.3. =)
    Вопрос опять не в ООП, а в компиляции. Скомпилировать можно и не классы.
    Не используйте MS. В чем проблема?
    А Eclipse и NetBeans вообще бесплатны, если мне память не изменяет.
    И чо?
    А так же на ассемблере.
    При написании, возможно, и то не факт.
    Да ну?!
    Что значит отладить хорошо сконструированный набор классов и хитрожопый набор функций. Используйте документацию.
    Сложным можно сделать все что угодно. Правда ООП-программу проще сделать сложной.
    Тупо больше работы.
    Не-а. При хорошем наборе классов на помощь приходит абстракция.
    То же с библиотекой функций.
    Да ладно? А в чем разница?
    Ага! Т.е. при ООП надо писать программу, а линейные текстовые скрипты можно говнокодить. Я понял.
    А что ООП не позволяет?
    Закрытый функционал функций - аналогично.
    При нынешних мощностях? Профилируйте. Оптимизируйте. Оно безусловно медленнее, но медленное ли оно?
    А ви таки видели какие там объекты в перле? Ооо какие там объекты... =)
    Совсем без оснований? А как же абстракция, инкапсуляция?
    До hrena! Текст, интернет, Web-сервер, протокол...
    Что в PHP нет ООП ?????!!! =))
    Никто не сказал. Как удобнее, так и делают.
    Na hrena. У меня и так все под IIS пашет. Правда на PHP.
    Примерно так у меня и происходит.
    Да ладно?!!!
    Да? А мне казалось там нечто вроде С, Java, С++. И если С, вроде как не имеет ООП, то остальные вполне себе.
    А на чем нынче сидит web?
    Не компилируйте!
    Ну вы определитесь, вам статику и ручками или динамику и база. Конечно, придется либо в базу лазить либо админку писать.
    Откройте для себя шаблонизатор и шаблоны.
    Именно! А ООП обычно более читаемо, чем функции (конечно, если речь идет о чем-то более менее серьезном).
     
  6. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    хз, без ООП тяжеловато что-то серьезное реализовывать.
    Например систему складского учета - слабо представляю в процедурном виде...

    А статья не более чем демагогия)
     
  7. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Мои первые программы были написаны на ZX-Spectrum в 99 году.
    Но чёрт возьми, главный ООП фетиш - C++ - появился в 1983!
    Да ладно, .NET - это капля в море, возьмите ООП из C++ или Java или (!!!) PHP
    Что такое вообще New? Это результат неспособности разработчиков сделать тру-ооп. В большинстве ООП-языков КАЖДАЯ переменная - объект, без всякого new.
    просто порвало

    аффтар зациклился на MS

    Если было бы меньше гадости, из статьи получилась бы неплохая ржака, а так - какая-то фигня
     
  8. Ensiferum

    Ensiferum Активный пользователь

    С нами с:
    11 июл 2010
    Сообщения:
    1.292
    Симпатии:
    0
    Адрес:
    из секты поклонников Нео
    до
    не дочитал. А щас посмеялсо. Автору бы ещё брейнфак оценить
     
  9. Psih

    Psih Активный пользователь
    Команда форума Модератор

    С нами с:
    28 дек 2006
    Сообщения:
    2.678
    Симпатии:
    6
    Адрес:
    Рига, Латвия
    У меня есть знакомый коллега по цеху, который тоже очень долго не понимал сути ООП и объяснить как-то не получалось.
    Вылечился очень просто - попробовал реализовать MVC движок на процедурном методе и OOP. Все вопросы отпали сами собой.
     
  10. alexey_baranov

    alexey_baranov Активный пользователь

    С нами с:
    3 фев 2009
    Сообщения:
    647
    Симпатии:
    0
    Адрес:
    Сургут
    По-моему, ту статью писал ламер с зашкаливающим самомнением.

    Чего еще обсуждать?
     
  11. nislova

    nislova Активный пользователь

    С нами с:
    8 май 2011
    Сообщения:
    56
    Симпатии:
    0
    ООП - гоуно. На асме нормально и без типов программили.

    Чего еще обсуждать?
     
  12. ihappy

    ihappy Активный пользователь

    С нами с:
    15 июл 2011
    Сообщения:
    5
    Симпатии:
    0
    Насчет отладки он все таки прав.
     
  13. Easy

    Easy Активный пользователь

    С нами с:
    15 июл 2011
    Сообщения:
    286
    Симпатии:
    0
    Что обсуждать? Прочтите пункт
    10. Топовые по распространенности языки не имеет ООП-примочек.
    и поймите что там даже обсуждать нечего.
    с каких пор HTML или XML - это языки программирования? А если Вы скажете что автор там не пишет что HTML это язык программирования а пишет что это просто язык, так какого тогда писать что в нём нет ООП?

    Писал бы автор той статьи хорошие ли мониторы фирмы сони, он бы написал что они говно, так как на них нельзя полететь в Египет?
     
  14. Easy

    Easy Активный пользователь

    С нами с:
    15 июл 2011
    Сообщения:
    286
    Симпатии:
    0
    В ООП при отладке можно сомтреть стек вызовов, можно видеть что откуда было вызвано перед тем как рухнул скрипт, знаете художник тоже скажет что самолёт построить трудно, а авиоинженер скажет что портрет нарисовать сложнее. И кто же из них прав?
     
  15. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Автор просто не слышал про исключения
     
  16. Vladson

    Vladson Старожил

    С нами с:
    4 фев 2006
    Сообщения:
    4.040
    Симпатии:
    26
    Адрес:
    Estonia, Tallinn
    Автор во многом прав.

    Перлы про язык HTML и.т.д. это просто мелочь которую он ляпнул для ламеров. Это как взрывы машин в фильмах, не каждая машина взорвётся если ей из пистолета пробить лобовое стекло, но без этого фильмы не такие зрелищные.

    Офтоп.
    Мои первые программы были написаны на ZX-Spectrum в 88-89 году.
     
  17. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Один фиг ООП старше и можно было уже тогда изучать)
     
  18. Vladson

    Vladson Старожил

    С нами с:
    4 фев 2006
    Сообщения:
    4.040
    Симпатии:
    26
    Адрес:
    Estonia, Tallinn
    На русском языке литературы не было вообще, на английском достать было сложнее чем жигули купить... (это после развала союза уже книги стали появляться и переводиться, а до этого фигу)
     
  19. ihappy

    ihappy Активный пользователь

    С нами с:
    15 июл 2011
    Сообщения:
    5
    Симпатии:
    0
    Easy
    Это все верно, кроме того что не отменяет, тот пункт что отладка сложней. Особенно если код чужой. Легче реально свой написать.
     
  20. Easy

    Easy Активный пользователь

    С нами с:
    15 июл 2011
    Сообщения:
    286
    Симпатии:
    0
    Когда хорошо написано с использованием ООП, то тоже не сложно отладкой заниматься, по крайней мере мне нравится :)
    Когда я ещё не знал что такое Зенд фреймворк, я сталкнулся с сайтом написанном на на зенд. Так я смог разобраться как исправить модуль в течении нескольких минут. Так как всё структурировано и легко найти.
    Нет, я не спорю что в процедурном программировании тоже можно раскинуть по файлам, по папкам, по функциям, но! а чемм это будет по сути отличатся от ООП? только тем что это без объектов? Но сам смысл тот же самый. Что бы трудно было отладить или что то добавить можно и в ооп и без написать код, в котором не разобратся :)
    А использовать ООП или нет дело личное, если человек хорошо владеет ооп, то пусть пользуется если он привык к процедурам, то он быстрей сделает на процедурах.
     
  21. Easy

    Easy Активный пользователь

    С нами с:
    15 июл 2011
    Сообщения:
    286
    Симпатии:
    0
    PHP:
    1. <?php
    2. $Congig = array(
    3.     'set' => function ($name, $val) use (&$Config) {
    4.         $Config['vars'][$name] = $val;
    5.     },
    6.    
    7.     'get' => function ($name) use (&$Config) {
    8.         return isset($Config['vars'][$name]) ? $Config['vars'][$name] : null;
    9.     },
    10.    
    11.     'vars' => array()
    12. );
    13.  
    14. $Congig['set']('db_name', 'test');
    15. echo $Congig['get']('db_name');
    16. ?>
    Чем не процедурное ооп? :D
     
  22. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Речь идет не о том, где ООП и процедурный ситиль сходятся.
    А о специфике ООП: полиморфизм, приватные/защищенные члены, статика, и вытекающие отсюда паттерны.
    ИМХО веб-программирование давно ушло от простой обработки гипертекста, поэтому полноценные языки программирования необходимы.
     
  23. Easy

    Easy Активный пользователь

    С нами с:
    15 июл 2011
    Сообщения:
    286
    Симпатии:
    0
    я раньше не понимал, зачем придумали интерфейсы? потом когда написал небольшой фреймвок, я понял, очень хорошая штука, что бы на этапе программирования не забыть что обязательно должно быть тут вот то то.
    всё что придумано, всем можно пользоваться, главное понять зачем :)

    имхо, ооп лучше для полностью написания сайта, если нужно написать один скриптик, например есть сайт, вас попросили добавить скрипт обратной связи, зачем там ооп?)

    это очередной холивар. что лучше, виндовс или линукс, фф или хром, интел или амд, джифорс или радеон?
    у каждой стороны есть люди, многие из которых даже плюсов не могут привести нормальных почему лучше именно то, за что они, но это не значит что кто то из них прав.
     
  24. Vladson

    Vladson Старожил

    С нами с:
    4 фев 2006
    Сообщения:
    4.040
    Симпатии:
    26
    Адрес:
    Estonia, Tallinn
    Вот с этим я больше всего не согласен.

    99% веб студий клепают сайты визитки класса 90-ых, ООП там только как писк моды, а в силу непонимания ООП быдло-кодерами которые в этих студиях работаеют, сайты получаются дырявым хламом. Сделай они в привычном для себя стиле, качество продуктов выросло бы очень и очень сильно.

    Реально сайты за гранью элементарщины не заказываются у студий "васи пупкина", там набирается отдельная команда из опытных спецов.
     
  25. Easy

    Easy Активный пользователь

    С нами с:
    15 июл 2011
    Сообщения:
    286
    Симпатии:
    0
    ну тут смотря о каких дырах говорить :)
    Я бы сказал что ооп с одной стороны даже поможет защитить сайт от некоторых дыр начинающих программистов, хотя бы тем, что если код расскинут по классам, то уже не будет таких дыр как подмена какой либо переменной путём передачи её в гет параметре, например
    процедурный код
    PHP:
    1. $summa += ...
    при определённой настройки пхп вызвав скрипт index.php?summa=-100
    можно подделать значение переменной.
    а если это в классе
    PHP:
    1. class myclass
    2. {
    3.     funnction claculate() {
    4.         $summa += ...
    5.     }
    6. }
    этого не произойдёт.
    я не говорю о том что нужно инициализировать переменную сумма = 0, речь как раз о том что будет если этого не сделать, без сомнения можно написать что можно поместить это в функцию, но разговор о том что если написать код просто в странице или внутри класса.

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

    например в моём фреймворке вообще перед запуском модуля идёт проверка прав юзера, а каждый модуль содержит ИД группы, и если ИД группы меньше то модуль просто не запустится. то есть если у модуля admin уровень 10 то пока юзер не авторизуется и не будет уровня 10 страницы http://site/admin/... вообще не запустятся, тем самым не нужно в каждую страницу отдельно вставлять проверки. Так что ООП подход можно легко использовать как раз в плюс к безопасности :)

    хотя если человек плохо знает ооп, он скорей всего может перемешивать подходы и сделать дыр где угодно :)