- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

Маркетинг для шоколадной фабрики. На 34% выше средний чек
Через устранение узких мест
Оксана Мамчуева
Вот задумался тут...
А кто может привести пример из жизни, в котором вот прям без ООП ну никак...
Задумался тут на эту тему... Например, распространенный скрипт подключаемый ко многим сайтам: sape.php
Да там класс организован... Все круто. ООП. Гламурно... Но если бы то же самое было организовано через вызов обычной функции - что бы изменилось???
Да ничерта!!!
Вот и вопрос - а на кой козе боян? И в чем фишка?
Интересно мнение кодеров (их тут есть)...
ЗЫ: Желательно только без "книжных" рассуждалок... Примерами плиз...
ЗЫЗЫ: Холивару - велкам! :)
ООП это более красиво, расширяемо, логично (имхо)
Если крупные проекты писать в процедурном стиле там сам черт голову сломит)) Он больше подходит для проектов типа "написал и забыл" )
Сапе клиентской класс конечно нужен как зайцу стоп-сигнал ... с одной стороны, а с другой стороны - чем мешают-то? Ничем. Поэтому в данном конкретном примере - с сапой - разницы нет.
В общем скучный холивар-то Вы затеяли, опоздали с ним лет эдак на 7 минимум:)
Задайте себе вопрос - как появляются классы в проекте если взять некоего абстрактного программера.
Сначала он пишет на функциях, потом ему нужны доп.фишки, он их начинает реализовывать опять же на функциях "с хитринкой". Потом он все усложняет это... и докатывается до того момента, когда его "хитринки" реализуют 90% того, что реализовано в ООП изначально. Тут он втыкает что умнее использовать классический ООП, который всем понятен и известен, а не свой велосипед. И становится ООП-шником.
Если пацанчег умный, то он помнит, что там где "доп.фишки" не нужны - достаточно использовать функции и не надо заниматься оверкиллом. Вот и всё. Холивар закончен.
Это что касалось чисто программинга. Плюс ООП безусловно имеет ряд преимуществ в больших проектах. Сопровождать "классные" проекты намного удобнее. Опять же, все "удобные" классные фишки в смысле сопровождения можно было бы сделать и на функциях... но... это был бы опять же велосипед. К тому же есть поддержка классов во многих ИДЕ средах. Если допустим у Вас 200 функций, то это естественное разделение их по блокам - по классам.
И еще небольшой довесок - приемы программирования. Разбуди ООПшника ночью и спроси что такое синглтон или фабрика - он оппа и воткнет о чем речь. А функциональнику Вы будете 2 часа сначала объяснять что это такое и как надо реализовывать и почему. Сокращает время.
Тут главное чувство меры на самом деле.
Принципиальной разницы - нет. Но иногда в проекте нужны ООП-шные доп.фишки. И тогда глупо не выбрать его.
Если конечно не идет речь о мегаскорости и мегапроизводительности. Потому что функции все-таки жрут в случае пхп раза в 2-3 меньше памяти в целом и все-таки быстрее чем классы.
По сути вы правы - ничего не изменится от того, как вы организуете вызов - через функцию, либо же через метод объекта. ООП имеет смысл если ваш проект достаточно велик.
Я так понимаю, вы говорите про PHP. Я сам пишу уже несколько лет на Java, так что мое мнение может быть необъективно :)
кто может привести пример из жизни, в котором вот прям без ООП ну никак...
Крупная компания, пишущая много больших проектов, с определенной текучкой кадров. В остальных случаях ООП - зло.
Да там класс организован... Все круто. ООП. Гламурно.
В остальных случаях ООП - зло.Угу, типа у вебмастеров памяти на хостингах навалом, выдержат нахрен никому не нужный класс. Именно, что гламурно и бестолково.
Бред, любой ваш кривоцикл сожрет больше памяти чем класс сам по себе.
Бред, любой ваш кривоцикл сожрет больше памяти чем класс сам по себе.
+ 1, еще можно вспомнить инклуды библиотек функций где на сотню функций дай Бог десяток используется
edogs Вас читать как хорошую книгу иногда интересно! Со всем согласен... но нераскрытой осталась тема:
... и докатывается до того момента, когда его "хитринки" реализуют 90% того, что реализовано в ООП изначально.
Примеров... примеров... (на пальцах... т.е. в формате: "нажимаем на ту пимпочку, тянем вот за эту хреновину и... отскочь подальше и прикинся ветошью ибо без ООП рванет...")
Но иногда в проекте нужны ООП-шные доп.фишки. И тогда глупо не выбрать его.
Опять же примеров...
+ 1, еще можно вспомнить инклуды библиотек функций где на сотню функций дай Бог десяток используется
:) Прям рассказали сейчас почему лично я не люблю фреймворки... :)
1)
на разных языках по разному, объект просто переменная (или другой тип данных) к которой прицеплены удобно методы (и т.д.)
есть еще Role OOP есть только в Smaltalk (я не давно увидел, интеренсо, можно писать так как там)
очень удобно: наследование, полиморфизм, инкапсуляция
если без ООП, то данные хранить и передвать через структуру наверное
на php часто смешивают OOP и процедурное
во фремворках как правило все очень красиво
2)
вот примеры:
3) а вот пример на процедурном
в принципе тоже самое
еще круче чем на Java 😆
rtyug добавил 05.12.2009 в 12:01
Если конечно не идет речь о мегаскорости и мегапроизводительности. Потому что функции все-таки жрут в случае пхп раза в 2-3 меньше памяти в целом и все-таки быстрее чем классы.
в php на сколько мне говорили, и на сколько я видел, то наоборот... т.к. доступ к методу через указатель всегда
Пример? Да пожалуйста, почти любая игрушка. Возьмем какую-нить стратегию - массы юнитов с разными характеристиками и умениями, как Вы думаете это реализуеться внутри движка? Обычно есть какой-нить базовый класс, скажем Human, у него есть общие для всех игровых людей свойства, такие как жизнь, сила, скорость передвижения и т д. и умения, вроде двигаться, плавать... От него наследуеться скажем класс Warrior, он обладает теми же свойствами но плюс умеет еще сражаться, носить броню, etc. А теперь вспомните сколькими юнитами Вы оперируете, а есть еще AI, которому тоже нужно управлять игровым процессом. Если Вы создаете 200 воинов, скорее всего "внутри" игры создаеться коллекция обьектов типа Warrior. Когда поступает команда группе людей идти сражаться выполняться что-то вроде:
и метод Attack двигает персонажа к врагу (Enemy) и заставляет их сражаться. При том, что неважно что там в SelectedHumans, хоть Warrior, хоть какой-нить Harvester )
Удобно? Очень.
К чему я все это? Да вот представьте что ООП небыло бы, пришлось бы делать какие-то структуры чтобы хоть как-то не попутаться в свойствах каждого обьекта, потенциально больше писать кода, поскольку наследования нет, нет инкапсуляции, значит потенциальное количество багов тоже увеличиться (например случаев когда программист случайно перепутал и подсунул функции которая отвечает за улучшение воина до следующего класса, структуру скажем животного). А создание новых обьектов? Нет удобных конструкторов, которые автоматически посоздают зависящие обьекты, выделят память, настроят базовые характеристики. А удаление? Деструкторы сильно упрощают жизнь, без них уследить за освобождением памяти десятков и сотней тысяч структур(обьектов) крайне сложно. А как насчет коммандной разработки? Когда есть ООП распределять задачи между программистами намного проще, каждый реализует классы или пакеты классов просто придерживаясь стандартов, остальные используют его труд.
Да, я не отрицаю, есть задачи когда можно вполне легко и просто обойтись структурной парадигмой, но в тоже время в некоторых проектах без ООП просто не обойтись (или же это настолько ресурсоемко что игра уже не стоит свеч).
За сим откланяюсь, извините, если немного сумбурно получилось.
В саповской библиотеке об ООП речи не идёт, там просто собрали функции в класс.
ООП предполагает:
Только 3-е используется, и условно.
http://pyha.ru/forum/topic/1648.msg28183#msg28183 - пример.