Общая суть статьи у меня давно плавает на поверхности. Но обьяснить ни себе ни окружающим почему мне не нравится ООП я не мог. Автор статьи сделал это очень понятно и доходчиво. Предлагаю обсудить. http://www.vb-net.ru/asp2/36/index.htm На всякие разместил на свой сайт http://mpak.su/pages/649 Под последними словами автора подпишусь кровью. Я думал что я один такой кто не любит ООП. Если не сложно возле своего ответа указывайте свой опыт в программировании. Мои первые программы были написаны для ZX-Spectrum примерно 95 году И поправьте наконец регулярные выражения на форуме чтобы неанглийские домены нормально посвечивались. Говорил уже с год назад. Но ничего не изменилось с тех пор. http://ОткрытыйМагазин.РФ Или здесь нет программистов?
хрень какая-то. Мне удобно, буду пользоваться. Достоинства и недостатки есть абсолютно у всего. Нужно свою голову на плечах иметь
чисто хаяние MS политики опять же, относится к компилируемым языкам. ООП тут не при чём то же, что и первое думаю, что это так, НО больше относится к студии и его программированию. опять же пункт 1 ЛПП хорошо спроектированный проект легко расширяется и модифицируется не нравится готовое? - пиши своё у кого как ясно видно, пункт 1 - хаяние студии и подхода, используемого MS: я думал, что тут обсуждается программирование... и ещё раз "при чём тут ооп?!". то, что студия реализует это "по-другому" - так это студия. согласен, однако не в данном контексте: относится к продуктам, выпускаемым студией. при чём тут ооп ? Вывод: думаю, что к названию статьи Недостатки обьектно-ориентированного программирования в WEB нужно обязательно дописать с использованием MS VISUAL STUDIO .NET
Да там всё про MS. При этом в заголовке ответа страницы Код (Text): Server: Microsoft-IIS/7.0 X-Powered-By: ASP.NET Автор просто: 1) не осилил ООП, 2) есть жертва своей же наивности, просто обижен, 3) рубит сук, на котором сидит - это не умно.
Это справедливо для любой библиотеки, будь то библиотека классов или функций. ООП не причем. Точно так же как фреймворк сделанный на PHP3 должен работать на сайте с PHP5.3. =) Вопрос опять не в ООП, а в компиляции. Скомпилировать можно и не классы. Не используйте MS. В чем проблема? А Eclipse и NetBeans вообще бесплатны, если мне память не изменяет. И чо? А так же на ассемблере. При написании, возможно, и то не факт. Да ну?! Что значит отладить хорошо сконструированный набор классов и хитрожопый набор функций. Используйте документацию. Сложным можно сделать все что угодно. Правда ООП-программу проще сделать сложной. Тупо больше работы. Не-а. При хорошем наборе классов на помощь приходит абстракция. То же с библиотекой функций. Да ладно? А в чем разница? Ага! Т.е. при ООП надо писать программу, а линейные текстовые скрипты можно говнокодить. Я понял. А что ООП не позволяет? Закрытый функционал функций - аналогично. При нынешних мощностях? Профилируйте. Оптимизируйте. Оно безусловно медленнее, но медленное ли оно? А ви таки видели какие там объекты в перле? Ооо какие там объекты... =) Совсем без оснований? А как же абстракция, инкапсуляция? До hrena! Текст, интернет, Web-сервер, протокол... Что в PHP нет ООП ?????!!! =)) Никто не сказал. Как удобнее, так и делают. Na hrena. У меня и так все под IIS пашет. Правда на PHP. Примерно так у меня и происходит. Да ладно?!!! Да? А мне казалось там нечто вроде С, Java, С++. И если С, вроде как не имеет ООП, то остальные вполне себе. А на чем нынче сидит web? Не компилируйте! Ну вы определитесь, вам статику и ручками или динамику и база. Конечно, придется либо в базу лазить либо админку писать. Откройте для себя шаблонизатор и шаблоны. Именно! А ООП обычно более читаемо, чем функции (конечно, если речь идет о чем-то более менее серьезном).
хз, без ООП тяжеловато что-то серьезное реализовывать. Например систему складского учета - слабо представляю в процедурном виде... А статья не более чем демагогия)
Мои первые программы были написаны на ZX-Spectrum в 99 году. Но чёрт возьми, главный ООП фетиш - C++ - появился в 1983! Да ладно, .NET - это капля в море, возьмите ООП из C++ или Java или (!!!) PHP Что такое вообще New? Это результат неспособности разработчиков сделать тру-ооп. В большинстве ООП-языков КАЖДАЯ переменная - объект, без всякого new. просто порвало аффтар зациклился на MS Если было бы меньше гадости, из статьи получилась бы неплохая ржака, а так - какая-то фигня
У меня есть знакомый коллега по цеху, который тоже очень долго не понимал сути ООП и объяснить как-то не получалось. Вылечился очень просто - попробовал реализовать MVC движок на процедурном методе и OOP. Все вопросы отпали сами собой.
Что обсуждать? Прочтите пункт 10. Топовые по распространенности языки не имеет ООП-примочек. и поймите что там даже обсуждать нечего. с каких пор HTML или XML - это языки программирования? А если Вы скажете что автор там не пишет что HTML это язык программирования а пишет что это просто язык, так какого тогда писать что в нём нет ООП? Писал бы автор той статьи хорошие ли мониторы фирмы сони, он бы написал что они говно, так как на них нельзя полететь в Египет?
В ООП при отладке можно сомтреть стек вызовов, можно видеть что откуда было вызвано перед тем как рухнул скрипт, знаете художник тоже скажет что самолёт построить трудно, а авиоинженер скажет что портрет нарисовать сложнее. И кто же из них прав?
Автор во многом прав. Перлы про язык HTML и.т.д. это просто мелочь которую он ляпнул для ламеров. Это как взрывы машин в фильмах, не каждая машина взорвётся если ей из пистолета пробить лобовое стекло, но без этого фильмы не такие зрелищные. Офтоп. Мои первые программы были написаны на ZX-Spectrum в 88-89 году.
На русском языке литературы не было вообще, на английском достать было сложнее чем жигули купить... (это после развала союза уже книги стали появляться и переводиться, а до этого фигу)
Easy Это все верно, кроме того что не отменяет, тот пункт что отладка сложней. Особенно если код чужой. Легче реально свой написать.
Когда хорошо написано с использованием ООП, то тоже не сложно отладкой заниматься, по крайней мере мне нравится Когда я ещё не знал что такое Зенд фреймворк, я сталкнулся с сайтом написанном на на зенд. Так я смог разобраться как исправить модуль в течении нескольких минут. Так как всё структурировано и легко найти. Нет, я не спорю что в процедурном программировании тоже можно раскинуть по файлам, по папкам, по функциям, но! а чемм это будет по сути отличатся от ООП? только тем что это без объектов? Но сам смысл тот же самый. Что бы трудно было отладить или что то добавить можно и в ооп и без написать код, в котором не разобратся А использовать ООП или нет дело личное, если человек хорошо владеет ооп, то пусть пользуется если он привык к процедурам, то он быстрей сделает на процедурах.
PHP: <?php $Congig = array( 'set' => function ($name, $val) use (&$Config) { $Config['vars'][$name] = $val; }, 'get' => function ($name) use (&$Config) { return isset($Config['vars'][$name]) ? $Config['vars'][$name] : null; }, 'vars' => array() ); $Congig['set']('db_name', 'test'); echo $Congig['get']('db_name'); ?> Чем не процедурное ооп?
Речь идет не о том, где ООП и процедурный ситиль сходятся. А о специфике ООП: полиморфизм, приватные/защищенные члены, статика, и вытекающие отсюда паттерны. ИМХО веб-программирование давно ушло от простой обработки гипертекста, поэтому полноценные языки программирования необходимы.
я раньше не понимал, зачем придумали интерфейсы? потом когда написал небольшой фреймвок, я понял, очень хорошая штука, что бы на этапе программирования не забыть что обязательно должно быть тут вот то то. всё что придумано, всем можно пользоваться, главное понять зачем имхо, ооп лучше для полностью написания сайта, если нужно написать один скриптик, например есть сайт, вас попросили добавить скрипт обратной связи, зачем там ооп?) это очередной холивар. что лучше, виндовс или линукс, фф или хром, интел или амд, джифорс или радеон? у каждой стороны есть люди, многие из которых даже плюсов не могут привести нормальных почему лучше именно то, за что они, но это не значит что кто то из них прав.
Вот с этим я больше всего не согласен. 99% веб студий клепают сайты визитки класса 90-ых, ООП там только как писк моды, а в силу непонимания ООП быдло-кодерами которые в этих студиях работаеют, сайты получаются дырявым хламом. Сделай они в привычном для себя стиле, качество продуктов выросло бы очень и очень сильно. Реально сайты за гранью элементарщины не заказываются у студий "васи пупкина", там набирается отдельная команда из опытных спецов.
ну тут смотря о каких дырах говорить Я бы сказал что ооп с одной стороны даже поможет защитить сайт от некоторых дыр начинающих программистов, хотя бы тем, что если код расскинут по классам, то уже не будет таких дыр как подмена какой либо переменной путём передачи её в гет параметре, например процедурный код PHP: $summa += ... при определённой настройки пхп вызвав скрипт index.php?summa=-100 можно подделать значение переменной. а если это в классе PHP: class myclass { funnction claculate() { $summa += ... } } этого не произойдёт. я не говорю о том что нужно инициализировать переменную сумма = 0, речь как раз о том что будет если этого не сделать, без сомнения можно написать что можно поместить это в функцию, но разговор о том что если написать код просто в странице или внутри класса. то же самое с вызовом скриптов которые не должны отдельно запускаться, путём набора какого либо адреса в строке, если у вас класс в файле который редактирует базу, то просто вызовом отдельно файла с передачей в него параметров вы тоже не чего не поломаете. а в процедурном подходе при дырах можно удалить всё или что то отредактировать забыв вставить в начала страницы проверку на админа например и передав параметры get или post подделав форму. например в моём фреймворке вообще перед запуском модуля идёт проверка прав юзера, а каждый модуль содержит ИД группы, и если ИД группы меньше то модуль просто не запустится. то есть если у модуля admin уровень 10 то пока юзер не авторизуется и не будет уровня 10 страницы http://site/admin/... вообще не запустятся, тем самым не нужно в каждую страницу отдельно вставлять проверки. Так что ООП подход можно легко использовать как раз в плюс к безопасности хотя если человек плохо знает ооп, он скорей всего может перемешивать подходы и сделать дыр где угодно