[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Процедурный стиль vs Объектно ориентированное прог
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13
chee
Ты кто перешел на ООП умеют писать процедурку, но проблема в том что так или иначе код все равно получается очень похожим на ООПшный(строятся оопшные механизмы по верх процедурки). Это даже не побочный эффект парадигмы, это скорей всего можно объснить тем что ООП очень сильно развивает умения производить декомпозицию, а процедурка не позволяет сделать это выразительным.имхо

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
bestxp
Цитата (twin @ 25.01.2016 - 09:16)
Китайцы спокойно обходятся палочками... Или полтора миллиарда китайцев - неприличное общество?  biggrin.gif

Есть палочками это функциональное программирование =) оно стоит в одну ногу с набором ложка вилка и ножик)


Императивы процедурка устарели и говно говном, и мазаться в говно ну его =) а те кто использует настоятельно рекомендуют помыться, PHP развивает и улучшает объектную модель, это удобно и просто, без секса и прочей гадости,

Не нравиться ООП добро пожаловать в лагерь функциональщиков, совершенно другой подход и образ мышления, все есть функция и все есть математика, Erlang Closuje Lisp Scala Haskell ждут тебя с нетерпением, будешь бодаться с монадами и познаешь дзен программирования =), будешь каррировать и декаррировать, лямбды и прочая умодобивающая фигня)))

Но копаться с говном и в говне и потом вонять что оно хорошее покрайней мере не красиво, попробуй сначала принимать ванну) ато коллегам становиться противно от запаха ( прим. это я про процедурное )
chee
bestxp, ты жесток biggrin.gif


_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
twin
Мне такие рассуждения это напоминают biggrin.gif biggrin.gif Смотреть не совсем до конца! laugh.gif


_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Marshal
Цитата (ВеликийПрограмист @ 25.01.2016 - 06:08)
Хочу обсудить все за и против в вопросе процедурный стиль против объектно ориентированного программирования.

Давайте сделаем конструктивно чтобы тему не закрылы за флейм и не будем делать такие комменты как "Если ты пишешь процедурный код то ты херовый програмист" или "<Какой то> крутой прогер или мой учитель програмирования в универе смеется над таким вопросом" - так доказываются догмы.

Пишите конкретно по пунктам почему процедурный стиль неприемлемен вами или чем ООП лчше процедурного лучше сразу с примером кода.


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

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


Ели кто то думает что я упал с дуба посмотрите на критику ООП на с википедии.

У каждого свое мнение, и не думаю что вот так легко сможешь поменять его, если к вопросу подойти просто, без долгих обсуждений и выбитых зубов, по моему мнению самое главное уровень владения определенной технологией, языком и тп, можно и самую универсальную и мощную технологию испортить неумением обращаться с ней,или самую старую если ты ее знаешь, использовать так хорошо что будет лучше передовых.Да и ценится сейчас быстрота написания кода, а не удобство, и красота.
Это бесполезная на мой взгляд тема, древняя и конца которой не будет. Да ВеликийПрограммист как с тобой связаться можно насчет другой темы закрытой? Или сам отпиши плиз, magisterK@yandex.ru или скайп MagisterK
chee
Чёт тема быстро потухла, так даже не весело

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
dron4ik
Когда это нужно - это какой вариант?)))

_____________
Ex3m.com.ua — Активный образ жизни
dron4ik
Цитата (ВеликийПрограмист @ 25.01.2016 - 03:31)
Я не утверждаю что ООП это неверно, однако я хочу услышать чем ООП лучше процедур от тех кто говорит что тот кто не использует ооп - недопрограмист.

Не коректный вопрос, нужно отделять ООП в ПХП от ООП в целом! Как по мне (мое ИМХО) в ПХП реализация ООП не очень верна, так как можно смело обходиться без него, но при этом в Жаве к примеру это не так, ибо там все изначально придумывалось под ООП.

_____________
Ex3m.com.ua — Активный образ жизни
chee
Цитата (dron4ik @ 25.01.2016 - 18:19)
в ПХП реализация ООП не очень верна

wat? Что там не так, практически всё слизали с Java.

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Миша
Чтобы не быть голословными приведите небольшой пример в двух вариантах, почему тот или иной стиль программирования лучше. Нам будет интересно сравнить и проанализировать.

_____________
Принимаю заказы, писать в ЛС
twin
Не хотел встревать, но это выше моих сил))
Цитата (Santehnick @ 26.01.2016 - 01:33)
Врядли можно увидеть разницу на небольшом примере.

Ну почему... Разницу увидеть просто. Сложно увидеть, а тем более доказать, преимущества одного перед другим.

Вот ООП:

class Cat
{
public function getVoice()
{
return 'Meow!';
}
}


class Cock
{
public function getVoice()
{
return 'Cock-a-doodle-doo!';
}
}


$cat = new Cat;
echo $cat->getVoice();

$cock = new Cock;
echo $cock->getVoice();


А вот это процедурка:
class Voice
{
public function getCatVoice()
{
return 'Meow!';
}

public function getCockVoice()
{
return 'Cock-a-doodle-doo!';
}
}


$voice = new Voice;
echo $voice->getCatVoice();
echo $voice->getCockVoice();

Здесь не так явно (голос тоже можно обозвать объектом), но для начала пойдет.

Отличие тут в сфере применения алгоритмов. То, что принято называть "процедуркой" по сути является субъектным программированием. Субъект отвечает на вопрос "кто". Объект же, это цель, сущность, которую заставляют что-либо делать, наблюдая за результатом. То есть это "что".

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

Дословно так:
(ооп) беру собаку, она лает.
(пп) воспроизвожу лай собаки.

Что тут лучше - у каждого свое мнение. Это извечный холивар. С одной стороны в ООП декомпозиция более явна. Потому что вроде как привычнее и сравнимее с реальным миром. От того большинство программистов и попадает в сладкие сети ООП.

Но это только до тех пор, пока функционал невелик. Как только он разрастается, появляется куча мертвого, и довольно серьёзная избыточность действующего кода, которые сводят на нет все достижения. С этим приходится бороться всевозможными фокусами (читай: паттернами). А они тоже имеют разные толкования. Синглтон, сервис-локатор и некоторые другие уже давно названы антипаттернами в определенных кругах.

Потому ООПэшники понемного сдают позиции, сами того не замечая. Яркий пример - делегирование.

С другой стороны у процедурки тоже имеются свои недостатки. Один из самых главных, как не парадоксально, довольно высокий уровень вхождения.

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

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

Так что ООП нужно пережить. :) Ну или застрять в нем навсегда, утешаясь тем, что железо дешевле программиста.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.