[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Императив VS ООП
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13
chee
Цитата (twin @ 4.11.2014 - 13:42)
Если у человека стойкое убеждение, что любой класс, это уже ООП, о чем разговаривать тогда.

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


_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
sergeiss
"Голова - предмет темный и исследованию не подлежит" wink.gif Это, и не только это, вспоминается при прочтении этой темы

http://www.youtube.com/watch?v=sLOMUE2LiQU

Еще и это в тему: "Они что, по-нашему совсем не понимают?"
www.youtube.com/watch?v=a6b2tyTCYBo

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Arh
Цитата
Если бы вопрос был задан так, как его услышали вы

Действительно, может я не так понял вопрос.

Цитата
А вот почему бы тебе тоже не поучаствовать?

В принципе я уже написал CMS, но там один сплошной черновик, что пока показывать стыдно.
И я не знаю к чему её отнести, к ООП или не к ООП, вы все меня запутали =)

Если считать что ООП это в index.php
<?php
$system= new system;
$system->start();
?>


А всё остальное должно как то закрутиться и перенаследоваться само, то у меня не ООП.
А если считать что ООП начинается с наследования, то да, у меня наследован PDO и phpMailer

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
twin
chee
Другими словами делаем вывод. Если я написал программу на функциях, а потом вставил туда один класс и создал экземпляр, значит я офигенный ООПэшник?

Или конкретно этот кусок кода, это ООП?

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

Я соглашусь только с одним. Не стану больше называть свой подход императивным (слово уж больно нравится smile.gif ), раз так сбивает с толку. Буду называть мульти... нет, аж передернуло. Обобщенной парадигмой. Но то, что это лучше ООП не перестану утверждать.

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


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


Цитата
Будущее увидит много мультипарадигм программирования и различные многоязычные системы.

Или он тоже как личность не интересен?

А слив... он ожидаем.
Ибо это не первый раз уже. Как только от деклараций переходим к конкретике, оппонент почему то сливается.

Записываем еще одно техническое поражение. smile.gif

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

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

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

user posted image
chee
Цитата (twin @ 4.11.2014 - 14:24)
Я соглашусь только с одним. Не стану больше называть свой подход императивным (слово уж больно нравится smile.gif ), раз так сбивает с толку. Буду называть мульти... нет, аж передернуло. Обобщенной парадигмой. Но то, что это лучше ООП не перестану утверждать.

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

Кстати, ТС из той темы явно говорил об отличии процедурки от ООП.
Цитата (alex162341 @ 30.10.2014 - 21:50)
Чтобы обращаться к каждому свойству через $this-> нужно больше кода чем процедурным методом.

А вы втыкнулись в мультипарадигменной программирования, прикрывая его ИМПЕРАТИВНЫМ. У вас есть еще шанс продолжить это топик, а именно начать создавать процедурную CMS.


_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
chee
Цитата (twin @ 4.11.2014 - 14:24)
Если я вам не авторитет, то как прокомментируете слова Страуструпа

Извините, но он для меня не авторитет, он хорошо объясняет и все такое, умный мужик. Я не буду его слова даже отрицать, так как это его мнение, да зачем мне вообще их отрицать, я согласен с некоторыми утверждениями. Просто они бесмесленны в данной ситуации.

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
chee
Цитата (twin @ 4.11.2014 - 14:24)

А слив... он ожидаем.

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

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

Беру свои слова обратно. Не подходит это под обобщенную парадигму. Зато вот что нарыл:
Цитата
Поясним это на примере списка имен. В традиционной императивной парадигме этот список рассматривается просто как совокупность некоторых данных. Любая программа, получающая на вход этот список, должна содержать алгоритм выполнения над ним требуемых действий. Таким образом, список является пассивным объектом, поскольку он обрабатывается управляющей программой, а не обрабатывает себя сам.

Цитата
В совсем высокоуровневых (таких как Python, если на нем программировать императивно) состояние ограничивается лишь переменными, а команды могут представлять собой комплексные операции


Всё же императив это чистой воды, только для высокоуровневых языков. Как я интуитивно и предполагал.

И про зря потраченное время тоже беру слова обратно. Очень мого интересного всплыло. И утвердило меня в своей правоте.

Жаль не получилось сравнить технически. sad.gif


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

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

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

user posted image
chee
Цитата (twin @ 4.11.2014 - 15:22)
не прав я

Цитата (twin @ 4.11.2014 - 15:22)
И утвердило меня в своей правоте..

у вас не возникает когнетивный диссонанс?

Мы можем продолжить если вы все-таки будете использовать одну парадигму.

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
twin
Цитата
у вас не возникает когнетивный диссонанс?
Опять ООП подход laugh.gif

Я пишу императивно, у меня состояние данных поста меняется по мере его прочтения. Состояние "не прав" относилось к данным "обобщенная парадигма". А состояние "утвердило меня в своей правоте" - конечный результат. Чтобы до него дойти, нужно прочитать топик последовательно, императивно. А не воспринимать его как объект, у которого не может одновременно быть двух состояний.

Цитата
Мы можем продолжить если вы все-таки будете использовать одну парадигму.

