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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Что лучше (классы или функции)?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
mrKotik
Отправлено: 15 Июня, 2014 - 17:53:16
Post Id



Посетитель


Покинул форум
Сообщений всего: 271
Дата рег-ции: Дек. 2013  


Помог: 0 раз(а)




Что лучше (классы или функции), что лучше использовать всегда писал на функциях, а тут друг написал лучше писать на классах, они быстрей работаю так оно или нет заранее спасибо)?
 
 Top
OrmaJever Модератор
Отправлено: 15 Июня, 2014 - 18:03:50
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




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


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
mrKotik
Отправлено: 15 Июня, 2014 - 18:14:34
Post Id



Посетитель


Покинул форум
Сообщений всего: 271
Дата рег-ции: Дек. 2013  


Помог: 0 раз(а)




OrmaJever пишет:
Если интересует скорость то функции быстрее, но классы в большинстве случаев удобнее
А если функции быстрее))) То наверно на них и останусь))
 
 Top
OrmaJever Модератор
Отправлено: 15 Июня, 2014 - 18:29:41
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




<sarcasm>В Си функции ещё быстрее, можно писать на нём</sarcasm>


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
caballero
Отправлено: 15 Июня, 2014 - 18:53:42
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Цитата:
А если функции быстрее))) То наверно на них и останусь))

а какая разница быстрее они или нет по сравнению с временем загрузки страницы?
что тебе дадут несколько микросекунд.


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
Flash_PR
Отправлено: 16 Июня, 2014 - 09:40:48
Post Id



Посетитель


Покинул форум
Сообщений всего: 328
Дата рег-ции: Окт. 2013  
Откуда: Санкт-Петербург


Помог: 6 раз(а)




Я бы не сравнивал эти 2 разных подхода. Все зависит от задачи.


-----
Умные мысли приходят тогда, когда все глупости уже сделаны...
 
My status
 Top
eai
Отправлено: 16 Июня, 2014 - 10:29:59
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 521
Дата рег-ции: Сент. 2009  
Откуда: Петроград


Помог: 10 раз(а)




Это розжиг и повод ля холивара
Делайте как вам удобнее или как требуется для проекта.
Оба пути возможны и работоспособны.

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


Участник


Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013  


Помог: 91 раз(а)




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

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

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

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

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


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




teddy пишет:
Шаблоны проектирования, которые как правило заточены под ООП.

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

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

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

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

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

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

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

По теме - почитайте про S.O.L.I.D. подход, тестирование кода (особенно про интеграционные тесты (то есть, как с ними работать и как свести их число к минимуму), так как с юнитами и так всё ясно). Классика Макконела тоже пригодится. Ах да, ещё про S.T.U.P.I.D. код тоже пройтись можно. Хороший набор анти-паттернов.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
teddy
Отправлено: 16 Июня, 2014 - 16:43:36
Post Id


Участник


Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013  


Помог: 91 раз(а)




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

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

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

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

Надеюсь так я выразился более корректно -)
 
 Top
eai
Отправлено: 16 Июня, 2014 - 16:50:14
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 521
Дата рег-ции: Сент. 2009  
Откуда: Петроград


Помог: 10 раз(а)




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


Вконтакте на функциях наляпяли и ниче , не хужее фейсбуку Улыбка
 
 Top
EuGen Администратор
Отправлено: 16 Июня, 2014 - 16:56:37
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




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

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

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

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


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB