LINUX.ORG.RU

ООП

 


1

1

Всем понятно что такое ООП (ООП - это объекты + рандомный набор
принципов программирования).
Но вот зачем работодатели требуют знания от будущих работников что
значит этот термин?
Знание смысла этого термина как то улучшает качество кода?
Если человек скажет что: «ООП это показавшая свою низкую
эффективность концепция», то его код лучше что ли будет или хуже?

★★
Ответ на: комментарий от Int0l

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

goodbigbeer
()
Ответ на: комментарий от goodbigbeer

в функциональной парадигме есть только подстановки и редукции

следует также понимать, что в чисто функциональном стиле практически никто не пишет. так, в Haskell-среде были статьи настаивающие на использовании термина аппликативное программирование применительно к Haskell

jtootf ★★★★★
()
Ответ на: комментарий от Int0l

Я считаю у каждого термина должно быть одно определение.

это замечательно. у термина ООП нет одного определения. именно поэтому на собеседованиях задаётся вопрос, который тебя задел. что-то ещё непонятно?

jtootf ★★★★★
()

Код

А ты мог бы рассказать чуть про свой бекграунд? Чем ты занимаешься и какой код пишешь? Сколько лет программируешь в реальных проектах?

anonymous
()

Нынче студенты совсем обленились. Даже книжку открыть не могут. ТС, тебя отчислят за повторение бреда с ЛОРа.

peregrine ★★★★★
()

Всем понятно что такое ООП (ООП - это объекты + рандомный набор принципов программирования)

Вот для того и спрашивают на собеседованиях чтобы таких самоуверенных и безграмотных как ты отсеивать. Причём большую опасность представляют самоуверенные, для которых «всем понятно» и далее придуманный ими бред. Вообще после фразы «всем понятно» нужно выкидывать соискателя на мороз.

mbivanyuk ★★★★★
()
Последнее исправление: mbivanyuk (всего исправлений: 1)
Ответ на: комментарий от mbivanyuk

Ого. Позвольте задать вам вопрос, а чем они опасны?

Int0l ★★
() автор топика
Ответ на: комментарий от Manhunt

Для ООП желанно так называемое «наследование интерфейсов».

Ого, адекват на моем ЛОРе, зафрендил

phoenix ★★★★
()
Ответ на: комментарий от Manhunt

Если нет синтаксического сахара, чтобы делегировать реализацию, значит это такой суровый язык

И какой мэйнстримный язык позволяет сделать делегата без танцев с бубном и магии?

no-such-file ★★★★★
()
Ответ на: комментарий от no-such-file

Если нет синтаксического сахара, чтобы делегировать реализацию, значит это такой суровый язык

И какой мэйнстримный язык позволяет

В известных мне мейнстримных языках такого сахара нет. За то есть толпы кодеров на этих языках, использующих наследование вместо композиции с единственной целью — не разводить бойлерплейт. То есть никаким liskov substitution там и не пахнет, этим людям не семантика предмета описываемого важна, для них наследование - это чисто синтаксическое средство, позволяющее избежать механического рутинного перепечатывания названий методов и аргументов. Людей этих вполне можно понять, ибо ублюдочные языки никакой адекватной альтернативы им не предоставляют.

Посмотрим, может в Rust сделают по-человечески: https://github.com/contactomorph/rfcs/blob/delegation/text/0000-delegation-of...

Manhunt ★★★★★
()
Последнее исправление: Manhunt (всего исправлений: 1)
Ответ на: комментарий от bookman900

Для анонiмуса учётка старовата: «Дата регистрации: 17.04.2012 16:32:14»

Manhunt ★★★★★
()
Ответ на: комментарий от Manhunt

liskov substitution там и не пахнет

А какое отношение эта полуграмотная кухарка имеет к ООП, не считая того, что она утверждала, что имеет какое то отношение к ООП? Алан Кей где-нибудь упоминает о liskov substitution?

anonymous
()

это чтобы проверить, отформатирован ли ты
с отформатированным кажется удобнее, но это иллюзия

Debasher ★★★★★
()
Ответ на: комментарий от Manhunt

В русте весьма своеобразное ооп, что-то в стиле «нет никакого ооп, но мы настаиваем что руст следует называть ооп-языком» или «код реализуемый в ооп языке в 5 строк реализуется на русте в 500 с болью в жопе, если вообще реализуется»

anonymous
()
Ответ на: комментарий от anonymous

никакого ООП

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

Книга о проектировании, а ООП без соответствующего проектирования не имеет смысла.

winlook38 ★★
()
Ответ на: комментарий от Manhunt

Если нет синтаксического сахара, чтобы делегировать реализацию, значит это такой суровый язык :)

На примере плюсов — как это будет выглядеть? Делегирование реализации при замене наследования вложением. Или плюсы как раз из таких суровых языков?

