[ d ] [ b / cu / dev ] [ r ] [ a / ts ] [ ci ] [ gnx / int ] [ misc ] [ dev / stat ]
[Burichan] [Futaba] [Gurochan] [Tomorrow] [Архив-Каталог] [Главная]

Файл: cats_babuska[1].jpg -(129 KB, 600x570, cats_babuska[1].jpg)
129 No.7818  
Хочу разобраться в парадигме ООП. В чем соль ООП?
Где описана общая парадигма ООП (желательно, ёмко, но что-бы ни в коем случае не был упущен ни один аспект).
>> No.7819  
>>7818
Есть, фактически, два сильно отличающихся вида ООП. Наиболее распространённый сейчас пошёл откуда-то из стороны С++, это "инкапсуляция" - "скрытие" - "полиморфизм". Но более Ъ ООП в Smalltalk.
Это просто на случай, если тебе попадётся сначала книжка какого-нибудь плюсиста или жабиста.
>> No.7821  
>>7818
ООП - переоцененное говно для быдла. Парадигма его проста:
1. пихаем данные ("поля") и функции ("методы") работы с ними в "первоклассные" недомодули под названием "класс". Введем для них область видимости для них. Например "спрятать нахуй так, чтоб никто не видел, кроме класса, в котором эти методы/поля определены". "Волшебное слово" для этого - "инкапсуляция".
2. Наебываем всех якобы лучшим перееспользованием кода за счет введения "наследования". Наследование это когда один класс содержит в себе все поля и методы другого. "Волшебное слово" — "наследование".
3. Позволим некоторые методы переопределить (назовем их виртуальными. Я не представляю из какого хуя была высосано это название.), то есть переписать тело виртуального метода в классе-наследнике (это который содержит в себе другой класс). Сделаем диспатч по типу для виртуальных методов - это когда во время исполнения программы конкретно вызываемый метод определяется по типу объекта. Это последнее "волшебное слово" - "полиморфизм".
>> No.7828  
Файл: edtHrK4sJ_4.jpg -(154 KB, 1280x960, edtHrK4sJ_4.jpg)
154
>якобы лучшим перееспользованием кода за счет введения "наследования"
Сто раз разбирали по косточкам, когда агрегация > наследования. 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  
Файл: 133ae41f2996a4a5d475ee86ce35f870.png -(315 KB, 633x604, 133ae41f2996a4a5d475ee86ce35f870.png)
315
>>7838 А чем ты предлагаешь пользоваться вместо ООП для написания, например, игрушек с OpenGL графикой?
мимо проходил другой любопытный крестоблядь-кун
>> No.7849  
Файл: 11b37efbcf72eff87d8ae460e8a8afa1.jpg -(60 KB, 539x750, 11b37efbcf72eff87d8ae460e8a8afa1.jpg)
60
>>7846
Абстракция и агрегирование — понятия и ООП в том числе, ошибки не вижу. А вот тебе советую вернуться туда, откуда выполз.
И я вообще паскалебог, если что.
>> No.7850  
>>7848
OpenGL сам по себе процедурный.
???
Obvious conclusion is obvious.

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

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

Дебил на дебиле и дебилом погоняет.
>> No.7856  
Файл: 29c8f55e60f78e9edc907402d69ab462.jpg -(441 KB, 800x1000, 29c8f55e60f78e9edc907402d69ab462.jpg)
441
>>7853
>Если ты хочешь писать с врапперами, хуле ты мне ебешь мозги про OpenGL?
Ты вообще знаешь, что такое "врапер"?
>> No.7857  
Файл: -(0 KB, x)
>>7853
>Внутри он не процедурный, ага?
Идеологически это ОО. Типичный процедурный интерфейс ОО-системы, просто в качестве this передаётся уникальный идентификатор вместо указателя.
>> No.7862  
Файл: 2cca23c12395caa8e8f4fe057f9ced95.jpg -(527 KB, 768x1024, 2cca23c12395caa8e8f4fe057f9ced95.jpg)
527
>>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  
Файл: sample_2f78bf70fb79263f880a2562ec538616.png -(232 KB, 850x850, sample_2f78bf70fb79263f880a2562ec538616.png)
232
>>7867 Ты злой какой-то. Попей чайку, успокойся, а то тебе всюду долбоебы и гимназисты мерещатся.
Я просто спросил, какую бы парадигму программирования ты бы использовал для приведенного мной примера. Не защащая при этом ООП и плюсы. Критиковать и наезжать все могут, а ты лучше что-нибудь по делу скажи.
>> No.7873  
Файл: ignore.jpg -(54 KB, 499x396, ignore.jpg)
54
>>7872
>> No.7881  
>>7872
>всюду долбоебы и гимназисты мерещатся
Этого не может быть, я такую тупость выдумать не в состоянии.
> какую бы парадигму программирования ты бы использовал для приведенного мной примера.
Для сферической игры в вакууме на OpenGL? Если за деньги (читай - обязательства), то на той, для которой больше всего релевантных либ и в которой больше всего опыта.
Не за деньги? На том, что нравится.
Тяжело было подумать, правда?

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

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

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

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

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

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

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

Отвечая кратко на вопрос ОП-куна:
ООП - это для крупных проектов, с большой кодовой базой, где работает много людей. Всё иное, вероятно, рано или поздно повысит градус энтропии до такого состояния, что разобраться в кодовой базе смогут лишь единицы.
Это не выгодно и неудобно для бизнеса, для проектирования, для разработки.
>> No.14013  
Опять двадцатилетние синьоры хуйню на чанах несут. Куда смотрит ПэЖэ?!
>> No.27716  
Файл: 56379190_p0.jpg -(840 KB, 842x1290, 56379190_p0.jpg)
840
>>14013
Лучший тред. Читал с удовольствием.
>> No.27724  
>>27716
Понастольгировал, всплакнул?
>> No.27729  
Файл: faptcha_php.png -(4 KB, 90x50, faptcha_php.png)
4
>>27724
Удивился какие жестокие нравы были в разделе. Но зато хоть люди были какие-то.
>> No.27737  
>>27729
Аноны, наверное, в ту пору горячими студентами были. А теперь они выгоревшие работяги...
>> No.27742  
>>27737
Все-таки гики-студенты, если вообще студенты. Обычному студенту объяснять другим людям что такое ООП и в голову бы не пришло, тем более сраться за корректную терминологию и даже идеологию применения.
>> No.27787  
>>27729
Устроить холивар и засыпать кому нибудь хуёв за воротник - тогдашняя норма в айтишечке.



[ d ] [ b / cu / dev ] [ r ] [ a / ts ] [ ci ] [ gnx / int ] [ misc ] [ dev / stat ]
[Burichan] [Futaba] [Gurochan] [Tomorrow] [Архив-Каталог] [Главная]