LINUX.ORG.RU

PHP: использование классов; За и Против

 classes,


0

1

Тащемта, сабж. Хотелось бы услышать аргументы в пользу и против использования классов при разработке на PHP. Буквально пару минут назад с коллегой обсудили ряд недостатков и он утверждает, что идея ООП как таковая даже провалилась.

Решили подключить ЛОР к диванно-кухонной рабочей дискуссии.

ООП, при прямых руках, избавляет от спаггети-кода, как и любая абстракция упрощает работу с кодовой базой, но если нужен скрипт «на коленке», то смысла в нем, конечно, нет.

gwinn ★★★★
()

Только анонимные функции, только хардкор :)

Ну а «тащемта», что мешает запилить простенький прототип и прикинуть ... к носу, что да как лучше?

GateKeeper ★★
()

Если задача или часть задачи укладывается в парадигму ООП, то почему бы и не применить? ООП становится плохим тогда, когда с его помощью начинают решать задачи, плохо формализуемые в понятиях ООП. Как, впрочем, и любая другая парадигма программирования.

agentgoblin
()

Тащемта, сабж. Хотелось бы услышать аргументы в пользу и против использования классов при разработке на PHP. Буквально пару минут назад с коллегой обсудили ряд недостатков и он утверждает, что идея ООП как таковая даже провалилась.

А вы оба, книжки до этого читали?

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

В общем виде, задача стоит в переписывании десктопного софта под веб. :)

Софт разный бывает. Калькулятор, тоже десктопный софт.

VirRaa ★★★
()

Вопрос в стиле: «мы тут с другим спорим, нужно ли человеку дышать воздухом. Друг говорит, что не нужно».

resurtm ★★★
()

добавьте тэг «кто за бан?»

anonymous
()

Объектная система встроенная в PHP довольно корявая, пользоваться ею — чистый мазохизм, имхо.

Начиная с 5.3 появились относительно нормальные лямбды, можно делать свои объектные системы. Этим достигается следующее: 1.Сохраняется слабая связанность кода; 2.Контроль уровня специализации системы. Отсюда можно понять, как при этом изменятся приемущества/недостатки.

«идея ООП как таковая» действительно провалилась, если под этой идеей понимается «универсальная методика для всего». Ну это и так понятно, подобные идеи глупые изначально.

linuxnewb
()
Ответ на: комментарий от resurtm

ремонт

Вопрос в стиле: «мы тут с другим спорим, нужно ли человеку акваланг чтобы дышать воздухом. Друг говорит, что не нужно».

не благодари

linuxnewb
()

Использование идеи ООП в вакууме и так всплывают в любом языке, даже в которых нет ключевого слова class, даже в ассемблере. Главное не превращать в жабу, где ООП выродилось в бюрократичную таксономику.

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

В целом так и есть. Проблема только в одном — у каждого свое, сугубо индивидуальное понимание ООП. Как следствие — жаба, «где ООП выродилось в бюрократичную таксономику».

linuxnewb
()
Ответ на: комментарий от Quadmonster

В качестве одного из аргументов был приведен в пример CMS Wordpress.

Стесняюсь спросить, а вы его изнутри видели?

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

Функциональный минимум для меня: Yii. Оптимальный уровень: Symfony2.

Плюсую.

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

Объектная система встроенная в PHP довольно корявая, пользоваться ею — чистый мазохизм, имхо.

Можно расшивровать аргументацией?

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

Эм.. а может php как таковой провалился для ооп? да и без него тоже...

Ещё недавно ты просил порекомендовать фундоментальную книгу по пыху. Уже освоил?

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

в вордпресе нет mvc, а не объектов
нахай таких коллег

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