intelfx ★★★★★
()
Ответ на: комментарий от Manhunt

В известных мне мейнстримных языках такого сахара нет

nuff said.

никаким liskov substitution там и не пахнет, этим людям не семантика предмета описываемого важна

Это проблема таких людей, а не наследования вообще.

no-such-file ★★★★★
()
Ответ на: комментарий от anonymous

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

Manhunt ★★★★★
()
Ответ на: комментарий от no-such-file

И какой мэйнстримный язык позволяет сделать делегата без танцев с бубном и магии?

Возможно, D с его alias this. Правда язык не особо мейнстримным, да и я, если честно, не сильно понимаю чем это отличается от наследования. Хз если в языке способ коротко делегировать отдельные методы, а не все сразу.

DarkEld3r ★★★★★
()
Ответ на: комментарий от Debasher

с отформатированным кажется удобнее, но это иллюзия

Почему иллюзия? Разве с «единомышленниками» (безотносительно ООП) не проще?

Конечно, бывают исключения, но в среднем случае как думаешь насколько продуктивным будет сотрудничество топик-стартера, который будет считать коллег «тупыми ООП макаками», а они его, в свою очередь, «поехавшим лиспером»?

DarkEld3r ★★★★★
()
Ответ на: комментарий от intelfx

Или плюсы как раз из таких суровых языков?

Дык, в плюсах есть нормальное наследование реализации - поэтому и нет «костылей» для делегирования.

DarkEld3r ★★★★★
()
Ответ на: комментарий от anonymous

В русте весьма своеобразное ооп, что-то в стиле «нет никакого ооп, но мы настаиваем что руст следует называть ооп-языком»

Так ведь там нет как раз наследования реализации, всё остальное имеется, разве нет?

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

DarkEld3r ★★★★★
()
Ответ на: комментарий от impowski

«тру поцаном»

«тру поцан» должен, внатуре, обосновать свой базар. Иначе он не «тру поцан», а камфора паршивая, конь педальный, вошь подретузная и достоин чморения и опущения.

Ну что, «тру поцан», обоснуешь? или так и останешься чмом до конца жизни своей никчемной?

anonymous
()
Ответ на: комментарий от Int0l

Вы считаете, что если человек не обучен плавать. То он не сможет когда-нибудь сам научиться плавать?

Aswed ★★★★★
()
Ответ на: комментарий от impowski

Я просто по моде иду

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

anonymous
()
Ответ на: комментарий от Manhunt

А причем тут дженерики?

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

anonymous
()
Ответ на: комментарий от Manhunt

То есть никаким liskov substitution там и не пахнет, этим людям не семантика предмета описываемого важна, для них наследование - это чисто синтаксическое средство

Ну ты прям америку открыл. Да, это всего лишь синтаксическое средство, чтобы не дублировать код. Как и полиморфизм всего лишь механизм диспетчеризации. Эзотерику и философию оставим акадэмикам и анонiмусам.

anonymous
()
Ответ на: комментарий от anonymous

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

В огороде бузина, а в Киеве — дядька.

Manhunt ★★★★★
()
Ответ на: комментарий от Manhunt

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

anonymous
()

Я считаю у каждого термина должно быть одно определение.

Мне кажется ты коммунист. Предлагаешь запретить словарь Ожегова и оставить словарь Даля?

JANB
()
Ответ на: комментарий от quantum-troll

Не очень понимаю вопрос. ООП здесь притом, что в объектной модели наследование выражает отношение «быть разновидностью».

Manhunt ★★★★★
()
Последнее исправление: Manhunt (всего исправлений: 1)
Ответ на: комментарий от anonymous

Эзотерику и философию оставим акадэмикам и анонiмусам.

Слава Барбаре, никакой философии в наследовании нет. LSP строго формально и исчерпывающе описывает, что значит «быть разновидностью».

это всего лишь синтаксическое средство, чтобы не дублировать код

Твой подход — это заколачивание шурупов молотком.

Manhunt ★★★★★
()
Последнее исправление: Manhunt (всего исправлений: 1)

Всем понятно что такое ООП

Ололошечки. Вот так вот сразу и всем?

ООП - это объекты + рандомный набор

принципов программирования

Тебе, вот, например, не понятно.

Если человек скажет что: «ООП это показавшая свою низкую

эффективность концепция»

То его надо ссаными тряпками вон из профессии гнать.

anonymous
()
Ответ на: комментарий от no-such-file

Это проблема таких людей, а не наследования вообще.

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

Manhunt ★★★★★
()
Последнее исправление: Manhunt (всего исправлений: 1)
Ответ на: комментарий от anonymous

И вот вы такие категоричные люди, даже не можете четкого определения ООП дать. Классическое поведение у вас у таких.
Прежде чем критиковать чужое м.б., свое определение ООП дадите?
А так сплошные не аргументированные выводы.

Int0l ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.