Ычан: [d | b / bro / hr / l / m / med / mi / mu / o / ph / r / s / sci / tran / tu / tv / x | es / vg | au / tr | a / aa / abe / c / fi / jp / rm / tan / to / vn / vo]
[Назад]
Ответ в нить
Имя
Animapcha image [@] [?]
Тема   ( ответ в 7818)
Сообщение flower
Файл 
Пароль  (для удаления файлов и сообщений)
Параметры   
  • Прежде чем постить, ознакомьтесь с правилами.
  • Поддерживаются файлы типов 7Z, BZ, BZ2, GIF, GZ, JPG, MO, MP3, MP4, OGG, OGV, PDF, PNG, PSD, RAR, SVG, SWF, TXT, WEBM, XCF, ZIP размером до 5000 кБ.
  • Ныне 3212 unique user posts. Посмотреть каталог
  • Максимальное количество бампов нити: 500
135039225573.jpg-(129.48KB, 600×570, cats_babuska[1].jpg)
7818
No. 7818    
Хочу разобраться в парадигме ООП. В чем соль ООП?
Где описана общая парадигма ООП (желательно, ёмко, но что-бы ни в коем случае не был упущен ни один аспект).
Развернуть все изображения
No. 7819    
>>7818
Есть, фактически, два сильно отличающихся вида ООП. Наиболее распространённый сейчас пошёл откуда-то из стороны С++, это "инкапсуляция" - "скрытие" - "полиморфизм". Но более Ъ ООП в Smalltalk.
Это просто на случай, если тебе попадётся сначала книжка какого-нибудь плюсиста или жабиста.
No. 7821    
>>7818
ООП - переоцененное говно для быдла. Парадигма его проста:
1. пихаем данные ("поля") и функции ("методы") работы с ними в "первоклассные" недомодули под названием "класс". Введем для них область видимости для них. Например "спрятать нахуй так, чтоб никто не видел, кроме класса, в котором эти методы/поля определены". "Волшебное слово" для этого - "инкапсуляция".
2. Наебываем всех якобы лучшим перееспользованием кода за счет введения "наследования". Наследование это когда один класс содержит в себе все поля и методы другого. "Волшебное слово" — "наследование".
3. Позволим некоторые методы переопределить (назовем их виртуальными. Я не представляю из какого хуя была высосано это название.), то есть переписать тело виртуального метода в классе-наследнике (это который содержит в себе другой класс). Сделаем диспатч по типу для виртуальных методов - это когда во время исполнения программы конкретно вызываемый метод определяется по типу объекта. Это последнее "волшебное слово" - "полиморфизм".
No. 7828    
135040814654.jpg-(154.73KB, 1280×960, edtHrK4sJ_4.jpg)
7828
>якобы лучшим перееспользованием кода за счет введения "наследования"
Сто раз разбирали по косточкам, когда агрегация > наследования. http://insidecpp.ru/art/8/ . Я не знаю, почему чужеземцы испытывают к нему такую НЕНАВИСТЬ, когда лучшего дизайна сложных систем попросту нет.

Забыл абстракцию, кстати.
No. 7836    
>>7821
>"первоклассные"
Что это такое первоклассные параметризуемые модули?
О каких модулях идет речь?
Можете дать ссылку на то, где об этом хорошо рассказано. Буду очень признателен.
No. 7838    
>>7828
>Сто раз разбирали по косточкам, когда агрегация > наследования
Ты жопой читаешь чтоли? "Агрегация" и до ООП была.
>Забыл абстракцию, кстати.
Абстракция к ООП тоже не имеет прямого отношения.
>cpp
А, теперь понятно откуда у тебя в голове столько говна.

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