Нет, Аллах миловал (; А для оценки этого поделия треда и референсов хватило более чем.

P.S. Оставим это как пример тут: http://me.veekun.com/blog/2012/04/09/php-a-fractal-of-bad-design/

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

Не, ты ответь чем именно тебе ООП не по нраву в пыхе? И приведи язык с идеальной (с твоей точки зрения) модели ООП.

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

Не, ты ответь чем именно тебе ООП не по нраву в пыхе?

Что там вообще может нравиться?

приведи язык с идеальной (с твоей точки зрения) модели ООП.

Во-первых, идеальной для чего?

Во-вторых, любой относительно нормальный язык позволит реализовать свою систему, причем она в использовании будет эффективней встроенной в пхп.

linuxnewb
()

Хотелось бы услышать аргументы в пользу и против использования ЯВУ при разработке на ЭВМ. Буквально пару минут назад с коллегой обсудили ряд недостатков и он утверждает, что идея ЯВУ как таковая даже провалилась.

zed_0xff
()
Ответ на: комментарий от omegatype

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

linuxnewb
()

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

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

Окай, приведи пример нормального языка.

В этом контексте — тот же пых например. И да, «относительно нормальный».

linuxnewb
()
Ответ на: комментарий от ritsufag

А как же? Ведь если нагородить классов это будет уже 50000 строк. А это уже Солидный Проект! Чуешь разницу?

linuxnewb
()

Прежде всего, неважно, о каком языке тут идет речь - ООП в PHP нужно для того же, для чего и везде. Для читабельности кода, в первую очередь. Программист, который должен поддерживать старые сайты - внедрять новые возможности, править возникающие ошибки, расширять старые возможности - постоянно читает старый код. Так что разница, практически, такая же, что жить в мусорной куче или в доме, где та же площадь разделена на несколько этажей, этажи пронумерованы, разделены на нумерованные квартиры, каждая из которых разделена на комнаты, которые обставлены в соответствии с их функциональностью. Программист, который написал говносайт может некоторе время помнить, что вон та функция находится в трех метрах к северу от левого края кучи, но даже он рано или поздно забудет или просто уйдет. И потом никто уже ничего не найдет в этом хламе. Так что вам решать, глисты тоже в дерьме живут и ничего - только не они, ни их среда обитания больше никому не нужны.

pt
()

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

trashymichael ★★★
()

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

Классы определенно стоит использовать для описание доменных сущностьей типа «Заказ», «Пользователь» и так далее. Каждый раз таскать массив неифнформативно - непонятно какие там ключи есть.

Что касается классов, из которых строятся модули приложения, тот тут уже пофиг. Ничего плохого просто в написании функция я не вижу. Для доступа к конфигу используй сервис-локатор, к примеру. Даже тесты можно написать будет и без всяких классов. И конфигурация будет отделена от кода. Что еще надо?

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

Начиная с 5.3 появились относительно нормальные лямбды

Что вы все эти лямбды приплетаете в качестве критерия для ООП? На плюсах, раннем сисярпе, жабе, объектном паскале - ООП программирование применялось и без наличия лямбд. Менее ООП языками они от этого не становились. Лямбды вообще один из атрибутов функциональщины.

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

Что там вообще может нравиться?
Во-первых, идеальной для чего?
Во-вторых, любой относительно нормальный язык позволит реализовать свою систему, причем она в использовании будет эффективней встроенной в пхп.

Пошла полемика...

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

Тут ниже сообщение на тему:

Шо, и хомепагу из 500 строк тоже будет ООПить?

Собственно этим все и сказано, вся инфраструктура пхп. Апач выбирает файл по запросу и выполняет сверху вниз - вот что такое пхп.

А вот минимальный ruby http://m.onkey.org/ruby-on-rack-1-hello-rack

Разница есть: я передаю объект объекту, после чего запускается мое приложение, т.е. я передаю в rack мое приложение, которое должно быть объектом (метод call - точка входа). Это совсем не что в пхп. Да и зачем вообще говорить об ООП в пхп, если пхпшники все равно его не понимают и не принимают. Разве ООП в пхп не только для того, чтобы разработчики других ЯП от***лись..

special-k ★★★★
()

Естественно, использовать классы в PHP не стоит.

Miguel ★★★★★
()
Ответ на: комментарий от special-k

все равно его не понимают и не принимают.

Ты я смотрю любишь посерфить на волнах собственного жира.

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

Мне всегда очень нравятся такие персонажи. Забавно наблюдать, как это вы умудряетесь заблудиться в единственном предложении из 11 слов.

linuxnewb
()
Ответ на: комментарий от VirRaa

Ну а что не так? Учитывая типичную область применения пхп.

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