Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Что лучше (классы или функции)?
Форумы портала PHP.SU » » Вопросы новичков » Что лучше (классы или функции)?

Страниц (1): [1]
 

1. mrKotik - 15 Июня, 2014 - 17:53:16 - перейти к сообщению
Что лучше (классы или функции), что лучше использовать всегда писал на функциях, а тут друг написал лучше писать на классах, они быстрей работаю так оно или нет заранее спасибо)?
2. OrmaJever - 15 Июня, 2014 - 18:03:50 - перейти к сообщению
Если интересует скорость то функции быстрее, но классы в большинстве случаев удобнее
3. mrKotik - 15 Июня, 2014 - 18:14:34 - перейти к сообщению
OrmaJever пишет:
Если интересует скорость то функции быстрее, но классы в большинстве случаев удобнее
А если функции быстрее))) То наверно на них и останусь))
4. OrmaJever - 15 Июня, 2014 - 18:29:41 - перейти к сообщению
<sarcasm>В Си функции ещё быстрее, можно писать на нём</sarcasm>
5. caballero - 15 Июня, 2014 - 18:53:42 - перейти к сообщению
Цитата:
А если функции быстрее))) То наверно на них и останусь))

а какая разница быстрее они или нет по сравнению с временем загрузки страницы?
что тебе дадут несколько микросекунд.
6. Flash_PR - 16 Июня, 2014 - 09:40:48 - перейти к сообщению
Я бы не сравнивал эти 2 разных подхода. Все зависит от задачи.
7. eai - 16 Июня, 2014 - 10:29:59 - перейти к сообщению
Это розжиг и повод ля холивара
Делайте как вам удобнее или как требуется для проекта.
Оба пути возможны и работоспособны.

ЗЫ
лично предпочитаю классы, хоть они и чуть медленнее, но фактическое быстродействие упирается в СУБД и не важно классы или функции.
8. teddy - 16 Июня, 2014 - 12:19:45 - перейти к сообщению
Скорость прежде всего зависит не от подхода, а от того, насколько качествен и оптимален сам код. Можно одно и тоже приложение написать и на функциях и с ООП подходом, где ООП окажется быстрее.

У ООП есть масса преимуществ. Обычно эти преимущества ощущаются при попытке спроектировать сложное приложение.

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

Мой тебе совет, сначала просто изучи возможности ООП, узнай, как это работает технически, не вдаваясь в подробности проектирования. Для этого можно воспользоваться официальной документацией:
http://www.php.net/manual/ru/language.oop5.php

А когда ты все это изучишь, то будешь готов для понимания удобства ООП подхода. Тогда уже начни изучать шаблоны проектирования и фреймворки. Быстро забудешь про функции. Но учти, потеть придется постоянно Подмигивание
9. EuGen - 16 Июня, 2014 - 15:55:50 - перейти к сообщению
teddy пишет:
Шаблоны проектирования, которые как правило заточены под ООП.

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

teddy пишет:
Мой тебе совет, сначала просто изучи возможности ООП, узнай, как это работает технически

Технически ООП никак не работает, это лишь подход. Технически работает его реализация в конкретно взятых языке и платформе.

OrmaJever пишет:
Если интересует скорость то функции быстрее, но классы в большинстве случаев удобнее

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

eai пишет:
Делайте как вам удобнее или как требуется для проекта.

Всё же, если это именно "проект" - то без изоляционности объектного подхода практически никуда не двинуться. Поскольку код нужно тестировать. Если это - скрипт на пару десятков строк, который что-нибудь пишет в нужный файл и делается на один раз - то - да, объектный подход вряд ли пригодится

По теме - почитайте про S.O.L.I.D. подход, тестирование кода (особенно про интеграционные тесты (то есть, как с ними работать и как свести их число к минимуму), так как с юнитами и так всё ясно). Классика Макконела тоже пригодится. Ах да, ещё про S.T.U.P.I.D. код тоже пройтись можно. Хороший набор анти-паттернов.
10. teddy - 16 Июня, 2014 - 16:43:36 - перейти к сообщению
EuGen пишет:
Шаблоны проектирования концептуально не имеют ничего общего с ООП. Дело другое, что реализации конкретных шаблонов могут быть сделаны в контексте ООП, а некоторые частные паттерны даже привязаны к этому контексту.

Да, но в корне мысль одна и та же.

EuGen пишет:
Технически ООП никак не работает, это лишь подход. Технически работает его реализация в конкретно взятых языке и платформе.

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

Надеюсь так я выразился более корректно -)
11. eai - 16 Июня, 2014 - 16:50:14 - перейти к сообщению
EuGen пишет:
Всё же, если это именно "проект" - то без изоляционности объектного подхода практически никуда не двинуться. Поскольку код нужно тестировать. Если это - скрипт на пару десятков строк, который что-нибудь пишет в нужный файл и делается на один раз - то - да, объектный подход вряд ли пригодится


Вконтакте на функциях наляпяли и ниче , не хужее фейсбуку Улыбка
12. EuGen - 16 Июня, 2014 - 16:56:37 - перейти к сообщению
teddy пишет:
Да, но в корне мысль одна и та же.

Вообще - нет. Именно в корне и есть отличие. Потому что конкретный паттерн можно реализовать на каком-нибудь функциональном языке (типа Haskell) - за исключением, быть может, тех паттернов, что проистекают из объектного подхода и связаны с сохранением состояния (но называть их просто "паттернами" в таком случае - некорректно, так как они - всего лишь подкласс паттернов). И ООП здесь ни при чём. ООП - это, грубо выражаясь, "протокол более низкого уровня" по отношению к паттернам.

eai пишет:
Вконтакте на функциях наляпяли и ниче , не хужее фейсбуку

Во-первых, это отдельная история (со своими решениями), во-вторых, ради этого им пришлось.. разработать методику тестирования. И - у них не "наобум" сделана структура. Создано упрощение, но умышленное и направленное.

 

Powered by ExBB FM 1.0 RC1