>>7836
Не знаю, где хорошо про это написано. Посмотрите на систему модулей окамла (http://caml.inria.fr/pub/docs/manual-ocaml-4.00/manual004.html) и package у common lisp. Хотя, наверное, любой лисп подойдет.
No. 7840    
>>7838
Абстракция и агрегация — самые что ни на есть части ООП. Детектирую извращённое представление об ООП как о парадигме, наследующей квадраты от треугольников.
No. 7841    
>>7840
Абстракция и агрегация — самые что ни на есть части любой парадигмы разработки чего либо.
А про треугольники с квадратами... Крестоблядь, ты?
No. 7842    
>>7841
...Основанной на ООП.
Хоть бы статью прочитал =\
No. 7846    
>>7842
> Абстракция и агрегация
> Основанной на ООП
Шел бы ты нахуй уже, школоиксперт.
No. 7848    
135049263070.png-(315.17KB, 633×604, 133ae41f2996a4a5d475ee86ce35f870.png)
7848
>>7838 А чем ты предлагаешь пользоваться вместо ООП для написания, например, игрушек с OpenGL графикой?
мимо проходил другой любопытный крестоблядь-кун
No. 7849    
135049330386.jpg-(60.77KB, 539×750, 11b37efbcf72eff87d8ae460e8a8afa1.jpg)
7849
>>7846
Абстракция и агрегирование — понятия и ООП в том числе, ошибки не вижу. А вот тебе советую вернуться туда, откуда выполз.
И я вообще паскалебог, если что.
No. 7850    
>>7848
OpenGL сам по себе процедурный.
???
Obvious conclusion is obvious.

>>7849
>в том числе
Я даже выделил для тебя, дурачок. Напряги извлину.
>паскалебог
>советую
Когда мне понадобится совет школоты, я тебя позову. А пока - марш уроки делать.
No. 7851    
Файл
удалён
>>7850
>OpenGL сам по себе процедурный.
Открой для себя ОО-враперы, без которых никто в здравом уме не пишет. И потом, внешне-то процедурный, но функции вида glFoo(GLuint id, ...) тебе ничего не напоминают?

Почини уже детектор, ну.
No. 7853    
>>7851
> Открой для себя ОО-враперы
Если ты хочешь писать с врапперами, хуле ты мне ебешь мозги про OpenGL?
>внешне-то процедурный
Да ведь ты же уебок. Внутри он не процедурный, ага?

Дебил на дебиле и дебилом погоняет.
No. 7856    
135049570828.jpg-(441.86KB, 800×1000, 29c8f55e60f78e9edc907402d69ab462.jpg)
7856
>>7853
>Если ты хочешь писать с врапперами, хуле ты мне ебешь мозги про OpenGL?
Ты вообще знаешь, что такое "врапер"?
No. 7857    
Файл
удалён
>>7853
>Внутри он не процедурный, ага?
Идеологически это ОО. Типичный процедурный интерфейс ОО-системы, просто в качестве this передаётся уникальный идентификатор вместо указателя.
No. 7862    
135050683073.jpg-(527.00KB, 768×1024, 2cca23c12395caa8e8f4fe057f9ced95.jpg)
7862
>>7850 То есть ты предлагаешь запилить что-то со структурой сложнее hello world'а только процедурным программированием без раделения на объекты? Приведи пример хоть одного доделанного таким образом проекта. В этой каше из кода черт ногу сломит. Конечно, старые вещи типа doom'а и quake'а написаны на чистом процедурном си, но там используется тот же подход, что и в OpenGL, который описал >>7857-кун, то есть по сути это процедурная реализация ООП.
пишу в удаленном треде
No. 7864    
>>7862
Часть претензий к ООП справедлива. Чрезмерное увлечение им приводит к излишнему и уродливому коду.
> только процедурным программированием без разделения на объекты
Помимо объектно-ориентированного и процедурного подходов есть ещё масса интересных вещей: http://en.wikipedia.org/wiki/Programming_paradigm
No. 7866    
>>7856
Мальчик, иди нахуй.
>>7857
>Идеологически это ОО
Ты ебаный дебил, какой еще, нахуй, "идеологически". Дали дибилами в руки молоток, у них теперь все гвозди.
"Внешене процедурный, но идеологически ООП". Этот перл надо бы сохранить куда-нибудь.
No. 7867    
>>7862
>То есть ты предлагаешь запилить что-то со структурой сложнее hello world'а только процедурным программированием без раделения на объекты?
Дались тебе эти объекты. Да, можно и на процедурном. Учитывая, что корректное разбиене на классы занятие тяжелое, да еще и требует костылей из паттернов, то лучше процедурное, если тебе ничего другого не известно.
>по сути это процедурная реализация ООП
Еще один долбоеб с синдромом молотка. Давай, мальчик, покажи мне там реализацию трех "волшебных" слов. Как обосрешься, подумай почему так вышло. Может чего поймешь. Я их тебе даже напомню: инкапсуляция, наследование и полиморфзм.
No. 7868    
>>7818
Я вспомнил, что Лука Карделли совершил подвиг и математически описал ООП. Думаю лучшего источника не найти:
http://lucacardelli.name/Talks/1997-06%20A%20Theory%20of%20Object%20(LICS).pdf
http://lucacardelli.name/indexPapers.html#Objects
Ну а дальше гуглом.
No. 7869    
>>7868
Вот эта пдфка лучше: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.187.4575&rep=rep1&type=pdf
No. 7872    
135057629755.png-(232.14KB, 850×850, sample_2f78bf70fb79263f880a2562ec538616.png)
7872
>>7867 Ты злой какой-то. Попей чайку, успокойся, а то тебе всюду долбоебы и гимназисты мерещатся.
Я просто спросил, какую бы парадигму программирования ты бы использовал для приведенного мной примера. Не защащая при этом ООП и плюсы. Критиковать и наезжать все могут, а ты лучше что-нибудь по делу скажи.
No. 7873    
135058283358.jpg-(54.44KB, 499×396, ignore.jpg)
7873
>>7872
No. 7881    
>>7872
>всюду долбоебы и гимназисты мерещатся
Этого не может быть, я такую тупость выдумать не в состоянии.
> какую бы парадигму программирования ты бы использовал для приведенного мной примера.
Для сферической игры в вакууме на OpenGL? Если за деньги (читай - обязательства), то на той, для которой больше всего релевантных либ и в которой больше всего опыта.
Не за деньги? На том, что нравится.
Тяжело было подумать, правда?

>Критиковать и наезжать все могут, а ты лучше что-нибудь по делу скажи.
>Хочу разобраться в парадигме ООП. В чем соль ООП?
Ну вот и кем прикажешь тебя считать после этого, как не школьником и долбоебом?

>>7873
Конечно уйду. Какой смысл словами объяснять что-то упертым фанатикам? Только личное наступание на грабли может заставить таких подвергнуть критике свою точку зрения.
No. 7901    
13508528713.jpg-(646.84KB, 1049×816, b58bc083a7421068bce9cb8aa7c4203d.jpg)
7901
>>7881
>>Этого не может быть, я такую тупость выдумать не в состоянии.
Не скромничай. Прочитай каждый свой предыдущий пост, и в каждом ты найдешь такую тупость, украшенную выражениями разной степени цензурности.

>>Для сферической игры в вакууме на OpenGL? Если за деньги (читай - обязательства), то на той, для которой больше всего релевантных либ и в которой больше всего опыта. Не за деньги? На том, что нравится. Тяжело было подумать, правда?
Ну ок, большинство самых распространенных фреймворков и библиотек для этого дела - объектно-ориентированные и под кресты. Попадаются еще и процедурные, но их меньше. Это все тоже поделки школьников и дебилов?

>>Ну вот и кем прикажешь тебя считать после этого, как не школьником и долбоебом?
Лол, вторая фраза ОПа, а не моя. Хотя-бы читай внимательнее.
No. 7906    
>>7901
Чтобы сохранить этот раздел в читаемом состоянии, предлагаю перестать подкармливать этот неудачный косплей Луговского.
Судя по упоминанию лиспа и окамла и резким высказываниям о c++, сажафаг пытается сказать, что функциональная парадигма часто приводит к более коротким и изящным решениям, чем объектно-ориентированная, но напрямую сказать об этом почему-то стесняется.
No. 7907    
>>7901
> Прочитай каждый свой предыдущий пост, и в каждом ты найдешь такую тупость, украшенную выражениями разной степени цензурности.
Учитывая твои мыслительные способности, позволяю тебе привести один пример, но с пояснением причисления его к "тупости".
>Ну ок, большинство самых распространенных фреймворков и библиотек для этого дела - объектно-ориентированные и под кресты. Попадаются еще и процедурные, но их меньше. Это все тоже поделки школьников и дебилов?
Мне твой non sequitur остоебенил. Думай что хочешь.

>Лол, вторая фраза ОПа, а не моя.
И что? Тред про ООП? Про ООП. Если в твоем мирке это не так - то и хуй с тобой.

>>7906
>Судя по упоминанию лиспа и окамла и резким высказываниям о c++, сажафаг пытается сказать, что функциональная парадигма часто приводит к более коротким и изящным решениям, чем объектно-ориентированная
Пиздец.
No. 7948    
13517124216.jpg-(40.74KB, 231×259, bjarne_stroustrup[1].jpg)
7948
Бамп
No. 7957    
>>7948
"Какая отвратительная рожа!"
No. 8027    
Бамп
No. 13947    
Бамп
No. 13950    
>>13947
Бамп длинною в жизнь.
No. 14010    
Программные продукты, написанные в ООП значительно проще расширять и поддерживать.
Если мы говорим о коммерческой разработке, где важен не столько сам код, сколько адекватные сроки решения поставленных задач, которые разумеется не состоят только из новых фич, то ООП продукты вырываются вперёд за счёт двух важнейших параметров в коммерческой разработке:
1. Способность модифицировать куски системы без риска разломать вообще всё.
2. Возможность переиспользовать имеющийся код, если он вписывается в решение поставленной задачи.

Функциональщики соснут тогда, когда потребуется написать действительно большой продукт с сотнями сущностей и тысячами специфичных для этих сущностей действий.
Когда мы проектируем системы, мы проектируем их отталкиваясь от реального мира. Что вот, например, есть User. User имеет ряд, специфичных для себя полей, а так же User имеет ряд специфичных для себя, действий (методов). При ООП подходе это описывать удобно, зачастую прозрачно и не вызывает боли, если есть мозг. Если мозга нет - то можно и в процедурном стиле написать что угодно, прыгая взад - вперёд через goto.
Только вот кто это будет поддерживать? Тот кто это написал? Отлично. Это определённо успех.

Отвечая кратко на вопрос ОП-куна:
ООП - это для крупных проектов, с большой кодовой базой, где работает много людей. Всё иное, вероятно, рано или поздно повысит градус энтропии до такого состояния, что разобраться в кодовой базе смогут лишь единицы.
Это не выгодно и неудобно для бизнеса, для проектирования, для разработки.
No. 14013    
Опять двадцатилетние синьоры хуйню на чанах несут. Куда смотрит ПэЖэ?!
Удалить сообщение []
Пароль  
[Mod]