THE MOST FREQUENT MISCONCEPTIONS ABOUT OOP
HTML-код
- Опубликовано: 8 окт 2019
- In this video, we'll find out the exact amount of OOP paradigms, and we'll also explain each of the existing ones:
- Encapsulation
- Inheritance
- Polymorphism
- Abstraction
- Message sending
- Code Reuse
Message passing realization in JavaScript
github.com/extremecodetv/mess...
Video about encapsulation and hiding
• ТВОЯ ГЛАВНАЯ ОШИБКА В ООП
Video about Strategy
• Важнейший шаблон прогр...
► ► ►
Used materials:
Harold Abelson, Gerald Jay Sussman --
Structure and Interpretation of Computer Programs
bit.ly/2ASDW32
Herbert Schildt --
Java. Full guide
bit.ly/2VmthXP
GoF --
Design Patterns
bit.ly/2Vj3FeJ
C. McConnell --
Perfect code
bit.ly/31PuRnE
Bertran Meyer --
Object-oriented Software Construction
David West --
Object Thinking
Alan Kay's letter --
userpage.fu-berlin.de/~ram/pub...
David West interview --
jug.ru/2016/09/bugayenko-west/
► ► ►
Our social networks
● Insta: / _extremecode
● VK: extremecodetv
● Telegram Chat: t.me/extremecode (or search @extremecode) - Наука
Братан, хорош, давай подпишись на наш Telegram канал, мы там байки и кулстори травим
🖤 t.me/extremecode
малёх не понял про наследование в жс, но в шарпе же тоже можно дописать методы в родительский класс и это ничего не сломает, но только если эти методы будут использованы только в одном из наследников то ведь лучше как-то по другому это реализовать? Я такое "понял" не сам, мне помогли (
чтобы быть такой лошарой как ты.....
"Девять парадигм ООП" - половину видоса бомбит на инкапсуляцию.
>
>
ruclips.net/video/evtt2YV9PPM/видео.html Шестая с половиной парадигма ООП
Сокрытие
Инкопсуляция
Сокрыть не получилось )
Все ясно. Экстримкод-это сокрытие, инкапсуляция-это харчок. Наконец-то разобрался
Почему 630 лайков но нету ответов?
@@bleulegend ты все испортил
@@deleted-ox5jl ты все испортил
@@bleulegend ты всё испортил
@@thetraveler7779 ты все испортил
От инкапсуляции до Марса в одно сокрытие
Менее чем в 12 парсеков!
*вскрытие :D
Я понял : полиморфизм это сокрытие, инкапсуляция это сокрытие, а наследование это открытие. Спасибо авторам канала!
При наследовании ты можешь переопределить публичный метод родителя, чем закрыть изначальную реализацию, следовательно наследование это сокрытие, пусть и косвенно! Сдедовательно весь ООП направлен на то, чтобы что-то скрывать! Срочно пишем в рен тв с этими догадками, они обязаны разобраться
:rofl:
@@alexb7888 А разве можно закрыть публичный метод? Вроде-бы наоборот, можно только расширять видимость
@@user-yt2pk2mr8h ну смотри, был public testMethod который складывал 2 и 2, мы унаследовались, переопределили его и теперь он делает 2 + 5 условно, изначальную задумку мы скрыли) А заодно нарушили принцип подстановки Барбары Лисков, который вроде как один из базовых, но не вяжется с ООП и реально в проектах редко соблюдается
@@alexb7888 Блин, я, кажись, неправильно вас понял. Я подумал, что закрыть - значит сделать приватным вместо публичного) Тогда вопрос снят
Спасибо за видео, наконец-то понял, что инкапсуляция - это сокрытие
Пидор)
Ох твою мамку в этот момент возжелали все остальные в этих каментах
Пхахахахах
Только ради колонизации Марса: инкапсуляция - это сокрытие.
Абсолютно не согласен инкапсуляция это харчок.
Давайте хором. ИНКАПСУЛЯЦИЯ - ЭТО СОКРЫТИЕ. ИНКАПСУЛЯЦИЯ - ЭТО СОКРЫТИЕ. ИНКАПСУЛЯЦИЯ - ЭТО СОКРЫТИЕ.
Надеюсь, автор привязан к ракете. А не лежит задницей вверх. Иначе есть опасность изменить орбиту Земли.
Нет, инкапсуляция - это не "сокрытие". Это кое-что более сложное, а сокрытие является лишь следствием данной механики.)
Слишком узкое определение, но верное.
Все говорят, что инкапсуляция - это сокрытие. Но что, если я скажу, что автор - харчок?
ну вщет
Харчок сейчас помогает Бэду с обзорами на русское кино
Собираем петицию, за то чтобы официально включить OPESDULATION в состав ООП.
1 голос - 1 лайк
Бравооо
нет, не надо, я к этой парадигме не готов
Где подпись ставить нужно?
А можно внести правки в концепцию?
Так сказать добавить параметр степени тяжести.
Ну и соответственно наказание сделать гибким.
Заменить объект применения и область применения объекта.
А особо ретивым попросить присесть на пирамидку и подумать над своим кодом. (Колыбель Иуды)
Жестоко
*Временные Тайм-Коды:*
1 - *Инкапсуляция:* 4:52
2 - *Наследование:* 7:53
3 - *Полиморфизм:* 10:14
4 - *Абстракция:* 14:04
5 - *Посылка сообщений:* 15:26
*Временные **-"Экстремальные Коды"-** Тайм-Коды:*
1 - *Инкапсуляция:* 4:52 -6:54- -Подробнее в комментариях, там в одно сокрытие до Марсе-
2 - *Наследование:* 7:53 -8:37-
3 - *Полиморфизм:* 10:14 -11:44- -13:57-
-Паттерн 3.00000...∞1- *Паттерн* "Стратегия": 12:55 _13:15 -В описании, если что-
-Не выведена в парадигму- 4 - *Абстракция:* 14:04 -14:25- -14:47-
5 - *Посылка сообщений:* 15:26 -15:43-
-6- ??? - *Повторное использование:* 17:42 -17:59- -На Марсе-
-∞- 6.5 - *-Опи***ляция:-* 18:38 -18:32-
6.5+5 *Точнее* 4+5 - *SOLID:* 19:00 -18:52-
-Лайк- Красивая кнопка, горит синим, когда нажимаешь, круто да? -Нажми, и от Инкапсуляции до Марса, в 1 сокрытие- ЖМИ НЕ ЖМИСЬ -Вот так выглядит код, ой, хотел сказать текст, когда ты обязан дописывать ЧУЖОЙ код, точнее читать его, и то-есть текст, и поэтому он сбежавший "ЧУЖОЙ", из того же фильма- :)
↓
Неправильно. Вот правильные таймкоды:
1 - Сокрытие: 4:52
2 - Повторное использование кода: 7:53
3 - Чёто важное вроде: 10:14
4 - Сокрытие: 14:04
5 - че?: 15:26
если мат скрывают кряканьем , это сокрытие или инкапсуляция ? инкапсуляция совести ? )
Сокрытие это если бы он матом ничего не говорил, а так это инкапсуляция - так как он защищает свой компонент канал от другого компонента "цензура ютуб" и компонента "хейтеры в комментах" что подходит под второе определение, а так же мат понимают только те, кто знает это матное слово что подходит под первое определение инкапсуляции
ты спросил одно и тоже. если мат скрывают кряканьем, это сокрытие или сокрытие? Мы ведь решили, что инкапсуляция === сокрытие
Кря
Это утиная типизация
@@sirjorgenbjorgen2295 чувак ты крутой😂
Инкапсуляция - это когда твоя мама держит тебя в секрете от твоего папы.
Сокрытие?
Или когда твоя мама держит от тебя в секрете каким методом и от какого предка она тебя создала
А сокрытие?
Интересный факт: инкапсуляция - это сокрытие
осторожно, а то авторы этого канала сделают сокрытие твоей головы
дерзко
Только хотел написать эту правду:)))
Осторожнее, а то инкапсулируют пулю в твое тело с помощью пулемета, и сделают сокрытие твой башки)
@@iryandriver ТИХО! Мы пытаемся сделать вечный двигатель работающий на адском подгорании.
Только не парадигмы, а принципы... Учи маслят правильно! :)
Парадигмы: структурное П, функциональное П, ООП и т.п.
Парадигма тут была одна -- ООП.
концепции
Ну все, все, уговорил, Коль. Женюсь на тебе :*
Слишком сладкие видосы
Ты хочешь получить доступ к ссылкам?
Вот эту фразу надо было сокрыть
твой стиль изложения информации божественен. буду надеяться что ты напилишь еще много интересного контента
Как приятно смотреть это видео - и шутки, от которых ржешь постоянно и, в то же время, разговор по делу. Отличный формат. Видео огонь!
7:00
2023 год.
SpaceX запускает рейсовых Николаев на жопной тяге на Марс.
А секрет двигателя инкапсулировал от общественности)
Как всегда подача просто идеальна! Ваш канал и CODE BLOG лучшее что только есть!) Жду с нетерпением выпуск про SOLID.
Смотрю давно вас) всё же какой классный канал)) Успехов в развитии)
В ООП самое главное это Правила. Почему-то многие об этом забывают. Смысл в том, чтоб на проект, который писал Вася, и был успешно уволен, пришел Петя, который сходу начал работу, а не начал вековое изучение проекта, параллельно перестраивая свой ассоциативный ряд с ассоциативным рядом Пети. Чем строже правила, патерны, ограничения, тем проще всего этого достичь. Теряется дата ориентация, но лучше потерять 30% на производительности, чем 500% на времени разработки.
Скажи это Васе, который был успешно уволен потому что на его место легко взять любого Петю.
На самом деле, Вася сам ушел, когда все понял :) а конвейер продолжил работать по своим паттернам :)
Суть всего видоса: ООП это сокрытие
Суть всего это то что программист это и есть сокрытие он Че-то там пишет но реально нихрена никому не может объяснить как и зачем он это делает.
В ООП 3 буквы, а это значит, что ООП придумали иллюминаты, так как их символ - треугольник, у которого какраз 3 стороны. е изучайте ООП, это помогает иллюминатам захватить мир. Все, кто становится ООП программистами, становятся рабами системы! Одумайтесь! Ещё есть шанс всё изменить!
Спасибо, отличная работа. Давай скорее видео про SOLID
Братан, хорош, давай, давай вперёд! Контент в кайф, можно еще? Вообще красавчик! Можно вот этого вот почаще?
Спасибо, весело и позновательно:) Особенно поржал над тем, когда увидел у себя на полке книги, используемые в этом видео)))
Братан, хорош, давай, давай, вперёд! Контент в кайф, можно ещё? Вообще красавчик! Можно вот этого вот почаще?
Манера и подача информации на высшем уровне!! И смешно и интересно ! 👍😂
Спасибо за видос! Нужная штука! Снимете урок про UML? Так сказать, для осознания проектирования программного обеспечения. Не помешало бы...
очень интересный и познавательный контент, а главное еще и веселый. Спасибо очень годно!
ООП это и есть парадигма
а то что тут рассказывается - это принципы или концепции
То что рассказывается - какие всё плохие что не так определяют инкапсуляцию.
ООП это сокрытие
@@adbln1 да мздит он, на самом деле все прекрасно понимают что имеется ввиду под сокрытием, а ему лишь бы к словам придраться, это больше субъективщеной пахнет с точки зрения собственного болезненного восприятия этого выражения.
Замечательное видео, очень познавательно и забавно. Надеюсь я верно понял, что инкапсуляция это сокрытие. Удачи в успехах!
Спасибо чел, полезное видео, продолжай в том же духе!
Видос ещё не смотрел, но заранее скажу - Инкапсуляция это сокрытие.
Кстати про SOLID было бы рили очень интересно послушать.
как биткоин в конце 2017
люди в начале 2021: 🗿
Давно ждал видосик про ООП
Спасибо за контент! Наконец-то посмотрел материал о программировании с улыбкой и слезами счастья на лице, а не глубокой депрессии :D насмеялся от души, класс))
А что если я скажу, что парадигма - это весь ООП, а не один из его принципов?
Есть зажигание!
Реактивный двигатель работает на 100500%
Долетим до Марса за пару минут
ис/ах (инкапсуляция - сокрытие, автор - харчок)
Гениально про ООП! Супер!
Го больше конента про паттерны и вообще про теоретичекие штуки! Оч классно и доходчиво)
Парадигма опиздюляция - то что надо. Всем DI, посоны)
Сижу бухаю пиво , ещё не смотрел, но сразу лайк)
Супер пупер круто. Спасибо :3
Ребят, классно подаете материал. Вас очень интересно смотреть. Единственное, чего бы Вам порекомендовал, это ознакомиться ближе с языками, которые Вы либо игнорируете, либо высказываетесь в негативном ключе. В том же PHP версии 7+ появилась достойная типизация, в следующей версии собираются вводить и типизацию свойств. Есть так же возможность задать declare(strict_types = 1), что изменит поведение интерпретатора и прекратит динамическую типизацию при задании типа. А в остальном, все достойно, только на протяжении 10 роликов бомбить что не всегда люди бывают правы, ну это наверно много=) пора бы это отпустить. Всех Вам благ!
Надо разобраться с SOLID, обязательно
Охуеть, я все понял. Понял все я... Лайк.
Про mvc mvvm etc можна?
Крутяк, как всегда. )
Охрененный гоп-стайл, после уроков по программированию отдыхаю тут, у тебя на канале )
Ребята, большая просьба снять видео про слабую и сильную типизацию .
Строгую и динамическую типизацию
11:55 Он написал abstract class вместо intreface,
Override'им его!
thank you, the knowledge you passed on put everything into concepts
16:04 При вызове несуществующего метода вылетит исключение "unrecognized selector sent to instance". А при посылке сообщения нулю действительно ничего пре произойдет и будет возвращен нуль, чем часто очень удобно пользоваться при вызовах вида [[obj method1] method2], экономя на проверках на нуль (экономя в лаконичности, конечно)
Такая вещь, как какие-то ебаные факты - это всего лишь препятствие личному мнению аффтара, которое он выдает за факты
Смотри, дяденька любитель фистинга. Кто-нибудь добудет твои ссылки...
+1
Согласен с автором: инкапсуляция - это сокрытие.
интересно смотреть ваши видео после того как многое уже осознал, значительно больше смысла замечаешь) И да после изучения паттернов реально понимание усиливается)
Автор - красавчик. После Пайтона в течение долгого времени не мог понять зачем вообще нужна вся эта страшная громадина правил работы с полифорфными типами в Java, зачем нужно так мучиться, когда можно не мучиться вовсе). И с null всегда удивляла в Java ситуация в контексте ООП
13:41 - ну конечно Test() будет недоступен, ведь obj надо перекастить в тип А и тогда Test() станет доступным. У Parent classa нету контекста для Test()
A obj2 = (A)obj;
obj2.Test();
А так пытаться вызвать в родительском классе метод дочернего невозможно же )
используя апкаст, при вызове метода, который переопределен в классе-потомке, будет вызван именно переопределенный метод, чего не скажешь об обычных методах класса-потомка, которые не определенны в родительском классе. их тупо нельзя будет вызвать
А есть же ещё Егор Бугаенко, у него вообще своя атмосфера в ООП)))
по моему он просто любит бить людей - к ООП это слабо относится
поставил лайк, когда увидел слово "оподливился", спасибо за годный контент
У меня прям знатно пригорело когда я где-то в статье увидел что-то вроде:
"Ещё 12 принципов ООП SOLID,DRY,KISS"
Так, я в комменты зашёл комменты умных дядек почитать с бородой по колено, а не послушать про ваш СКРЫТЫЙ ПУЛ
Будут ли видосы по разбору IDE, текстовых редакторов, плагинов, расширений как в видео обзор Visual Studio 2017?
Пздц, уже к середине видео поставил на паузу так как уже не мог вникать в происходящее из-за своего ржача))) Хотя дельные вещи толкаете, но в такой классной форме! Спасибо за материал и за подачу) Видос бомба)))
P.S. Отныне слово Scriptизёр навсегда в моём лексиконе)))
17:36 Уже давно есть sicp где используется питон, но я бы всё равно рекомендовал попробовать освоить версию со scheme. Неплохо так из зоны комфорта может выдернуть, это полезно.
Про опиздюляцию мало рассказал. Не понятно! Если можно, отдельный выпуск сделайте про опиздюляцию.
4:39 даже программист является объектом
Главная задача повторного использования, как по мне, в том, чтобы потом не пришлось менять в разных местах одно и то же. Соответственно, тут важно понимать, где у тебя одни и те же действия, а где очень похожие, но все же различные. Это вообще не очевидно бывает, и порой работает только на уровне чуйки.
Интересно, спасибо!!!
Есть по сути всего 3-4 парадигмы: императивная, декларативная, функциональная и сообщения (акторы); Все остальное - не парадигмы, а принципы и инструменты. Например, SOLID - принципы ООП, а, например, наследование - это инструмент с помощью которого достигают полиморфизма. Вкуриваете?
Википедия утверждает, что функциональное программирование - это разновидность декларативного.
@@koshchey42 Она нагло врёт. Или искренне ошибается. в противном случае все бы со Лиспа перешли на кобол.
Объясни, почему так. Я Лисп знаю очень слабо, Кобол совсем не знаю. Какой язык является декларативным по твоему мнению?
Наследование не только позволяет реализовать полиморфизм. Наследование облегчает создание нового класса на базе существующего. Полиморфизм может быть и без наследования.
@@koshchey42 Чисто декларативный и вполне себе универсальный язык - XML. Описываешь схему и интерпретатор к ней и всё, у тебя новый язык DSL. В функциональном языке тебе придётся описывать код в виде формул, а не отношения и правила между объектами.
Чушь. XML - это базовый язык для создания других языков на его основе. На базе XML может быть создан язык любого типа (как язык программирования, так и язык описания данных). Сам по себе XML не является языком программирования.
Вроде в Simula впервые ООП появилось. А популярность ООП началась с выходом Smalltalk, который взял часть идей из Lisp и Simula что породило динамический объектно ориентированный язык. На С++ повлияли Simula и соответственно C, что породило статический объектно ориентированный язык. Вот такие неясности и привели к тому что часть прогеров считает динамический ООП трушным, часть статический.
В Common Lisp ушли от модели передачи сообщений к обобщённым функциям, достаточно взглянуть на страницу Common Lisp CLOS в википедии чтобы перевернуть свои представления об ООП на 360 градусов (у С++ программиста точно всё перевернётся, вывернется и выйдет наружу через рот =D ).
Хочу заняться разработкой игр, изучаю моделирование и C#, знаешь, хоть видео не дофигаумные, но достаточно ёмкие, чтобы понять некоторые моменты, спасибо.
Мне кажется ты инкапсулирова от нас часть правды, и несколько парадигм (2 с половиной, если быть точнее)
Автор - харчок, инкапсуляция - сокрытие
Столько сокрытий, защиты, разные уровни абстракций.
Тук-тук, я рефлексия, приятно познакомиться.
Опиздюляция прям сильно нужная штука, её нужно вводить прям на самом начальном этапе обучения, а то порой долго доходит. И то не до всех(
Прикольно что сейчас, спустя 4 года после выхода видео, рыночек опять порешал уже не в сторону ООП.
13:27
Parent obj = new A();
obj.Test2();
((A)obj).Test(); //wow!?
Только за шутку про пайтон лайк
Ну наконец-то нашел подтверждение тому, что инкапсуляция - это сокрытие. Спасибо!
Инкапсуляция - не сокрытие.
Повторное использование, это когда ты от базового класса клепаешь предков и пользуешься в них его базовой функциональностью.А так же то, что имея один класс ты можешь делать создавать объекты этого класса и использовать их в разных частях программы. Например, у тебя может быть класс записи в файл, и ты его используешь и в логгере и в сохранении/загрузке данных. Т.е. класс может исполльзоваться везде в системе, а не в 1 конкретном месте. Не помню где читал, давно было.
Ну и еще, надо помнить, что изначальыне парадигмы ооп с течением практики отваливались и менялись для удобства. Поэтому имеем то что имеем. И языки со строгой типизацией имеют столько граничений не потому что им было лень делать все ооп-православно, а потому что их подход позволяет совершать меньше ошибок при написании прог.
Чувак, мне хватило 5 мин твоего видео, чтобы задаться одним вопросом: "Что нужно долбить чтобы нести такую упоротую дичь?".
Инкапсуляция - это сокрытие!!!
аааа инкапсуляция это сокрытие, теперь я понял Автор Спасибо ОГОМНОЕ!!!
Ради прогресса человечества: инкапсуляция - это сокрытие
чушь.
@@princessmary5556 пан
Интересный факт: инкапсуляция - это сокрытие[2]
на 1:25 за "петухон" уже луйк тыкнул, боже, как же жизненно
Подскажите нубу, не знающего про питон, за что его петухонят?
Причина?
На счёт "повторного использования" как отдельной парадигмы, мне кажется, имеется в виду следующее:
например, нахрена в ПХП интрефейсы? Да нахрен они там не нужны: всё то же самое можно сделать с помощью обыкновенных абстрактных методов: объявляешь такой и любой наследник Вынужден будет его реализовать.
Но интерфейсы оказываются реально полезны в одном (и мне кажется, только в этом одном) случае: когда пишешь некую библиотеку, чтобы выложить её на гитхаб и её моного-много раз использовали другие программисты и поставили кучу звёздочек. Вот в данном случае ты изначально знаешь, что у не тебя нет никакого реального проекта, который ты пишешь на работе: у тебя вообще совершенно отдельный, строго утилитарный компонент, который можно будет впихнуть в любой проект. И вот чтобы его реально можно было впихнуть в любой проект (и сделать это относительно просто): заставь клиента реализовать вот эти интерфейсы, потому что только так тебе не нужно заморачиваться сложной проверкой входящих данных, да и документацию банально писать проще: указал интерфейсы, которые нужно реализовать клиенту - и уже понятно, как это использовать.
Во всех остальных случаях использовать интерфейсы в ПХП если не вредно, то по крайней мере бесполезно. Отсюда и две парадигмы: "обычный ООП" для "проекта" и "ООП для повторного использования" для "библиотеки".
Спасибо, пацаны
Как я могу получить материалы для этого видео из твоей шахты? ммм?
Гарбич коллектор по этому ролику плачет.
Сегодня на собеседовании, на ответ по вопросу "что такое инкапсуляция?" мне ответили что я описал сокрытие данных, и дополнили вопросом "но что тогда такое инкапсуляция?" я конкретно так завис, думая кто меня обманывает, как оказалось мое понятие инкапсуляции хромало.. Где ж было раньше это видео, нереально полезный контент, сразу лайк
Круть, лойс))
Ага, так получается полиморфизм это сокрытие!))
Даешь SOLID в авторском переводе
Гобл... ExtremeCode
Обажаю тебя смотреть, за твой слог :)
Лайк не глядя!!!
Свастика + Пакмэн + флаг Украины = Python
что за ниувожение к вытиранам?
Хмммм. Вроде власовский флаг РФ больше подойдёт ,не ?!
Какой-то извращениц, ей богу! Засунул все ссылки себе в жопу, что бы вся подписота туда ринулась? Это такими становятся если на С# кодят, или когда на JS переходят?
ааааа я прям зародыш масленка, ты мне взрываешь голову подачей информации и пасхалками и юмором.... но сука, интересно до усрачки (комплимент если что)
почти ничего не понял Т_Т пошел читать книжки
Сильно👏🏻