Братан, хорош, давай подпишись на наш Telegram канал, мы там байки и кулстори травим 🖤 t.me/extremecode
@Veyron104 Жыл бұрын
малёх не понял про наследование в жс, но в шарпе же тоже можно дописать методы в родительский класс и это ничего не сломает, но только если эти методы будут использованы только в одном из наследников то ведь лучше как-то по другому это реализовать? Я такое "понял" не сам, мне помогли (
@СергейИванов-ы7ч5ы Жыл бұрын
чтобы быть такой лошарой как ты.....
@adbln15 жыл бұрын
"Девять парадигм ООП" - половину видоса бомбит на инкапсуляцию.
@unnamed20005 жыл бұрын
> >
@ddystopia80915 жыл бұрын
kzbin.info/www/bejne/m6fXpWWPi56Dhq8 Шестая с половиной парадигма ООП
@tyota2 жыл бұрын
Сокрытие
@-mishana- Жыл бұрын
Инкопсуляция
@mn4840 Жыл бұрын
Сокрыть не получилось )
@думдум-б2д5 жыл бұрын
Все ясно. Экстримкод-это сокрытие, инкапсуляция-это харчок. Наконец-то разобрался
@bleulegend2 жыл бұрын
Почему 630 лайков но нету ответов?
@deleted-ox5jl2 жыл бұрын
@@bleulegend ты все испортил
@jleenvanyes52192 жыл бұрын
@@deleted-ox5jl ты все испортил
@thetraveler77792 жыл бұрын
@@bleulegend ты всё испортил
@artur89042 жыл бұрын
@@thetraveler7779 ты все испортил
@alshainbify5 жыл бұрын
От инкапсуляции до Марса в одно сокрытие
@loam5 жыл бұрын
Менее чем в 12 парсеков!
@artemfedurin67265 жыл бұрын
*вскрытие :D
@rubik61695 жыл бұрын
Я понял : полиморфизм это сокрытие, инкапсуляция это сокрытие, а наследование это открытие. Спасибо авторам канала!
@alexb78885 жыл бұрын
При наследовании ты можешь переопределить публичный метод родителя, чем закрыть изначальную реализацию, следовательно наследование это сокрытие, пусть и косвенно! Сдедовательно весь ООП направлен на то, чтобы что-то скрывать! Срочно пишем в рен тв с этими догадками, они обязаны разобраться
@nativecode7702 жыл бұрын
:rofl:
@Yilativ72 жыл бұрын
@@alexb7888 А разве можно закрыть публичный метод? Вроде-бы наоборот, можно только расширять видимость
@alexb78882 жыл бұрын
@@Yilativ7 ну смотри, был public testMethod который складывал 2 и 2, мы унаследовались, переопределили его и теперь он делает 2 + 5 условно, изначальную задумку мы скрыли) А заодно нарушили принцип подстановки Барбары Лисков, который вроде как один из базовых, но не вяжется с ООП и реально в проектах редко соблюдается
@Yilativ72 жыл бұрын
@@alexb7888 Блин, я, кажись, неправильно вас понял. Я подумал, что закрыть - значит сделать приватным вместо публичного) Тогда вопрос снят
@ExtremeCode5 жыл бұрын
Собираем петицию, за то чтобы официально включить OPESDULATION в состав ООП. 1 голос - 1 лайк
@tankowot5 жыл бұрын
Бравооо
@Evgenevich5 жыл бұрын
нет, не надо, я к этой парадигме не готов
@gagikpog5 жыл бұрын
Где подпись ставить нужно?
@РоманМаксимов-ц2с5 жыл бұрын
А можно внести правки в концепцию? Так сказать добавить параметр степени тяжести. Ну и соответственно наказание сделать гибким. Заменить объект применения и область применения объекта. А особо ретивым попросить присесть на пирамидку и подумать над своим кодом. (Колыбель Иуды)
@astolfo_50715 жыл бұрын
Жестоко
@ivaneh38605 жыл бұрын
Спасибо за видео, наконец-то понял, что инкапсуляция - это сокрытие
@catswill4 жыл бұрын
Пидор)
@n3gve4 жыл бұрын
Ох твою мамку в этот момент возжелали все остальные в этих каментах
@ХумоюнЮлдашев-з3ч3 жыл бұрын
Пхахахахах
@mr.plague81345 жыл бұрын
Только ради колонизации Марса: инкапсуляция - это сокрытие.
@nikusrotuslomatus18793 жыл бұрын
Абсолютно не согласен инкапсуляция это харчок.
@shicklgrubber3 жыл бұрын
Давайте хором. ИНКАПСУЛЯЦИЯ - ЭТО СОКРЫТИЕ. ИНКАПСУЛЯЦИЯ - ЭТО СОКРЫТИЕ. ИНКАПСУЛЯЦИЯ - ЭТО СОКРЫТИЕ.
@shicklgrubber3 жыл бұрын
Надеюсь, автор привязан к ракете. А не лежит задницей вверх. Иначе есть опасность изменить орбиту Земли.
@KiraLis393 жыл бұрын
Нет, инкапсуляция - это не "сокрытие". Это кое-что более сложное, а сокрытие является лишь следствием данной механики.)
@a.o.yaroslavov3 жыл бұрын
Слишком узкое определение, но верное.
@Unerty5 жыл бұрын
Все говорят, что инкапсуляция - это сокрытие. Но что, если я скажу, что автор - харчок?
@ТочноНеКлевер5 жыл бұрын
ну вщет Харчок сейчас помогает Бэду с обзорами на русское кино
@rustyshackleford90735 жыл бұрын
Интересный факт: инкапсуляция - это сокрытие
@iryandriver5 жыл бұрын
осторожно, а то авторы этого канала сделают сокрытие твоей головы
@Evgenevich5 жыл бұрын
дерзко
@ark-kun72215 жыл бұрын
Только хотел написать эту правду:)))
@КостяКиндалюк5 жыл бұрын
Осторожнее, а то инкапсулируют пулю в твое тело с помощью пулемета, и сделают сокрытие твой башки)
@maxon175 жыл бұрын
@@iryandriver ТИХО! Мы пытаемся сделать вечный двигатель работающий на адском подгорании.
@flow2012est5 жыл бұрын
Инкапсуляция - это когда твоя мама держит тебя в секрете от твоего папы.
@MrPelmewka5 жыл бұрын
Сокрытие?
@12strel5 жыл бұрын
Или когда твоя мама держит от тебя в секрете каким методом и от какого предка она тебя создала
@minshuga2573 жыл бұрын
А сокрытие?
@andreysolomatov15527 ай бұрын
Инкапсуляция - это когда твоя мама не позволяет твоему папе применить ремень самому непосредственно на твою попу - а определяет сама, как, сколько и в какое время допустимо - при получении запроса на это от папы.
@universeunity99703 ай бұрын
@@andreysolomatov1552 Нет, инкапсуляция это когда ты сам себя бьешь по попе ремнём тогда, когда этого захочет твоя мама)
@StanTheFirst5 жыл бұрын
Как приятно смотреть это видео - и шутки, от которых ржешь постоянно и, в то же время, разговор по делу. Отличный формат. Видео огонь!
@RobotN0015 жыл бұрын
если мат скрывают кряканьем , это сокрытие или инкапсуляция ? инкапсуляция совести ? )
@sirjorgenbjorgen22955 жыл бұрын
Сокрытие это если бы он матом ничего не говорил, а так это инкапсуляция - так как он защищает свой компонент канал от другого компонента "цензура ютуб" и компонента "хейтеры в комментах" что подходит под второе определение, а так же мат понимают только те, кто знает это матное слово что подходит под первое определение инкапсуляции
@MrVikadin5 жыл бұрын
ты спросил одно и тоже. если мат скрывают кряканьем, это сокрытие или сокрытие? Мы ведь решили, что инкапсуляция === сокрытие
@mayonnaizzee5 жыл бұрын
Кря
@mmospanenko5 жыл бұрын
Это утиная типизация
@Смешнодослез-ъ5ю3 жыл бұрын
@@sirjorgenbjorgen2295 чувак ты крутой😂
@Dimarious.G5 жыл бұрын
Только не парадигмы, а принципы... Учи маслят правильно! :) Парадигмы: структурное П, функциональное П, ООП и т.п. Парадигма тут была одна -- ООП.
@brinza8882 жыл бұрын
концепции
@ГарникГеворгян-ъ8о Жыл бұрын
Спасибо за контент! Наконец-то посмотрел материал о программировании с улыбкой и слезами счастья на лице, а не глубокой депрессии :D насмеялся от души, класс))
@radimbig Жыл бұрын
Братан, хорош, давай, давай, вперёд! Контент в кайф, можно ещё? Вообще красавчик! Можно вот этого вот почаще?
@АндрейКругликов-у1н3 жыл бұрын
твой стиль изложения информации божественен. буду надеяться что ты напилишь еще много интересного контента
@АнтонТимошенко-м2п5 жыл бұрын
Как всегда подача просто идеальна! Ваш канал и CODE BLOG лучшее что только есть!) Жду с нетерпением выпуск про SOLID.
@Brain-0fff5 жыл бұрын
Ну все, все, уговорил, Коль. Женюсь на тебе :* Слишком сладкие видосы
@vasilys97765 жыл бұрын
Ты хочешь получить доступ к ссылкам?
@Uni-Coder5 жыл бұрын
Вот эту фразу надо было сокрыть
@fixmedev5215 жыл бұрын
Суть всего видоса: ООП это сокрытие
@12strel5 жыл бұрын
Суть всего это то что программист это и есть сокрытие он Че-то там пишет но реально нихрена никому не может объяснить как и зачем он это делает.
@fedmunty40513 жыл бұрын
В ООП 3 буквы, а это значит, что ООП придумали иллюминаты, так как их символ - треугольник, у которого какраз 3 стороны. е изучайте ООП, это помогает иллюминатам захватить мир. Все, кто становится ООП программистами, становятся рабами системы! Одумайтесь! Ещё есть шанс всё изменить!
@Alex__88 Жыл бұрын
Братан, хорош, давай, давай вперёд! Контент в кайф, можно еще? Вообще красавчик! Можно вот этого вот почаще?
@disdain16795 ай бұрын
Толковое видео, поднимает важные вопросы! 5 копеек от синьора-помидора: ООП в изначальном понимании - это представление программы как множества Объектов(Абстракций), обменивающихся между собой сообщениями через свои Интерфейсы. Абстракция - обобщение, скрывающее детали устройства некой сущности, упрощённая сущность. Сокрытие данных, Абстракция, Интерфейс, Полиморфизм - ключевые понтятия. Инкапсуляция (объединение данных и поведения) опциональна, данные Сущности могут быть отделены от её поведения (анемичные модели), поведение становится отдельным объектом (абстракцией). Объекты всё ещё обмениваются сообщениями. Объекты данных предают данные своим объектам поведения, содрежащим методы. Сервисы отправляют сообщения другу другу (вызывая методы). Наследование - это способ содания нового объекта расширением имеющегося объекта. Насделование также опциональное понятие в классическом ООП. Вполне возможнен "обмен сообщениями между абстракциями" без наследования. Абстракции могут строится без классов, например, с помощью функций, модулей, файлов или структукр данных (дерево, ассоциативный массив и т.п.), частично использовать данные и поведение имеющихся "объектов" без прямого наследования. Зачем всё это? Для Полиморфизма, он является конечной целью ООП. Объеты взаимодействуют посредством Интерфейсов. Интерфейс - внешняя часть поведения/данных объекта(любой абстракции) доступная другим объектам. Интерфейс - упрощённый способ внешнего взаимодействия, игнорирующий внутренее устройство объекта. Объекты предоставляющие вовне одинаковый Интерфейс неотличимы для внешного окружения, а потому взаимозаменяемы. Полиморфизм - возможность одинакового взаимодействия с различными объектами через их общую, универсальную внешнюю часть (интерфейс). Например, 2 объекта полиморфны по интерфейсу, если имеют одинаковый интерфейс при различном устройстве и поведении.
@AlexAlex-rc9di5 жыл бұрын
В ООП самое главное это Правила. Почему-то многие об этом забывают. Смысл в том, чтоб на проект, который писал Вася, и был успешно уволен, пришел Петя, который сходу начал работу, а не начал вековое изучение проекта, параллельно перестраивая свой ассоциативный ряд с ассоциативным рядом Пети. Чем строже правила, патерны, ограничения, тем проще всего этого достичь. Теряется дата ориентация, но лучше потерять 30% на производительности, чем 500% на времени разработки.
@Ca1vema Жыл бұрын
Скажи это Васе, который был успешно уволен потому что на его место легко взять любого Петю.
@lamasnik Жыл бұрын
На самом деле, Вася сам ушел, когда все понял :) а конвейер продолжил работать по своим паттернам :)
@denisivlentiev58253 жыл бұрын
Манера и подача информации на высшем уровне!! И смешно и интересно ! 👍😂
@franklin67922 жыл бұрын
Жаль что при рождении он взял способность "сын маминой подруги", но не взял "мамкин бизнесмен", вот и задушили его язык джавой.
@АркадийКулешов-м8н5 жыл бұрын
Видос ещё не смотрел, но заранее скажу - Инкапсуляция это сокрытие.
@EnDeRBeaT5 жыл бұрын
7:00 2023 год. SpaceX запускает рейсовых Николаев на жопной тяге на Марс.
@NoiroStar5 жыл бұрын
А секрет двигателя инкапсулировал от общественности)
@dmytro-pro5 жыл бұрын
А что если я скажу, что парадигма - это весь ООП, а не один из его принципов?
@ЯківСинявський3 жыл бұрын
Есть зажигание! Реактивный двигатель работает на 100500% Долетим до Марса за пару минут
@bogdanbida85874 жыл бұрын
Сегодня на собеседовании, на ответ по вопросу "что такое инкапсуляция?" мне ответили что я описал сокрытие данных, и дополнили вопросом "но что тогда такое инкапсуляция?" я конкретно так завис, думая кто меня обманывает, как оказалось мое понятие инкапсуляции хромало.. Где ж было раньше это видео, нереально полезный контент, сразу лайк
@rowario3 жыл бұрын
как биткоин в конце 2017 люди в начале 2021: 🗿
@nikolaymatveychuk61455 жыл бұрын
Слышу что-то странное :) У ООП есть 3 базовых принципа: инкапсуляция, наследование и полиморфизм. Если своими словами, то: Инкапсуляция - нефиг наружу светить данные и методы, которые нужны только внутри конкретного блока кода. Это позволяет уменьшить общую сложность кода и для того, например, чтобы сложить 2 числа, программисту не придётся задумываться о том, в какой регистр какое число будет записано, а для показа окна не придётся изучать принципы работы видеобуфера и изучать особенности вызова WinAPI функций и все их параметры. Наследование - если класс B полностью реализует интерфейс класса A и при этом класс A является родовым понятием по отношению к классу B, то B стоит отнаследовать от A. Это в итоге позволит не дублировать код, а любое изменение, которое захочется внести в класс A неизбежно захочется внести и в класс B (то есть проблема "страшно менять предка" высосана из пальца) Полиморфизм - позволяет использовать один и тот же код для работы с разными типами данных. Для ООП это означает, что в нём нет необходимости создавать по дополнительному методу на каждый тип данных, а можно определить метод таким образом, чтобы он мог принимать разные типы данных на вход и правильно их обрабатывать (зачастую приводя их к некому базовому представлению и вызывая "основной" метод). Абстракция не считается и никогда не считалась базовым принципом ООП. Это просто идея о том, что код должен быть поделен на слои, где каждый слой скрывает в себе сложные детали предоставляя наружу простые и понятные интерфейсы более высокого уровня работы с информацией. При чём абстракция должна быть цельной и полной (то есть она не должна уменьшать функциональность по отношению к более низкому слою, чтобы не приходилось периодически работать с ним, и при этом она должна этот более низкий слой целиком и полностью скрывать, например нельзя строить абстракцию скрывающую под собой язык запросов, но в то же время в части методов просить передать указания по режиму оптимизации запроса, или просто кусок запроса, который будет добавлен к сгенерированному). Не ругаться ошибкой на вызов несуществующего метода - жуть какая :) прототипное ООП лучше классического?! - жуть в квадрате :) особенно когда нужен конструктор и деструктор, и когда их нужно унаследовать и немного изменить в потомках. Помню я эти танцы с бубном, через которые мне пришлось пройти, когда понадобилось такое сделать. Ведь в прототип нельзя положить уже готовый объект, так как если в конструкторе есть параметры, то они станут известны только в момент создания объекта-потомка (и для каждого объекта будут свои), а значит мы вынуждено делаем псевдоконструктор и настоящий, прототип создаём псевдоконструктором, а потом для объекта вызываем псевдоконструктор, после чего уже вызываем реальный, который унаследован от реального конструктора прототипа. Многие тогда вообще перестали наследование в js пользовать и реализовывали его через вызовы функции jquery.extend (или как-то так, не помню уже, давно было). И после этого Вы говорите, что зачем js классическое ООП, там и на прототипном хорошо жилось? Ну если js использовать для анимирования кнопочек - наверное да, но для чего-то серьёзного классическое ООП очень нужно.
@user-mr-m123124 жыл бұрын
@Keeper Holderson я бы ответил, что можно использовать паттерн прототип, или пул объектов, в зависимости от конкретизации. Хотя наверное в данном случае лучше вообще не использовать ооп-подход. А какой правильный ответ?
@user-mr-m123124 жыл бұрын
@Keeper Holderson понятно, спасибо за разъяснение! Почитаю поподробнее про кэш, то я в этом плаваю)
@user-mr-m123124 жыл бұрын
@Keeper Holderson хорошо, посмотрю, ещё раз спасибо!
@artemsokolov50075 жыл бұрын
ООП это и есть парадигма а то что тут рассказывается - это принципы или концепции
@adbln15 жыл бұрын
То что рассказывается - какие всё плохие что не так определяют инкапсуляцию.
@dxrpz16695 жыл бұрын
ООП это сокрытие
@thetraveler77794 жыл бұрын
@@adbln1 да мздит он, на самом деле все прекрасно понимают что имеется ввиду под сокрытием, а ему лишь бы к словам придраться, это больше субъективщеной пахнет с точки зрения собственного болезненного восприятия этого выражения.
@user-iw4xj4mn1t Жыл бұрын
Average Повторное использование fan: Average Ctrl C Ctrl V enjoyer:
@mymoney55363 жыл бұрын
Про опиздюляцию мало рассказал. Не понятно! Если можно, отдельный выпуск сделайте про опиздюляцию.
@losishche4 жыл бұрын
Автор - красавчик. После Пайтона в течение долгого времени не мог понять зачем вообще нужна вся эта страшная громадина правил работы с полифорфными типами в Java, зачем нужно так мучиться, когда можно не мучиться вовсе). И с null всегда удивляла в Java ситуация в контексте ООП
@Myaw-mrow3 жыл бұрын
Замечательное видео, очень познавательно и забавно. Надеюсь я верно понял, что инкапсуляция это сокрытие. Удачи в успехах!
@ЕвгенийПашин-ш7д2 жыл бұрын
Опиздюляция - браво, автор )))))) Боже, этот ролик сделал мой день самым лучшим ))))
@АлексейСалихов-з4ч5 жыл бұрын
ис/ах (инкапсуляция - сокрытие, автор - харчок)
@talisman1104 Жыл бұрын
Вот начал изучать ООП и могу сказать, что 8 из 10 ютуберов указывают инкапсуляцию как сокрытие. Ну ты и вникаешь это именно так. А девятый говорит, что за такой ответ при собесе делают атата и смеются над тобой, но в чём суть не объясняет. Твой мир тут же рушится и ты ничего не понимаешь кроме одного, что чему ты обучался все эти полгода ничего не стоят. И только здесь я нашёл разъяснение. Единственно теперь не ясно что такое полиморфизм. Вместо одного понятия дают целых три, но и эти не раскрывают, а дают лишь примеры использования
@cplusplusdude81895 жыл бұрын
Чувак, мне хватило 5 мин твоего видео, чтобы задаться одним вопросом: "Что нужно долбить чтобы нести такую упоротую дичь?".
@КоляПолзунки5 жыл бұрын
16:04 При вызове несуществующего метода вылетит исключение "unrecognized selector sent to instance". А при посылке сообщения нулю действительно ничего пре произойдет и будет возвращен нуль, чем часто очень удобно пользоваться при вызовах вида [[obj method1] method2], экономя на проверках на нуль (экономя в лаконичности, конечно)
@alexl71615 жыл бұрын
Такая вещь, как какие-то ебаные факты - это всего лишь препятствие личному мнению аффтара, которое он выдает за факты
@ГриценкоРуслан5 жыл бұрын
Спасибо, отличная работа. Давай скорее видео про SOLID
@kurpaty176 Жыл бұрын
Ну наконец-то нашел подтверждение тому, что инкапсуляция - это сокрытие. Спасибо!
@princessmary5556 Жыл бұрын
Инкапсуляция - не сокрытие.
@АлександрКопытенко5 жыл бұрын
+1 Согласен с автором: инкапсуляция - это сокрытие.
@mikhailkasyanov74323 жыл бұрын
У меня прям знатно пригорело когда я где-то в статье увидел что-то вроде: "Ещё 12 принципов ООП SOLID,DRY,KISS"
@SirozhaOsminog5 жыл бұрын
Парадигма опиздюляция - то что надо. Всем DI, посоны)
@mcblack20102 ай бұрын
Класс! Интересно было б действительно послушать про принципы SOLID именно в твоем изложении. Подача рулит!
@doomox60015 жыл бұрын
Кстати про SOLID было бы рили очень интересно послушать.
@TheKwadriga5 жыл бұрын
На счёт "повторного использования" как отдельной парадигмы, мне кажется, имеется в виду следующее: например, нахрена в ПХП интрефейсы? Да нахрен они там не нужны: всё то же самое можно сделать с помощью обыкновенных абстрактных методов: объявляешь такой и любой наследник Вынужден будет его реализовать. Но интерфейсы оказываются реально полезны в одном (и мне кажется, только в этом одном) случае: когда пишешь некую библиотеку, чтобы выложить её на гитхаб и её моного-много раз использовали другие программисты и поставили кучу звёздочек. Вот в данном случае ты изначально знаешь, что у не тебя нет никакого реального проекта, который ты пишешь на работе: у тебя вообще совершенно отдельный, строго утилитарный компонент, который можно будет впихнуть в любой проект. И вот чтобы его реально можно было впихнуть в любой проект (и сделать это относительно просто): заставь клиента реализовать вот эти интерфейсы, потому что только так тебе не нужно заморачиваться сложной проверкой входящих данных, да и документацию банально писать проще: указал интерфейсы, которые нужно реализовать клиенту - и уже понятно, как это использовать. Во всех остальных случаях использовать интерфейсы в ПХП если не вредно, то по крайней мере бесполезно. Отсюда и две парадигмы: "обычный ООП" для "проекта" и "ООП для повторного использования" для "библиотеки".
@a.o.yaroslavov5 жыл бұрын
Есть по сути всего 3-4 парадигмы: императивная, декларативная, функциональная и сообщения (акторы); Все остальное - не парадигмы, а принципы и инструменты. Например, SOLID - принципы ООП, а, например, наследование - это инструмент с помощью которого достигают полиморфизма. Вкуриваете?
@koshchey425 жыл бұрын
Википедия утверждает, что функциональное программирование - это разновидность декларативного.
@a.o.yaroslavov5 жыл бұрын
@@koshchey42 Она нагло врёт. Или искренне ошибается. в противном случае все бы со Лиспа перешли на кобол.
@koshchey425 жыл бұрын
Объясни, почему так. Я Лисп знаю очень слабо, Кобол совсем не знаю. Какой язык является декларативным по твоему мнению? Наследование не только позволяет реализовать полиморфизм. Наследование облегчает создание нового класса на базе существующего. Полиморфизм может быть и без наследования.
@a.o.yaroslavov5 жыл бұрын
@@koshchey42 Чисто декларативный и вполне себе универсальный язык - XML. Описываешь схему и интерпретатор к ней и всё, у тебя новый язык DSL. В функциональном языке тебе придётся описывать код в виде формул, а не отношения и правила между объектами.
@koshchey425 жыл бұрын
Чушь. XML - это базовый язык для создания других языков на его основе. На базе XML может быть создан язык любого типа (как язык программирования, так и язык описания данных). Сам по себе XML не является языком программирования.
@ДаниилГончаренко-г8я5 жыл бұрын
Пздц, уже к середине видео поставил на паузу так как уже не мог вникать в происходящее из-за своего ржача))) Хотя дельные вещи толкаете, но в такой классной форме! Спасибо за материал и за подачу) Видос бомба))) P.S. Отныне слово Scriptизёр навсегда в моём лексиконе)))
@ЕвгенийСокирко-д1в5 жыл бұрын
Надо разобраться с SOLID, обязательно
@ДенисЯчменёв-щ8з2 жыл бұрын
Столько сокрытий, защиты, разные уровни абстракций. Тук-тук, я рефлексия, приятно познакомиться. Опиздюляция прям сильно нужная штука, её нужно вводить прям на самом начальном этапе обучения, а то порой долго доходит. И то не до всех(
@alexanders39285 жыл бұрын
Сижу бухаю пиво , ещё не смотрел, но сразу лайк)
@Jojoyouknow-p7lАй бұрын
10:29 Полиморфизм имеет несколько форм... Сокрытие тавтологии?..
@vs84185 жыл бұрын
Сама по себе рефлексия в java не даёт кому-либо возможности получить доступ ко всему, что есть объект и что-то там поменять. Для получения такого доступа должен быть некий "энтри-поинт". Грубо говоря не зная Типа(Наименования) класса никто не сможет "развернуть" его кишочков. То есть Вася сидящий рядом с тобой за другим компом в душе неибущий что за код ты пишешь, не зная наименований твоих классов, нихрена сделать не сможет. Мало того в рантайме есть такой замечательный эффект как утеря(затирание) типа. Кто-то может подметить, что мы можем узнать наименование класса дернув его из кучи(извращенцы..), прочитав его бинарый "хедер", но и тут господа не всё просто т.к. сама куча это часть виртуальной машины, которая написана вообще на С, которая в свою очередь работает в потоке операционной системы со своими приколами и бла-бла-бла. В самой куче виртуальная машина для различных оптимизаций не только может но и меняет наименования ваших объектов, цепочек вызовов и т.д. - следствие строгой типизации(у каждого типа(выбрать нужное ударение) есть размер). Рефлексия - это такая фича для того, кто пишет конкретный код, всего лишь дополнительный инструмент, позволяющий более гибко работать. Как и нахера "луп" должен быть объектом(камень в руби) я понять не могу... Для избежания проблем сильного связывания есть паттерны проектирования. За иерархию глубиной в 5 потомков(вызовов), с характерным хрустом ломают руки(рекурсивная не счет), чтобы больше не писал, не писал вообще. Почему выбран пример с джава-скриптовыми прототипами вообще не догнал. Ведь объект типа class тоже объект ну и прокси никто не отменял.... Хз наверное я туповатый. Не до конца понял, что сложного в полиморфизме для ЯП со строгой типизацией? Тут наверное будет правильнее - "если вы начали с джава-скрипта, то вам будет туго с ЯП со строгой типизацией в котором есть дженерики, приведение(каст) до типа и т.д., но никак не наоборот...." Почему методы именуются с большой буквы? Или в Шарпе так принято? В примере на обжектив вы не выбрасываете его, типизированный ссыль не в инициализированном состоянии остался пока кто-то или что-то его не приберёт. С тем, что нет эксепшена соглашусь - странновато, бизнес так не напишешь, да и во многих языках такое даже скомпилировать не дадут.... Можно ли в следующем примере на шарпе для непроинициализрованной ссылки вызвать нечто wait(), или notify()? Да, да это вопрос, рили интересно, ни разу на нём не писал. Пародия на анонимный класс на джава-скрипт в виде явно объявленного интерфейса счёт(Account), который тут-же инициализирован(создан... как хотите) окончательно ставит точку в вопросе выборе первого ЯП. Такой язык должен быть строго-типизированным и точка. Да тяжело, да изначально не понятно, да дольше по времени, но зато потом на джава-скрипт без слёз не взглянешь, потом начинаешь понимать зачем появляются вещи аля тайпскрипт и другие свисто-перделки со стрикт модами и спецификациями. Принцип DRY не призывает тебя писать меньше кода. Он призывает проектировать полиморфно-иерархические структуры данных(хуясе сказанул), использование которых позволит тебе избавиться от дублирования кода... Вася не умеет проектировать. Не будь как Вася (с) DRY Парадигма 6,5 это та, за которую ломают культяпки(смотреть выше). SOLID это не парадигма, это правила, подход, набор принципов, хороший тон так сказать. Ну и все мы знаем, что правила можно нарушать в зависимости от выбранной рахитектуры приложения. Все зависит от инструмента, который вы пытаетесь реализовать. Комменты писал по ходу видео. Хорошо расслабил мозг и сорян если кого обидел. Ну и за видос спасибо, сдул так сказать пыль с теоретических основ.
@darkcrusaderzxc5 жыл бұрын
Умеют же люди строчить миллион строк как будто индус, когда можно в двух словах все объяснить - сокрытие это инкапсуляция, а автор харчок.
@NotAStoryteller9 ай бұрын
По поводу повторного использования хочу пояснить. Почему это часто выделяют в отдельный пункт. Дело в том, что наследования с полиморфизмом не достаточно для того, что бы гарантировать возможность повторного использования кода. Да, они часто бывают необходимы для этого, но их недостаточно. Простой пример: Делаете Вы класс предок, у которого два наследника. Оба наследника используют некоторый метод у предка. Повторное использование, казалось бы. Но не тут-то было. Вы, по тупости своей или лени, запихиваете часть кода, который должен быть в отдельном методе у наследников в тот самый метод предка, из-за чего добавление третьего наследника приводит к необходимости делать одно из двух: - Либо Полностью переписывать нахрен всю иерархию, что бы "повторное использование" снова стало возможно. - Либо пилить для третьего наследника отдельную реализацию злополучного метода. Так вот в обоих случаях - это не повторное использование нихрена. А всё потому, что смысл повторного использования - это писать код так, что бы потом при апгрейдах Вы могли тупо заюзать старый метод без переписывания половины проекта.
@edwardavd94235 жыл бұрын
Спасибо за видос! Нужная штука! Снимете урок про UML? Так сказать, для осознания проектирования программного обеспечения. Не помешало бы...
@semplar20074 жыл бұрын
NullPointerException существует не потому что иначе оверхед, а чтобы легче было вылавливать баги: если вместо желаемого получаемого обьекта получился null, и этот обьект влияет на какие-то данные, позже можно обнаружить что данные не поменялись, а вот где вылез этот самый null обьект потом можно будет очень долго искать в проекте. Лучше сразу NPE.
@RAZUMOVSKY2285 жыл бұрын
13:41 - ну конечно Test() будет недоступен, ведь obj надо перекастить в тип А и тогда Test() станет доступным. У Parent classa нету контекста для Test() A obj2 = (A)obj; obj2.Test(); А так пытаться вызвать в родительском классе метод дочернего невозможно же )
@dadoo69122 жыл бұрын
используя апкаст, при вызове метода, который переопределен в классе-потомке, будет вызван именно переопределенный метод, чего не скажешь об обычных методах класса-потомка, которые не определенны в родительском классе. их тупо нельзя будет вызвать
@МаксимХвостов-м1й4 жыл бұрын
Вроде в Simula впервые ООП появилось. А популярность ООП началась с выходом Smalltalk, который взял часть идей из Lisp и Simula что породило динамический объектно ориентированный язык. На С++ повлияли Simula и соответственно C, что породило статический объектно ориентированный язык. Вот такие неясности и привели к тому что часть прогеров считает динамический ООП трушным, часть статический. В Common Lisp ушли от модели передачи сообщений к обобщённым функциям, достаточно взглянуть на страницу Common Lisp CLOS в википедии чтобы перевернуть свои представления об ООП на 360 градусов (у С++ программиста точно всё перевернётся, вывернется и выйдет наружу через рот =D ).
@suryaninov5 жыл бұрын
Так, я в комменты зашёл комменты умных дядек почитать с бородой по колено, а не послушать про ваш СКРЫТЫЙ ПУЛ
@volodymyrbabych87615 жыл бұрын
Одно уточнение. JavaScript изначально прототипно-ориентированый язык программирования. То что сейчас добавляют понятия классов, приводя к ООП, особо js не спасает. Читая книги по паттернам проектирования, хочется выброситься в окно. Все притянуто за уши. Так же само, как и курсы по функциональному JavaScript. Не люблю, когда микроскопом гвозди забивают. В некоторых ВУЗ-ах изучают ООП на Pascal. Изучать ООП на JavaScript почти тоже самое.
@ДмитрийСагитов-н3й5 жыл бұрын
А есть же ещё Егор Бугаенко, у него вообще своя атмосфера в ООП)))
@mik4393 жыл бұрын
по моему он просто любит бить людей - к ООП это слабо относится
@Alpha_Gamma_Beta3 жыл бұрын
определение парадигмы 6.5 неверно. "в программировании одну и ту же задачу можно решить десятком способов. и за восемь из них получить люлей от вышестоящего программиста"
@ВадимЛогинов-й8м3 жыл бұрын
Разве инкапсуляция это не сокрытие??? В топ чтобы увидел, он неправильно понял
@Victor-il9gm2 жыл бұрын
очень интересный и познавательный контент, а главное еще и веселый. Спасибо очень годно!
@favelly54465 жыл бұрын
11:55 Он написал abstract class вместо intreface, Override'им его!
@archon_protoss5 жыл бұрын
поставил лайк, когда увидел слово "оподливился", спасибо за годный контент
@Techpowers5 жыл бұрын
Ребята, большая просьба снять видео про слабую и сильную типизацию . Строгую и динамическую типизацию
@ted_res3 жыл бұрын
Главная задача повторного использования, как по мне, в том, чтобы потом не пришлось менять в разных местах одно и то же. Соответственно, тут важно понимать, где у тебя одни и те же действия, а где очень похожие, но все же различные. Это вообще не очевидно бывает, и порой работает только на уровне чуйки.
Автор- инкапсуляция это не сокрытие но что это я обьяснить не могу. Заебись. Если не можешь обьяснить то наверное и сам нихрена не понимаешь.
@serggio888885 жыл бұрын
Охуеть, я все понял. Понял все я... Лайк. Про mvc mvvm etc можна?
@CoffeJava5 жыл бұрын
Охрененный гоп-стайл, после уроков по программированию отдыхаю тут, у тебя на канале )
@NoiroStar5 жыл бұрын
Мне кажется ты инкапсулирова от нас часть правды, и несколько парадигм (2 с половиной, если быть точнее)
@referyli16605 жыл бұрын
Сначала подумал, что у меня зрение поплыло и пора прилечь, пригляделся, а нет, это иконки на фоне плавают
@НикитаПелин-б3и5 жыл бұрын
Автор - харчок, инкапсуляция - сокрытие
@ЭльдартВейдэр5 жыл бұрын
Я - человек который ничего не знает и не понимает в вопросе программирования(да, я тупой), но мне было достаточно забавно и интересно смотреть это видео. Автор ты хороший рассказчик, продолжай делать так же
@thetraveler77794 жыл бұрын
Инкапсуляция - это сокрытие!!!
@dashandr15 жыл бұрын
Не программирую, но не пропускаю не одного видоса))) юморок конечно заебок, но почему мне нравится обусуждения на тему логиги, алгоритмов, абстракций и прочего прогерского?)
@riot805 жыл бұрын
4:39 даже программист является объектом
@xNaGuWaLx5 жыл бұрын
А чё мне нравится парадигма 6.5 Опездюляция, обязательно парням на работе предложу её юзать)))
@daenur5485 жыл бұрын
13:27 Parent obj = new A(); obj.Test2(); ((A)obj).Test(); //wow!?
@РоманВолков-н7ш5 жыл бұрын
13.40 - Метод не стал приватным. Ты объявил переменную с типом Parent и работаешь с ней, а у этого типа нет метода Test(). Всё просто. В таких случаях используется приведение к нужному типу в момент вызова, небезопасный вызов, либо сразу используют переменную с нужным типом. Насчёт вызова методов у null - так делать не нужно. Вообще, в случае ошибки, программа должна падать как можно громче, а не умалчивать их (Что-бы потом вы могли быстро локализовать и исправить проблему). Если там может быть null - добавьте явную проверку и напишите код, что в таком случае должно происходить.
@dmitriy32985 жыл бұрын
Будут ли видосы по разбору IDE, текстовых редакторов, плагинов, расширений как в видео обзор Visual Studio 2017?
@demimurych17 ай бұрын
Прикольно что сейчас, спустя 4 года после выхода видео, рыночек опять порешал уже не в сторону ООП.
@tduk20115 жыл бұрын
Как я могу получить материалы для этого видео из твоей шахты? ммм?
@astrelcoff3 жыл бұрын
Я Камеди Клаб перестал смотреть после того как подписался на твой канал! Лайк!
@Kritikarazuma5 жыл бұрын
на 1:25 за "петухон" уже луйк тыкнул, боже, как же жизненно
@mikeistp57365 жыл бұрын
Подскажите нубу, не знающего про питон, за что его петухонят?
@braiN9415 жыл бұрын
Причина?
@Serg710075 жыл бұрын
Смотрю давно вас) всё же какой классный канал)) Успехов в развитии)
@indigo_tears5 жыл бұрын
Интересный факт: инкапсуляция - это сокрытие[2]
@TheSarapulov12 жыл бұрын
Классный видос! Кстати, инкапсуляция - это сокрытие
@princessmary5556 Жыл бұрын
Кстати, нет. Инкапсуляция это не сокрытие.
@alexkiorАй бұрын
Отличный видос, братан, спасибо тебе
@btsmart.c70275 жыл бұрын
Свастика + Пакмэн + флаг Украины = Python
@brayanhustler934 жыл бұрын
что за ниувожение к вытиранам?
@mannas2734 жыл бұрын
Хмммм. Вроде власовский флаг РФ больше подойдёт ,не ?!
@danielson6795 жыл бұрын
Давно ждал видосик про ООП
@corey62145 жыл бұрын
Ага, так получается полиморфизм это сокрытие!))
@yugovmax5 жыл бұрын
Спасибо, весело и позновательно:) Особенно поржал над тем, когда увидел у себя на полке книги, используемые в этом видео)))
@markzharkov25515 жыл бұрын
Только за шутку про пайтон лайк
@НиктаДиденко-п9ь4 жыл бұрын
аааа инкапсуляция это сокрытие, теперь я понял Автор Спасибо ОГОМНОЕ!!!