Я одну и использовал всегда. Императивную. И не собирался отступать от неё. Просто Ваше понимание этой парадигмы не вписывается ни в какие рамки.

Сформулируйте тогда четко Ваше понимание различия между парадигмами. Если Вы считаете, что в императиве комплексную инструкцию я не могу представить как экземпляр класса, то разговор окончен. Какой смысл, если по итогам вы все равно назовее меня ООПэшником. smile.gif

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

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

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

user posted image
chee
Цитата (twin @ 4.11.2014 - 15:38)
Сформулируйте тогда четко Ваше понимание различия между парадигмами.

Найдите информацию в интернете сами, я посмотрел много статей описывающие парадигмы. Но ни где не неписано, что императивное программирование может включать в себя другие парадигмы. Написано что процедурное и императивное программирование синонимичны, но не больше.
Цитата
Если Вы считаете, что в императиве комплексную инструкцию я не могу представить как экземпляр класса, то разговор окончен.

да не можете, сделав это вы будете использовать:
а) Объекты, что подразумевает что вы будуте совмещать данные и логику, а вы будуте совмещать.
б) У вас будет соблазн делать наследование, и вы будете это делать;
в) У вас будет соблазн применять инкапсуляцию, и вы будете это делать;
г) У вас будет соблазн применять полиморфизм, и вы будете это делать;

Все это сделает ваш код объектно ориентированым.

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

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

Я хочу втюхать??????

Мне вообще по барабану, кмс это или писающие кошки. Мне важно было сравнить подходы. По большому счету я не CMS писал, а отрабатывал ТЗ своими методами.

Цитата
Все это сделает ваш код объектно ориентированым.
Отнюдь.
Цитата
а) Объекты, что подразумевает что вы будут совмещать данные и логику, а вы будуте совмещать.
Будут. Далеко не все, но будут. Но это не делает код объектно-ориентированным. Дело в том, что я мог бы полностью отказаться от объектов, но это не совсем удобно и оптимально в моем случае. Ниже объясню почему.

Цитата
б) У вас будет соблазн делать наследование, и вы будете это делать;
Наследование не буду. Буду расширение. Сейчас скажите, что подменяю термины. Объясню конкретно в чем различие.

У меня расширение, это площадка для работы с базовым классом. На примере:

class Main_View extends IRB_Template
{

public function __construct($template)
{
parent::__construct($template);
}

public function run()
{
$this->extendsTpl('index', 'content')->display();
}
}

Это не наследник. Потому что я безболезненно могу переписать его так:
class Main_View 
{

public function __construct($template)
{
$this->tpl->IRB_Template($template);
}

public function run()
{
$this->tpl->extendsTpl('index', 'content')->display();
}
}
Или даже так:
class Main_View
{

public static function createTpl($template)
{
self::$tpl = new IRB_Template($template);
}

public static function run()
{
self::$tpl->extendsTpl('index', 'content')->display();
}
}
И ничего не изменится. Попробуйте так же поступить со своими классами. Где переопределяются методы.

Наследование, это когда классы фактически объединяются с возможностью изменить базовые методы. Расширение, это когда к функционалу базового только добавляется другой. Ну вот не хочется мне писать веревку $this->tpl->, хочется сократить до $this->. Какое же это наследование?
Цитата
в) У вас будет соблазн применять инкапсуляцию, и вы будете это делать;

Тут недавно был холивар по поводу инкапсуляции. Нужно сначала выяснить, что именно Вы под ней подразумеваете. Потому что инкапсуляция, это не просто разграничение областей видимости. Это принцип построения. Чистая инкапсуляция предполагает работу только с интерфейсом класса. Менять что-либо в самом классе нельзя. Так вот, в таком ключе я инкапсуляцию не использую. Смотри пример выше. Для меня класс Main_View это фактически контекст, просто помещенный в общую область для более комфортной передачи данных между методами. Не инициализировать же класс шаблонизатора в каждой функции. Так что нет. Кроме того, сама по себе инкапсуляция, как и наследование, не является определяющим признаком ООП. Они обязательны в парадигме, но их использование по раздельности не делает код объектно-ориентированным.
Цитата
г) У вас будет соблазн применять полиморфизм, и вы будете это делать;
С каких это пор полиморфизм стал собственностью ООП? Если говорить о полиморфизме в рамках ООП
Цитата
полиморфизм — это способность обьекта использовать методы производного класса, который не существует на момент создания базового.
то нет, не буду использовать. Оно мне не нужно. Если полиморфизмом считать способность метода обрабатывать разнообразные данные, то да, буду. Допустим один метод может выдать мне данные категорий или комментариев, зависит от входящих данных. Это же можно было бы организовать отдельными функциями, к ООП это не имеет ни малейшего отношения.

Так что не нужно делать скорополительных выводов. Я, когда затевался этот топик, ниразу не подразумевал, что собираюсь
Цитата
сравнивать процедурку с ООП
Это к Arh вопросы. Императив, хоть и считается иногда синоним процедурки, но в высокоуровневых языках они совсем не одно и то же.

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

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

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

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

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