Да, тут должен быть какой то смешной комментарий, совсем забыл. Ставь лукас, а то че как бивень А для бустеров у нас есть эксклюзивный контент: boosty.to/extremecode P.S. 3-е сентября пришлось вырезать, дядя Шуфутинский за 10-и секундную вставку бабок хочет -_______________-
@ExtremeCode5 жыл бұрын
bool understand = false; do { var result = youtubeClient.see("yNUJ3vAeyJQ"); understand = brain.getUnderstandState(result); } while (!understand);
@alexeysamovich3015 жыл бұрын
@fff аа Смотри видео, пока не вдуплишь.
@mikhailturov70665 жыл бұрын
@fff аа if (youtubeClient.comment.Contains("@ExtremeCode а по-русски?") && youtubeClient.comment.author() == "fff aa")) { this.Translate(); } public void Translate() { bool понимают = ложь; делать { различный результат = ютубКлиент.увидеть("yNUJ3vAeyJQ"); понимают = мозг.получитьСостояниеПонимания(результат); } когда (!понять); }
@sledleo5 жыл бұрын
@@ExtremeCode Канешна болтовня, как и определения - занимательно и не обременительна для автора. Но для простолюдинов было бы нагляднее ввиде схем и картинок пояснять. Ибо простолюдины из болтовни образы не генерят...
@sandorik5 жыл бұрын
@fff аа В конце видео полное определение.Разворачиваешь его на весь экран и сиди медитируй пока не прийдёт прозрение.
@karfagen863 жыл бұрын
- Какие паттерны ООП вы знаете? - Костылирование, Инкостыляция и Поликостылизм.
@bltvg3 жыл бұрын
Это не паттерны ООП, а принципы ООП. Паттерны - это синглкостыльтон, абстрактная фабрика костылей и всё такое.
@артёмБратчук-ф1л3 жыл бұрын
@@bltvg ну если уже правильно говорить, тогда это и не принципы. Это парадигмы)
@Bloody_River3 жыл бұрын
@@артёмБратчук-ф1л костыли.
@ДмитрийОсипов-м9д3 жыл бұрын
@@артёмБратчук-ф1л ПАРАдигмы(типа как параолимпиада)
@istox27873 жыл бұрын
А как-же акостыляция?
@nik1tosssa4 жыл бұрын
Ничего не понял, но из-за того, что достаточно хорошо кивал головой, теперь учусь в стенфорде
@ark-kun72214 жыл бұрын
Завтра первая пара в какой аудитории?
@Calvin_M.4 жыл бұрын
@@ark-kun7221 Глупый вопрос) Зависит на кого учишься, но ты явно не знал об этом.
@StanSlider4 жыл бұрын
Интересно хоть было?
@alexanderbelov68924 жыл бұрын
Кивающие головой - это аутисты?
@НиколайМорозов-д4о4 жыл бұрын
@@alexanderbelov6892 нет, киватисты
@dudenarima25285 жыл бұрын
ОБОЖАЮ когда ты приводишь по 20 аналогий ежесекундно
@anthonyminchenko31095 жыл бұрын
Проорал с синтаксиса JS-фреймворка
@yulian_135 жыл бұрын
Можно объяснить?
@slava02075 жыл бұрын
@@yulian_13 .cs != JS, Using Linq; так же не совсем, смекаешь)
@johnd14315 жыл бұрын
Юлиан Шмиголь я тоже не понял шутки, там было приложение на С#, причем тут JS фреймворки и после какого слова надо было заржать
@tozpeak5 жыл бұрын
@@johnd1431 шутка про то, что в js постоянно появляются фреймворки, и что вполне возможно, где-то однажды появится фреймворк, который позволит писать на c# не выходя из js.
@Nopefish5 жыл бұрын
@@tozpeak очень сложная шутка. Можно ещё сложнее?
@anrybalka3 жыл бұрын
Кароч, инкапсуляция - это объединение данных и методов работы с этими данными в одной упаковке («капсуле»). Основа инкапсуляции (капсула) - КЛАСС.
@kimtyatya Жыл бұрын
Боже я ахуел когда узнал это, мне тупа мои азиатские глаза открыли
@Watozarato5 ай бұрын
Функция-конструктор
@IIEPEDO34 жыл бұрын
Суть такова, что тебе не нужно знать как работает автомобиль для того, чтобы пользоваться его интерфейсом (рулевым колесом, рычагом кпп, и педалями), т.к. внутреннее устройство инкапсулировано. Говорю этот пример на собесах и норм :)
@wwlb49703 жыл бұрын
Чтобы понять в простых словах что такое инкапсуляция, стоит, возможно, понять, что является её нарушением. Нет, объявление полей объекта вместо приватных публичными - это не нарушение инкапсуляции. Крайне распространённое нарушение И. - это уверенность в том, что какое-либо из состояний системы вам заранее известно. - Если вы создаёте метод, держа в уме, что какая-то пропертя в памяти\базе\на фронте\на бэке будет именно такой; - Если вы умело полагаете что, "в основном", данный метод вызывается лишь когда был вызван иной из другой части программы - Если вы уверены что реализация сервиса\репозитории\дао\базы\любого слоя на ваш выбор всегда будет такой как сейчас - И даже если вы наделяете переменную свойствами, которые ей не гарантированы - "эта переменная не может быть НУЛЛ" - "в этой строке по-любому можно вставить значение форматированием" - "пользователь не идиот и знает регекспы" то вы нарушаете инкапсуляцию в каком-то очень глобальном масштабе. Конечно, сокрытие реализации от пользователя - это инкапсуляция. Но это примерно такая же инкапсуляция, как тот полиморфизм, который показывают студентам на примере собак и кошек. Вроде полиморфизм, но становится ли понятней когда вместо собак и кошек AbstractServiceFactoryFactoryFactory?
@MsRomanFed3 жыл бұрын
Код, написанный на С в начале ролика, как пример НЕинкапсуляции, полностью удовлетворяет "понятному и полному" определению инкапсуляции данному на 8:22
@АльбертНикульшин-ш3б3 жыл бұрын
Самое смешное что ровно такой же пример с Point на языке С был в книге "Чистая архитектура" Мартина... и, внезапно, выступала примером инкапсуляции :)
@askolit14582 жыл бұрын
На С не было единого объекта, который объеденил данные и методы
@proleternal Жыл бұрын
@@askolit1458а create и getdistance - это, по-твоему, что? Псы нacpaли?
@АнтонЛапин-е2д3 жыл бұрын
Чувак, как хорошо, что твое видео попало ко мне в рекомендации. Завтра иду на собеседование, теперь надеюсь, что меня спросят про инкапсуляцию. И только про нее:)
@antonmarkin64913 жыл бұрын
Как результаты собеседования?
@farpurple2 жыл бұрын
Как результаты жизни?
@neilwilson4075 Жыл бұрын
@@farpurpleон умер
@farpurple Жыл бұрын
@@neilwilson4075 о7
@getteg64684 жыл бұрын
можно не смотреть видео полностью, 8:14 мин главная суть.
@Istanislav13 жыл бұрын
Спасибо, братанчик
@denysgranevych82793 жыл бұрын
Очень полезно
@bltvg3 жыл бұрын
Действительно, можно было уместить в одну картинку.
@drsmith95363 жыл бұрын
То что на слайде это не понятие инкапсуляции, а имплементация инкапсуляции в языке. Реализация скрывает детали не от пользователя, а от следующего уровня абстракции.
@СергейГундоров-ц8ъ3 жыл бұрын
Спсб
@serhiyhrytsiuk43765 жыл бұрын
Как-то столкнулся с таким же недопониманием Инкапсуляции на всоём первом собеседовании. Я тогда у Моженкова посмотрел видос об ООП и почерпнул этот дзен об Инкапсуляции у него. Решил блеснуть на собеседовании, но как-будто о стену ударился. Выпускайте, пожалуйста, видосики почаще!!!!
@ГеоргийЖуравлев-к2ъ5 жыл бұрын
Никогда не занимался на C, но в конце ролика понял, что к чему. Красавчик автор)
@andreyshostik77033 жыл бұрын
Инкапсуляция - принцип который связывает данные и методы(это реализует конструкция класса) что позволяет скрыть детали реализации и упростить использование интерфейса взаимодействия, используется совместно с модификаторами доступа что бы указать что будет интерфейсом взаимодействия, а что деталью реализации.
@princessmary5556 Жыл бұрын
Бред. Инкапсуляция вообще не привязана к ООП. А "объединение данных и методов их обработки" - это концепт понятия "класса". К инкапсуляции отнонения не имеет. А ещё, у инкапсуляции нет задачи, что-то там скрывать. Так например, приватная секция классов ничего ни от кого не скрывает.
@iceEnceladus5 жыл бұрын
тот случай когда до видео знал тему а после засомневался что знал из-за сложной подачи автором и остановил видео чтобы найти в интернете принципиальную схему котЭ ))
@vc369603 жыл бұрын
Просто КГАМ
@nikolai-Ll9iZXJnYW1vdGgK5 жыл бұрын
ИНКАСТЫЛЯЦИЯ, 6/\*b! :D
@IIAHKO5 жыл бұрын
Преследование и поливелосипедизм
@Sevenvad5 жыл бұрын
Поликостылизм Костылирование Инкостыляция
@АльбертДанкович4 жыл бұрын
Инбагуляция
@ИванШвалев-к8р4 жыл бұрын
Велосепидизация и костылирование
@maestro_denery3 жыл бұрын
Полимарксизм, инмарксизация...
@romanalekseev50272 жыл бұрын
Братан, харош!!! Давай, давай, вперёд! Контент в кайф, можно ещё? Вообще красавчик! Можно вот этого вот ещё почаще?
@РоговТимур5 жыл бұрын
раньше я не очень-то понимал что такое инкапсуляция. Теперь понял, что вообще ничего не понимаю!
@bltvg3 жыл бұрын
Пришёл некто, считающий себя очень умным, сказал, что ты говно. А теперь у тебя из-за него комплекс самозванца.
@grustnyia23865 жыл бұрын
Недопусти этой ошибки на собеседовании! "Не" с глаголами пиши раздельно! P.S. Шучу. Не смог удержаться. :-D
@ExtremeCode5 жыл бұрын
Грязный байт на комментарий сработал :D
@grustnyia23865 жыл бұрын
@@ExtremeCode :-)
@LobanovSpace5 жыл бұрын
Вахахаха
@CB_CHIEF5 жыл бұрын
@@grustnyia2386 многие путают отрицательный предлог «не» и приставку «недо», вследствие чего глагол «недосмотреть» (в значении недостаточно следить за кем-л.) пишут раздельно - не досмотреть. А это уже совсем иной смысл: досмотр могут производить, например, таможенники или полицейские, и «не досмотреть» (раздельно) означает не произвести досмотр.
@SabFo_5 жыл бұрын
@@CB_CHIEF ох уж этот русский язык
@dimagorelik39563 жыл бұрын
Рекомендации 2021. Это то что я хотел посмотреть)
@aljesco83385 жыл бұрын
Потрясающий пример того, как сделать видос на восемь минут ни о чём
@LobanovSpace5 жыл бұрын
Хехе
@maxpayne34915 жыл бұрын
автор мастер разводить пиздеж. ему бы на тв работать)
@faustfreeman34195 жыл бұрын
@@maxpayne3491 ни в коем случае. Только чиновником.
@the__Wizard5 жыл бұрын
а можно по подробнее, а то я не понял
@volodymyrmykytenko53245 жыл бұрын
Более того: открьіваем книгу Дядюшки Боба, из описания, там також же пример как на видно в С/С++ а вьіводьі противоположньіе: This is perfect encapsulation-in a non-OO language. C programmers used to do this kind of thing all the time. We would forward declare data structures and functions in header files, and then implement them in implementation files. Our users never had access to the elements in those implementation files.
@alexsey595 жыл бұрын
да вы жжети парни, еще одно видео не за год. мое почтение
@viktorkeleberda33554 жыл бұрын
Эх отличная подача информации с юмором и очень объемно, спасибо, лайкосик поставил :)
@LithiumDeuteride-6 Жыл бұрын
Сокрытие требуется чтобы не допустить некорректное обращения к методам и членам объекта. Например, в XRay есть вектор который надо инициализировать перед прочтением. Значит закрываем его protected, а get у него конечно public, и всё, никаких проблем не имеем. А если вектор будет так же public, то можем иметь ошибки которые могут быть достаточно трудно обнаруживаемые, если другой программист который не в курсе проблемы, будет использовать этот член объекта напрямую.
@princessmary5556 Жыл бұрын
Вы пишете: *Сокрытие требуется чтобы не допустить некорректное обращения к методам и членам объекта* Чушь.
@princessmary5556 Жыл бұрын
Вы пишете: *Например, в XRay есть вектор который надо инициализировать перед прочтением. Значит закрываем его protected* Это не сокрытие. Ограничение доступа к данным ничего ни от кого не скрывает.
@ВаняЖуков-л8ь5 жыл бұрын
Всегда орал с людей, которые пытаются найти глубокий смысл там, где его нет.
@2Quard5 жыл бұрын
Поиски глубоко смысла там где его нет, это способ уйти от реальной жизни.
@alexkart92394 жыл бұрын
т.е. ты орёшь постоянно?
@extrud964 жыл бұрын
Ну, тут вопрос не в поиске смысла, а в том чтоб найти корректное определение для понятия. Я вижу смысл в этом потому что в программировании очень важно понимать что и почему ты делаешь, для этого нужно хорошо и корректно понимать принципы которые ты используешь в работе. Однако в видео небыло показаны последствия не правильного понимания инкапсуляции, что жаль
@musoismailov60714 жыл бұрын
Если ты не копался до смысла, то откуда у тебя утверждение что там нет смысла?)
@brianryan40533 жыл бұрын
По английски это называется overthinking
@TheMerklar5 жыл бұрын
Видос и не рассчитан на новичков. Автор указал на то, что обычно в определении инкапсуляции ставят акцент на сокрытии данных, а не на объедении методов и данных в один объект. И достаточно доступно это разъяснил
@Qraizer5 жыл бұрын
Пример на C если что и продемонстрировал, то только не отсутствие языковой поддержки ООП в C. Отладчик студия не дал доступа к полям структуры исключительно по меркантильным соображениям, и никакое ООП тут ни при чём. Зато он прекрасно показал "подкованность" автора в механизмах ООП, где последнее П - это Проектирование, а не программирование. Последующий пример на Шарпе окончательно добил. Эх... а как обнадёживающе начинался видос...
@waaagh1769 Жыл бұрын
Держи в курсе
@pieceofsnitcrappy28002 жыл бұрын
Братан, хорош, давай, давай вперед! Контент в кайф, можно ещё? Вообще красавчик! Можно вот этого почаще?
@RomanPRO96RUS5 жыл бұрын
Честно говоря, понятия не имею как я наткнулся на данное видео и зачем зашел, т.к естественно ничего не понял, но было очень интересно! Спасибо!:))
@АндрійЯрута-е5б4 жыл бұрын
Только через 8, сука, месяцев и несколько раз пересматривая это видео, я понял что такое инкапсуляция. Твою ж дивизию как все просто.
@ДаниилГончаренко-г8я5 жыл бұрын
Блин, это было реально классно) всё оказывается так просто)
@mcblack201027 күн бұрын
Лайк тебе, бро! Так-то без особо четкого понимания определения инкапсуляции имел и имею понимание ООП. Однако всё равно интересно, так как после недавнего прочтения книги, единственная тема которой - использование ООП в одном популярном языке, в голове отложилось именно искаженное понимание (как сокрытие данных). Хотя, для справедливости, в книге много было про сокрытие реализации и смысла она не растеряла. Но вот акцент на определении мне понравился!
@proximacentauri32063 жыл бұрын
Вообще-то, товарищ программист, лайк нужно ставить после просмотра видео (а не в начале), чтобы алгоритм ютуба, "обрабатывающий лайки" засчитал его.
@ДмитрийУшаков-л6ж4 жыл бұрын
ExtremeCode - канал про то, что такое инкапсуляция
@konst3d5 жыл бұрын
1:31 - Мое лицо, когда меня (15+ лет в деве), начинают спрашивать на собеседовании, что такое "инкапсуляция"... И делает это, какой-нибудь HR, которому "правильный ответ", написали на бумажке.
@ДмитрийСоловьёв-ы5п5 жыл бұрын
Как ты с таким опытом попадаешь на такие собеседования
@konst3d5 жыл бұрын
@@ДмитрийСоловьёв-ы5п Всегда ищу где получше.
@andreysolomatov15525 ай бұрын
...аты попробуй догадаться, что ему накалякали на этой бумажке - и кто...
@igorklimovskiy76385 жыл бұрын
Инкапсуляция - это принцип сокрытия реализации от пользователя. При этом не важно чего - класс, модуль, приложение. Этот принцип необходим для абстрагирования реализации от интерфейса. Мне кажется это понятнее и главное точно не содержит ошибок типа где-то объект, где должен быть класс.
@alexanderbelov68924 жыл бұрын
Инкапсуляция - это про объединение в реализации кода и данных под единой сущностью класс. А абстрагирование - это про разделение интерфейса и реализации. Это отдельно существующие понятия.
@alexgorodecky16615 жыл бұрын
Хорошо рассказываете, уверенно. Прошу указать ссылки на литературу, ведущие к определениям "инкапсуляции" и "чистого ооп", или это лично ваши определения, полученные после реального кодинга?
@evgeny2495 Жыл бұрын
Это чистое балабольство в стиле ХаудиХо, знаешь английский - транслируй англоязычный контент, а понимание сути не надо, уже сойдешь за мегапрогера...
@vanyaivanov6713 жыл бұрын
Те, кто пишет, что суть в конце -- просто не посмотрели видос целиком. Чел на протяжении 8 минут отделял инкапсуляцию от сокрытия, а на последних секундах просто все скидал в кучу и сказал, что это определение инкапсуляции
@nikita8933 жыл бұрын
Очень приятный голос,с хорошим обьяснением,Только вот я не программист...
@ilyalisov5284 Жыл бұрын
было тяжело, но я понял, что инкапсуляция это сокрытие данных
@игрокфорточки Жыл бұрын
нет, инкапсуляция это не сокрытие, но инкапсуляция имеет механизм сокрытия
@princessmary5556 Жыл бұрын
Нет, не поняли. Инкапсуляция - это не сокрытие данных.
@КвасИСышка Жыл бұрын
комментаторы выше рофла не выкупают)
@qlmanlp5 жыл бұрын
Угарнул с фреймворка, спасибо за видос
@alekseyshibayev52435 жыл бұрын
Инкапсуляция - это возможность менять состояние объекта только им самим (с) Сергей Немчинский
@0imax5 жыл бұрын
О, Серёга набирает популярность))
@Alex023Y5 жыл бұрын
В конце нужно добавить "... и предоставляет пользователю интерфейс для взаимодействия с ним"
@illiazheleznyi45883 жыл бұрын
Люблю такие штуки, особенно когда человека ищут клипать формы, а спрашивают какие типы семафоров есть. Эти теоретические данные хороши, но это же надо меньше чем в 1% кода.
@vlad_kara11 ай бұрын
Клепать
@ck331225 жыл бұрын
дизлайк за утечку памяти в си программе
@CDTranslate5 жыл бұрын
Открою секрет: в большинстве игр, например, никто не очищает ресурсы, если человек нажал на выход, чтобы не жертвовать временем пользователя. Такой своеобразный tradeoff, хотя по завершению программы ОС сама "освободит" ресурсы.
@Kirik5164 жыл бұрын
Почему утечка, если по завершению расчета программа выключается?
@Чёрнаякошка-ц6к4 жыл бұрын
задача любой операционной системы входин не только выделение памяти по запросу приложения но и полная очистка памяти по окончании работы программы.
@Johny_Silverhands3 жыл бұрын
В менеджере памяти шиндовс все резервируется вот это бесит
@SerjioSlap3 жыл бұрын
@@CDTranslate да хрен знает, любая нормальная среда разработки включает в себя ВАЗМОЖНОСТЬ! подмести за собой... Наверное не просто так =)
@kornext5 жыл бұрын
Воу воу воу, палехче! Слишком много инфы за такой короткий срок! Мы то привыкли переваривать все по нескольку месяцев) P.S. Годно!
@vebyza5 жыл бұрын
Оооо, сё, пойду пиздить препода по проге, который говорит, что инуапсуляция = сокрытие(вызовите скорую, пожалуйста, у меня дома рыбка живёт ещё)
@LobanovSpace5 жыл бұрын
Хех
@ИгорьСелезнев-в2у5 жыл бұрын
Само слово инкапсуляция помогает понять его определение, где в нем про сокрытие? В нем про вложение, термин подобран правильно: объединение данных и методов, работающих с ними, в один объект. С другой стороны, верить видео какого-то парня, который грешит неудачными метафорами и примерами вместо преподавателя? Серьезно? Так может сразу слиться из универа и пойти учиться на ютубе?)
@vebyza5 жыл бұрын
@@ИгорьСелезнев-в2у тут дело ещё в том, что дословно переведч слово получится то же самое сокрытие или упрятываение. И получается интересно, мол сокрытие - не только сокрытие. А ютуб, к сожалению, отсрочку не даёт, потому приходится минимально посещать занатия(чтобы не топтать плац) и учиться самому, по крайней мере в регионах
@ИгорьСелезнев-в2у5 жыл бұрын
@@vebyza хорошая ремарка кстати про дословный перевод, спасибо, что поправили. Высшее Вам в любом случае будет на пользу. Без него однажды потолок карьеры начнет ограничивать рост. Про инкапсуляцию да, интересно получается.) Это при том, что у самого 10 лет с плюсом стажа разработчика ))
@ne4to7775 жыл бұрын
@@vebyza , дословный перевод не получается сокрытие или упрятывание, а получается помещение в капсулу или упаковка. Упаковка или капсула может быть прозрачной и ты можешь видеть внутренности. Может быть даже дырявой и ты можешь изменять эти внутренности, а значит не будет никакого сокрытия, как нет приватных свойств в JS. Но все равно это будет инкапсуляция. Поэтому можешь смело увольнять своего препода.
@The_EnG1nE Жыл бұрын
После этого js framework, сильно похожего на C#, я захотел выучить js
@WhatIslove-d4r5 жыл бұрын
Вижу видос от ExtremeCode - ставлю лукас
@ddosip93085 жыл бұрын
Ну наконец ты мне глаза открыл! А то я уж не справился бы
@alexandersobolev27694 жыл бұрын
Инкапсуляция (понимаемая как связывание вместе данных и методов для работы с ними) _на самом деле_ связана с механизмами ограничения доступа к этим данным. Это не _сокрытие_ (когда внутреннее устройство данных неизвестным; такой «черный ящик»), а именно _ограничение доступа_ - т. е. невозможность работать с этими данными _в обход_ заданных методов. Такое требование прежде всего предназначено для повышения _надежности_ кода. Разработав и протестировав класс (структура данных + методы для работы с ними) вы _гарантируете пользователям этого класса предсказуемость его работы. Собственно, именно в этом и состоит суть связывания вместе данных и методов. Подход функциональных (не ООП) языков с независимым определением структур и функций ничуть не менее удобен, чем синтаксис языков ООП, где обрабатываемая структура просто переносится из аргумента функции в ее «префикс» (имя объекта с точкой перед именем метода). Связывание вместе данных и методов нужно _как раз_ для _ограничения доступа_ к данным! Возможность работы с данными напрямую (точнее, возможность изменять их), _минуя_ заранее заданный набор методов, можно сравнить с дырой в заборе рядом с «навороченным» пропускным пунктом со развитой системой безопасности (всевозможные сканирования сетчатки, рамки металлоискателя и пр.); все эти меры безопасности бесполезны, когда их можно легко обойти через заботливо оставленную дыру. Ну и уже во _вторую_ очередь - ограничение доступа к данным _только_ через его методы позволяет изменять реализацию, не меняя интерфейс доступа (и, соответственно, не меняя код существующих клиентов). Но это всего лишь дополнительная «удобность», не ___ Строго говоря, ООП-языки, допускающие определение public-данных (а это и C++, и C#, и Java, и т. д.) _нарушают_ инкапсуляцию и, таким образом, являются, строго говоря, _не совсем_ ООП-языками. А вот, например, то, как организована работа с окнами (hWnd) в Windows (всех версий, начиная с самых первых), как это ни парадоксально звучит, является _хорошим_ примером ООП, несмотря на чисто C-шную реализацию и связанные с этим синтаксические неудобства. Там есть и полиморфизм (можно разослать одно и то же сообщение самым разным типам окон - будь то кнопки, списки, комбобоксы или главное окно программы), пройдясь по списку hWnd - и получить специфическую для каждого типа окон реакцию на это сообщение. Есть и аналог наследования - субклассирование, когда вы для нового типа окна переопределяете реакцию на некоторые сообщения, переадресуя обработку остальных в оконную функцию «родительского» типа окон. И наконец, там _совершенно правильно_ организована инкапсуляция - по одному только hWnd вы не сможете получит доступ к внутреннему представлению данных окон, миную определенные для него «методы» - типы сообщений MSG, которые могут быть обработаны данным типом окон. Как видно из этого примера, «связывание данных и методов» при помощи _специального синтаксиса_ языка программирования (вроде определения классов, как «структур с методами») вовсе не обязательно для реализации принципов ООП.
@AlexanderKozubskiy3 жыл бұрын
Спасибо за видео, из всех общедоступных источников (в основном видосики на ютубе) данное определение инкапсуляции только в книге еще встретил, "Сам себе программист" вроде .. подписался на канал.
@johnwick83325 жыл бұрын
ппц ты как Боженька открыл мне глаза я то думал ....спасибо
@lobanovds2 жыл бұрын
Теперь понял. Спасибо. Инкапсуляция - это мы так скрываем переменные
@princessmary5556 Жыл бұрын
Нет, вы не поняли.
@sergeyvasin63725 жыл бұрын
Классный фреймворк :)
@antizvyagin4 жыл бұрын
Мало что понял, но очень интересно, особенно когда код набирается
@alexanderkostyuk7555 жыл бұрын
Инкапсуляция это скрытие чегото, помещение его в капсулу! и все! Дослоно в капсулу(encapsulate=заключать в капсулу )! А связывание данных и медотов в один обьект это для слишком умных!
@YmNIKYm5 жыл бұрын
Ты слишком сложно поясняешь, всего в одну строчку, запиши видос на пол часа хотя бы.
@ne4to7775 жыл бұрын
Хочешь, я тебе реализую инкапсуляцию без сокрытия данных?
@alexanderkostyuk7555 жыл бұрын
@@ne4to777 Ну так в чем проблема, давай! выкладывай сюда будем смотреть!
@ne4to7775 жыл бұрын
@@alexanderkostyuk755 , на js class Test { constructor(x) { this.x = x } get() { return this.x } } const a = new Test(1) console.log(a.get()) // 1 console.log(a.x) // 1
@alexanderkostyuk7555 жыл бұрын
@@ne4to777 Нормально! Такой вопрос, а как ты ограничил доступ одних компонентов программы к другим?
@SineSet4 жыл бұрын
Вообще-то это не инкапсуляция и не сокрытие. Это реализация после объявления - особенность C/C++, которая позволяет объявить сигнатуру и использовать функцию/тип ДО её/его реализации или вообще в другом файле, например, когда несколько типов имеют указатели на данные типа друг друга, или чтобы не загромождать код сложными структурами. А невозможность при этом достучаться до содержимого объявленного типа - побочный эффект такой особенности. Если функцию (getDistance), обращающуюся к содержимому объявленного так типа (struct Point) реализовать в другом файле, то она тоже не сможет достучаться до содержимого этого типа. Если структуру (struct Point) целиком объявить в заголовочном файле, то всё будет исправно работать. Сравнение с примером в C# не совсем корректно. Там всё это работает потому, что в качестве аргумента метода класса (чего вообще нет в С) используется объект такого же типа, и так как метод является членом класса, то "знает", что называется, "изнутри" структуру полей объектов своего типа, и поэтому нужное поле объекта в аргументе "видит". Кстати, в C++ это тоже работает. В C все обращения к любым типам - только "снаружи". Тем не менее, автор, пиши/снимай ещё. Годно.
@ilyamz19275 жыл бұрын
Чем плох конструктор для создания класса?? :((
@FobosWorld3 жыл бұрын
Обычно это делают чтобы валидировать входные данные при создании нового инстагса
@danilakhtarov3 жыл бұрын
Инкапсуляция это объединение данных по классу, сокрытие как мы привыкли видеть это управление его доступностью с помощью модификаторов доступа. Тут все просто
@vangogih5 жыл бұрын
Пример с расстоянием между точками был взял из книги дяди боба про архитектуру?)
@Solfylte3 жыл бұрын
Ага, там где она пишет что уже в С была инкапсуляция.
@vangogih3 жыл бұрын
@@Solfylte тогда ты не понимаешь что такое инкапсуляция, потому что в С ее не было.
@Solfylte3 жыл бұрын
@@vangogih Ок. Я не написал что она там была или нет, это ваша интерпретация коментария.
@ВладимирВоробьев-е6о5 жыл бұрын
Нынче развелось много молодых программистов которые принципиально не используют инкапсуляцию. Пишут отдельно классы только для данных и отдельно классы только для методов работающих с этими данными. Считают себя крутыми ООП-шниками.
@AngryBerserk5 жыл бұрын
То есть эти еретики пишут чистые методы для работы с данными?! Небось ещё и богомерзкие иммутабельные структуры используют, чему их только в школах учили
@ВладимирВоробьев-е6о5 жыл бұрын
@@AngryBerserk Самое худшее что они становятся PM-ами, и навязывают вот такой-вот процедурный стиль всем называя это "паттернами".
@MrIbah425 жыл бұрын
долго, мало смысла, демагогия.
@bannikovn88144 жыл бұрын
Хорошее определение, мне нравится
@TheKoropet5 жыл бұрын
Инкостыляция, порноморфизм.. что дальше?
@batfist65955 жыл бұрын
Найсследование (что?)
@nikelsad5 жыл бұрын
Тут, где-то в комментах, было -- преследование =)
@alexanderp45324 жыл бұрын
абстругация
@mariaguseva21922 жыл бұрын
мужики я готовлюсь к экзамену по вашим видосам спасибо
@ДмитрийСтарушко-в5ф3 жыл бұрын
Для начала: даже маленькие примеры должны быть корректными. Где освобождение памяти в C-варианте примера? И второе: зачем демонстрировать ООП и правильную инкапсуляцию на JS Framework'е, когда ничуть не хуже это можно сделать на C++, заодно и продемонстрировав отличия от C?
@Mik-hm9tb5 жыл бұрын
Не знаю что я тут забыл со своей ардуинкой, но было почти интересно.
@alexanderbelov68924 жыл бұрын
"История одного байта" - это про вас?
@vxarlanchuk5 жыл бұрын
8:13. До этого момента смотреть бессмысленно, просто тратите время.
@MasterSergius5 жыл бұрын
Всмысле тратите время? А поржать?
@tarzanonline3 жыл бұрын
так много на ютуб просят поставить лайк ещё в начале видео, при том, что до конца не досмотрел. Типа сейчас покажу тебе что то, но ты скажи что тебе это нравится... :)
@ВладМн5 жыл бұрын
ничего не понял, но очень интересно ...
@Distars-y8s2 жыл бұрын
Мало что понятно, но очень интересно.
@QwerTy-vq1vb5 жыл бұрын
"ИнКастыляция" =)
@nikelsad5 жыл бұрын
ИнкОстыляция
@yalauitarik4 жыл бұрын
@@nikelsad о, уже и у инкостыляции появилось 2 трактовки
@teddeiread17355 жыл бұрын
Инкостыляция? Неплохо)
@sirjorgenbjorgen22955 жыл бұрын
а когда полноценный курс C++ будет ?
@joefast5055 жыл бұрын
Согласен!
@juliusmalkov96205 жыл бұрын
@@joefast505 они ещё по C# всего не сняли!!!
@МаркАндерсон-ы5ж5 жыл бұрын
Почему всех на плюсы тянет? работы в СНГ на с++ нету, а если есть то плотят на там гроши, если ты не senior
@g-manchanel17105 жыл бұрын
Марк Андерсон прыгать с сисей на другие языки проще всего
@АлександрФилиппов-ч5р3 жыл бұрын
@@МаркАндерсон-ы5ж я работаю на плюсах в qt и платят хорошо
@nikitoskin20125 жыл бұрын
Просмотрел полторы минут и сразу подписался
@АндрейТихонов-г6ы5 жыл бұрын
Я так понял, что Инкапсуляция - это сокрытие.
@GazziFX5 жыл бұрын
Я в общем ничего, не понял, но по сути в C# Instance методы это Static методы, но первый аргумент это и есть экземпляр этого класса. В видео наверное что-то другое объяснялось, но мое утверждение можно проверить по генерирумому коду IL, либо можно переопределить метод, с помощью манипуляций с Compiler Services и IntPtr этих методов
@majestif5 жыл бұрын
Спасибо за видос, в целом доступно, но код ужасен, какая-то мешанина из древного С++, Си и утечки памяти в придачу.
@Dmittry5 жыл бұрын
Хоть я и не шарю в C/C++, но malloc без освобождения меня тоже очень смутил. Так можно?
@notapirate5055 жыл бұрын
@@Dmittry Можно конечно, вот на видео сделал же. Только не нужно. В данном контексте +-килобайт памяти утек, не страшно, просто одноразовый пример же. Но все равно не нужно.
@notapirate5055 жыл бұрын
Код компилился в с++ проекте, кстати. Примечательно, что канпелятор не ругнулся на malloc без каста, g++ бы нафиг послал уже.
@Serhii_Likhash5 жыл бұрын
Критика это хорошо, а какое у вас решение? Просто нужно чистить за собой мусор, никакой утечки нет посоны
@KaraMaslyatam5 жыл бұрын
Зачем чистить память в программе, которая работает микросекунду времени и выделяет одну страницу памяти? Где там древний C++? MS компилятор по дефолту читает "*.c" как Си код и плюсовые штуки не схавает, поэтому там не может быть C++.
@plaintext7288 Жыл бұрын
Тысячный коммент для легендарного ролика
@alex-rr5mt5 жыл бұрын
Спасибо за музыку! Если бы ещё тиму белоруских включили, то было бы просто отлично
@BacktoaHappychildhood3 жыл бұрын
Посмотрю потом, когда буду хоть что-то понимать в этом ))
@maxon175 жыл бұрын
2:50 iiiiiiiiis BORIS !
@SteemeX5 жыл бұрын
Очень понравилась вставка с хардбасом!
@IshuckShow5 жыл бұрын
Экстримкод, люблю
@user-Dmitry-Brilko4 жыл бұрын
Думаю, что стоит переобозначить определение. Инкапсуляция - это сокрытие и объединение категория класса.
@sagamoreBel5 жыл бұрын
Не с глаголами, ну. Вы что, совсем технари там?
@strateg1hawk3 жыл бұрын
Очень хорошое сравнение будет именно с капсулой, которая хранит данные и методы, и только эта «капсула» знает о деталях, и мы просто пользуемся всем что есть в этой капсуле
@princessmary5556 Жыл бұрын
Нет, вы пользуетесь исключительно публичным api капсулы. А что там есть внутри - вы не имеете никакого понятия.
@AlexCSharp5 жыл бұрын
Ммм... Мартин, "Чистая архитектура". Молодцы, хотя бы источники хорошие берёте. )
@bogdns4 жыл бұрын
Инкапсуляцию не поймёшь, если ты её не знал
@otshelmynik5 жыл бұрын
Какое то не уверенное объяснение. Сокрытие это сокрытие, а инкапсуляция это когда вот эта переменная вот тут вот так... просто ох***тительное объяснение
@ЕвгенийВасильев-щ7в3 жыл бұрын
Видео ориентировано для опытных
@sobanya_2285 жыл бұрын
Slipknot/Bieber трек - топ
@ErOp-nOMugOp3 жыл бұрын
Прямо как в школе, нужно знать наизусть...
@alexmorgun8513 жыл бұрын
Проблема отечественного IT в том что тут слишком много русского языка. Когда неудачные переводы из 80-90х продолжают запихивать в новые книги. Открываем любой ответ по запросу Encapsulation и получаем первый ответ "Encapsulation is one of the fundamentals of OOP (object-oriented programming). It refers to the bundling of data with the methods that operate on that data." и второй ответ "Encapsulation is used to hide the values or state of a structured data object inside a class, preventing direct access to them by clients in a way that could expose hidden implementation details or violate state invariance maintained by the methods." Вероятно эти заблуждения были и в оригиналах нескольких популярных книг, но на западе они не так часто встречаются как у нас. А в русской википедии все еще "скрытие внутренней реализации от других компонентов". Ладно.. )
@gunnargunaxe Жыл бұрын
Самая главная ошибка в ООП - использование ООП
@user-mrmirajizhere-9273 жыл бұрын
* сидит и задумчиво кивает *
@ВасяАфонасьев-л8з4 жыл бұрын
Благо нам в институте так и объясняли в далеком 2006ом году на 3-ем курсе ))
@zigzag23413 жыл бұрын
9 минут за инкапсуляцию рассказывать.. инкапсулируй этот ролик с глаз моих !
@КостяКреон5 жыл бұрын
МУЖИИИИИК! Так и буду объяснять дочке, когда прийдёт время.
@alexanderbelov68924 жыл бұрын
Главное не упустить время. Когда начнёт дёргать батарейку, чтобы ресетить КМОП память, и сбрасывать пароль BIOS - уже поздно. 🙂