ТВОЯ ГЛАВНАЯ ОШИБКА В ООП

Ғылым және технология

Обсуждаем главную ошибку новичков в ООП на собеседованиях, а именно инкапсуляцию, узнаем чем сокрытие данных отличается от инкапсуляции, а так же поговорим о модификаторах доступа
C (lang) код на GitHub
github.com/extremecodetv/data...
Книга Роберта Мартина "Чистая архитектура"
bit.ly/2lYpJxx
Ссылки
● VK: extremecodetv
● Telegram Chat: t.me/extremecode (или в поиске @extremecode)
● GitHub: github.com/extremecodetv

Пікірлер: 1 000

  • @ExtremeCode
    @ExtremeCode4 жыл бұрын

    Да, тут должен быть какой то смешной комментарий, совсем забыл. Ставь лукас, а то че как бивень А для бустеров у нас есть эксклюзивный контент: boosty.to/extremecode P.S. 3-е сентября пришлось вырезать, дядя Шуфутинский за 10-и секундную вставку бабок хочет -_______________-

  • @ExtremeCode

    @ExtremeCode

    4 жыл бұрын

    bool understand = false; do { var result = youtubeClient.see("yNUJ3vAeyJQ"); understand = brain.getUnderstandState(result); } while (!understand);

  • @alexeysamovich301

    @alexeysamovich301

    4 жыл бұрын

    @fff аа Смотри видео, пока не вдуплишь.

  • @mikhailturov7066

    @mikhailturov7066

    4 жыл бұрын

    ​@fff аа if (youtubeClient.comment.Contains("@ExtremeCode а по-русски?") && youtubeClient.comment.author() == "fff aa")) { this.Translate(); } public void Translate() { bool понимают = ложь; делать { различный результат = ютубКлиент.увидеть("yNUJ3vAeyJQ"); понимают = мозг.получитьСостояниеПонимания(результат); } когда (!понять); }

  • @sledleo

    @sledleo

    4 жыл бұрын

    @@ExtremeCode Канешна болтовня, как и определения - занимательно и не обременительна для автора. Но для простолюдинов было бы нагляднее ввиде схем и картинок пояснять. Ибо простолюдины из болтовни образы не генерят...

  • @sandorik

    @sandorik

    4 жыл бұрын

    @fff аа В конце видео полное определение.Разворачиваешь его на весь экран и сиди медитируй пока не прийдёт прозрение.

  • @karfagen86
    @karfagen863 жыл бұрын

    - Какие паттерны ООП вы знаете? - Костылирование, Инкостыляция и Поликостылизм.

  • @bltvg

    @bltvg

    3 жыл бұрын

    Это не паттерны ООП, а принципы ООП. Паттерны - это синглкостыльтон, абстрактная фабрика костылей и всё такое.

  • @user-ke2od3yl2w

    @user-ke2od3yl2w

    3 жыл бұрын

    @@bltvg ну если уже правильно говорить, тогда это и не принципы. Это парадигмы)

  • @Bloody_River

    @Bloody_River

    3 жыл бұрын

    @@user-ke2od3yl2w костыли.

  • @user-sl7ie9te5r

    @user-sl7ie9te5r

    3 жыл бұрын

    @@user-ke2od3yl2w ПАРАдигмы(типа как параолимпиада)

  • @istox2787

    @istox2787

    2 жыл бұрын

    А как-же акостыляция?

  • @nik1tosssa
    @nik1tosssa4 жыл бұрын

    Ничего не понял, но из-за того, что достаточно хорошо кивал головой, теперь учусь в стенфорде

  • @ark-kun7221

    @ark-kun7221

    4 жыл бұрын

    Завтра первая пара в какой аудитории?

  • @Calvin_M.

    @Calvin_M.

    4 жыл бұрын

    @@ark-kun7221 Глупый вопрос) Зависит на кого учишься, но ты явно не знал об этом.

  • @StanSlider

    @StanSlider

    4 жыл бұрын

    Интересно хоть было?

  • @alexanderbelov6892

    @alexanderbelov6892

    4 жыл бұрын

    Кивающие головой - это аутисты?

  • @user-np7ik7ti7v

    @user-np7ik7ti7v

    4 жыл бұрын

    @@alexanderbelov6892 нет, киватисты

  • @anthonyminchenko3109
    @anthonyminchenko31094 жыл бұрын

    Проорал с синтаксиса JS-фреймворка

  • @user-fx5pz7st7c

    @user-fx5pz7st7c

    4 жыл бұрын

    Можно объяснить?

  • @slava0207

    @slava0207

    4 жыл бұрын

    @@user-fx5pz7st7c .cs != JS, Using Linq; так же не совсем, смекаешь)

  • @johnd1431

    @johnd1431

    4 жыл бұрын

    Юлиан Шмиголь я тоже не понял шутки, там было приложение на С#, причем тут JS фреймворки и после какого слова надо было заржать

  • @tozpeak

    @tozpeak

    4 жыл бұрын

    @@johnd1431 шутка про то, что в js постоянно появляются фреймворки, и что вполне возможно, где-то однажды появится фреймворк, который позволит писать на c# не выходя из js.

  • @Nopefish

    @Nopefish

    4 жыл бұрын

    @@tozpeak очень сложная шутка. Можно ещё сложнее?

  • @dudenarima2528
    @dudenarima25284 жыл бұрын

    ОБОЖАЮ когда ты приводишь по 20 аналогий ежесекундно

  • @anrybalka
    @anrybalka3 жыл бұрын

    Кароч, инкапсуляция - это объединение данных и методов работы с этими данными в одной упаковке («капсуле»). Основа инкапсуляции (капсула) - КЛАСС.

  • @kimtyatya

    @kimtyatya

    Жыл бұрын

    Боже я ахуел когда узнал это, мне тупа мои азиатские глаза открыли

  • @getteg6468
    @getteg64684 жыл бұрын

    можно не смотреть видео полностью, 8:14 мин главная суть.

  • @Istanislav1

    @Istanislav1

    3 жыл бұрын

    Спасибо, братанчик

  • @denysgranevych8279

    @denysgranevych8279

    3 жыл бұрын

    Очень полезно

  • @bltvg

    @bltvg

    3 жыл бұрын

    Действительно, можно было уместить в одну картинку.

  • @drsmith9536

    @drsmith9536

    3 жыл бұрын

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

  • @namalnikmisartenko8785

    @namalnikmisartenko8785

    3 жыл бұрын

    @@drsmith9536 Автор даун Все нормально

  • @grustnyia2386
    @grustnyia23864 жыл бұрын

    Недопусти этой ошибки на собеседовании! "Не" с глаголами пиши раздельно! P.S. Шучу. Не смог удержаться. :-D

  • @ExtremeCode

    @ExtremeCode

    4 жыл бұрын

    Грязный байт на комментарий сработал :D

  • @grustnyia2386

    @grustnyia2386

    4 жыл бұрын

    @@ExtremeCode :-)

  • @LobanovSpace

    @LobanovSpace

    4 жыл бұрын

    Вахахаха

  • @CB_CHIEF

    @CB_CHIEF

    4 жыл бұрын

    @@grustnyia2386 многие путают отрицательный предлог «не» и приставку «недо», вследствие чего глагол «недосмотреть» (в значении недостаточно следить за кем-л.) пишут раздельно - не досмотреть. А это уже совсем иной смысл: досмотр могут производить, например, таможенники или полицейские, и «не досмотреть» (раздельно) означает не произвести досмотр.

  • @SabFo_

    @SabFo_

    4 жыл бұрын

    @@CB_CHIEF ох уж этот русский язык

  • @viktorkeleberda3355
    @viktorkeleberda33554 жыл бұрын

    Эх отличная подача информации с юмором и очень объемно, спасибо, лайкосик поставил :)

  • @wwlb4970
    @wwlb49703 жыл бұрын

    Чтобы понять в простых словах что такое инкапсуляция, стоит, возможно, понять, что является её нарушением. Нет, объявление полей объекта вместо приватных публичными - это не нарушение инкапсуляции. Крайне распространённое нарушение И. - это уверенность в том, что какое-либо из состояний системы вам заранее известно. - Если вы создаёте метод, держа в уме, что какая-то пропертя в памяти\базе\на фронте\на бэке будет именно такой; - Если вы умело полагаете что, "в основном", данный метод вызывается лишь когда был вызван иной из другой части программы - Если вы уверены что реализация сервиса\репозитории\дао\базы\любого слоя на ваш выбор всегда будет такой как сейчас - И даже если вы наделяете переменную свойствами, которые ей не гарантированы - "эта переменная не может быть НУЛЛ" - "в этой строке по-любому можно вставить значение форматированием" - "пользователь не идиот и знает регекспы" то вы нарушаете инкапсуляцию в каком-то очень глобальном масштабе. Конечно, сокрытие реализации от пользователя - это инкапсуляция. Но это примерно такая же инкапсуляция, как тот полиморфизм, который показывают студентам на примере собак и кошек. Вроде полиморфизм, но становится ли понятней когда вместо собак и кошек AbstractServiceFactoryFactoryFactory?

  • @user-bb1rm5gi6h
    @user-bb1rm5gi6h4 жыл бұрын

    ИНКАСТЫЛЯЦИЯ, 6/\*b! :D

  • @IIAHKO

    @IIAHKO

    4 жыл бұрын

    Преследование и поливелосипедизм

  • @Sevenvad

    @Sevenvad

    4 жыл бұрын

    Поликостылизм Костылирование Инкостыляция

  • @user-go7sr1zf6d

    @user-go7sr1zf6d

    4 жыл бұрын

    Инбагуляция

  • @user-ef4wu1kt9i

    @user-ef4wu1kt9i

    4 жыл бұрын

    Велосепидизация и костылирование

  • @maestro_denery

    @maestro_denery

    3 жыл бұрын

    Полимарксизм, инмарксизация...

  • @IIEPEDO3
    @IIEPEDO34 жыл бұрын

    Суть такова, что тебе не нужно знать как работает автомобиль для того, чтобы пользоваться его интерфейсом (рулевым колесом, рычагом кпп, и педалями), т.к. внутреннее устройство инкапсулировано. Говорю этот пример на собесах и норм :)

  • @user-xc6ns4tl3z
    @user-xc6ns4tl3z4 жыл бұрын

    Никогда не занимался на C, но в конце ролика понял, что к чему. Красавчик автор)

  • @serhiyhrytsiuk4376
    @serhiyhrytsiuk43764 жыл бұрын

    Как-то столкнулся с таким же недопониманием Инкапсуляции на всоём первом собеседовании. Я тогда у Моженкова посмотрел видос об ООП и почерпнул этот дзен об Инкапсуляции у него. Решил блеснуть на собеседовании, но как-будто о стену ударился. Выпускайте, пожалуйста, видосики почаще!!!!

  • @user-hl7zj8fc7u
    @user-hl7zj8fc7u4 жыл бұрын

    Блин, это было реально классно) всё оказывается так просто)

  • @user-nd3vv5fn5e
    @user-nd3vv5fn5e4 жыл бұрын

    раньше я не очень-то понимал что такое инкапсуляция. Теперь понял, что вообще ничего не понимаю!

  • @bltvg

    @bltvg

    3 жыл бұрын

    Пришёл некто, считающий себя очень умным, сказал, что ты говно. А теперь у тебя из-за него комплекс самозванца.

  • @roman6572
    @roman65724 жыл бұрын

    начали видео выходить, я очень рад)

  • @user-lz5yw6dq1o
    @user-lz5yw6dq1o3 жыл бұрын

    Чувак, как хорошо, что твое видео попало ко мне в рекомендации. Завтра иду на собеседование, теперь надеюсь, что меня спросят про инкапсуляцию. И только про нее:)

  • @antonmarkin6491

    @antonmarkin6491

    3 жыл бұрын

    Как результаты собеседования?

  • @farpurple

    @farpurple

    Жыл бұрын

    Как результаты жизни?

  • @neilwilson4075

    @neilwilson4075

    Жыл бұрын

    ​@@farpurpleон умер

  • @farpurple

    @farpurple

    Жыл бұрын

    @@neilwilson4075 о7

  • @iceEnceladus
    @iceEnceladus4 жыл бұрын

    тот случай когда до видео знал тему а после засомневался что знал из-за сложной подачи автором и остановил видео чтобы найти в интернете принципиальную схему котЭ ))

  • @vc36960

    @vc36960

    3 жыл бұрын

    Просто КГАМ

  • @dimagorelik3956
    @dimagorelik39563 жыл бұрын

    Рекомендации 2021. Это то что я хотел посмотреть)

  • @MsRomanFed
    @MsRomanFed3 жыл бұрын

    Код, написанный на С в начале ролика, как пример НЕинкапсуляции, полностью удовлетворяет "понятному и полному" определению инкапсуляции данному на 8:22

  • @user-wk2vq8xq3u

    @user-wk2vq8xq3u

    3 жыл бұрын

    Самое смешное что ровно такой же пример с Point на языке С был в книге "Чистая архитектура" Мартина... и, внезапно, выступала примером инкапсуляции :)

  • @askolit1458

    @askolit1458

    Жыл бұрын

    На С не было единого объекта, который объеденил данные и методы

  • @proleternal

    @proleternal

    8 ай бұрын

    ​@@askolit1458а create и getdistance - это, по-твоему, что? Псы нacpaли?

  • @user-wr9vf1wr8l
    @user-wr9vf1wr8l4 жыл бұрын

    Всегда орал с людей, которые пытаются найти глубокий смысл там, где его нет.

  • @2Quard

    @2Quard

    4 жыл бұрын

    Поиски глубоко смысла там где его нет, это способ уйти от реальной жизни.

  • @alexkart9239

    @alexkart9239

    4 жыл бұрын

    т.е. ты орёшь постоянно?

  • @extrud96

    @extrud96

    4 жыл бұрын

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

  • @musoismailov6071

    @musoismailov6071

    4 жыл бұрын

    Если ты не копался до смысла, то откуда у тебя утверждение что там нет смысла?)

  • @brianryan4053

    @brianryan4053

    3 жыл бұрын

    По английски это называется overthinking

  • @moscowdjangoru
    @moscowdjangoru4 жыл бұрын

    Спасибо за видео! :)

  • @AndreySHAP
    @AndreySHAP4 жыл бұрын

    Видос офигенный! Однозначно лайк!

  • @qlmanlp
    @qlmanlp4 жыл бұрын

    Угарнул с фреймворка, спасибо за видос

  • @sergeyvasin6372
    @sergeyvasin63724 жыл бұрын

    Классный фреймворк :)

  • @alexsey59
    @alexsey594 жыл бұрын

    да вы жжети парни, еще одно видео не за год. мое почтение

  • @SineSet
    @SineSet4 жыл бұрын

    Вообще-то это не инкапсуляция и не сокрытие. Это реализация после объявления - особенность C/C++, которая позволяет объявить сигнатуру и использовать функцию/тип ДО её/его реализации или вообще в другом файле, например, когда несколько типов имеют указатели на данные типа друг друга, или чтобы не загромождать код сложными структурами. А невозможность при этом достучаться до содержимого объявленного типа - побочный эффект такой особенности. Если функцию (getDistance), обращающуюся к содержимому объявленного так типа (struct Point) реализовать в другом файле, то она тоже не сможет достучаться до содержимого этого типа. Если структуру (struct Point) целиком объявить в заголовочном файле, то всё будет исправно работать. Сравнение с примером в C# не совсем корректно. Там всё это работает потому, что в качестве аргумента метода класса (чего вообще нет в С) используется объект такого же типа, и так как метод является членом класса, то "знает", что называется, "изнутри" структуру полей объектов своего типа, и поэтому нужное поле объекта в аргументе "видит". Кстати, в C++ это тоже работает. В C все обращения к любым типам - только "снаружи". Тем не менее, автор, пиши/снимай ещё. Годно.

  • @alexgorodecky1661
    @alexgorodecky16614 жыл бұрын

    Хорошо рассказываете, уверенно. Прошу указать ссылки на литературу, ведущие к определениям "инкапсуляции" и "чистого ооп", или это лично ваши определения, полученные после реального кодинга?

  • @evgeny2495

    @evgeny2495

    8 ай бұрын

    Это чистое балабольство в стиле ХаудиХо, знаешь английский - транслируй англоязычный контент, а понимание сути не надо, уже сойдешь за мегапрогера...

  • @IshuckShow
    @IshuckShow4 жыл бұрын

    Экстримкод, люблю

  • @pieceofsnitcrappy2800
    @pieceofsnitcrappy2800 Жыл бұрын

    Братан, хорош, давай, давай вперед! Контент в кайф, можно ещё? Вообще красавчик! Можно вот этого почаще?

  • @antik_tm2272
    @antik_tm2272 Жыл бұрын

    Контент топ! Давай по больше вот этого)

  • @vebyza
    @vebyza4 жыл бұрын

    Оооо, сё, пойду пиздить препода по проге, который говорит, что инуапсуляция = сокрытие(вызовите скорую, пожалуйста, у меня дома рыбка живёт ещё)

  • @LobanovSpace

    @LobanovSpace

    4 жыл бұрын

    Хех

  • @user-vl4zr6py9s

    @user-vl4zr6py9s

    4 жыл бұрын

    Само слово инкапсуляция помогает понять его определение, где в нем про сокрытие? В нем про вложение, термин подобран правильно: объединение данных и методов, работающих с ними, в один объект. С другой стороны, верить видео какого-то парня, который грешит неудачными метафорами и примерами вместо преподавателя? Серьезно? Так может сразу слиться из универа и пойти учиться на ютубе?)

  • @vebyza

    @vebyza

    4 жыл бұрын

    @@user-vl4zr6py9s тут дело ещё в том, что дословно переведч слово получится то же самое сокрытие или упрятываение. И получается интересно, мол сокрытие - не только сокрытие. А ютуб, к сожалению, отсрочку не даёт, потому приходится минимально посещать занатия(чтобы не топтать плац) и учиться самому, по крайней мере в регионах

  • @user-vl4zr6py9s

    @user-vl4zr6py9s

    4 жыл бұрын

    @@vebyza хорошая ремарка кстати про дословный перевод, спасибо, что поправили. Высшее Вам в любом случае будет на пользу. Без него однажды потолок карьеры начнет ограничивать рост. Про инкапсуляцию да, интересно получается.) Это при том, что у самого 10 лет с плюсом стажа разработчика ))

  • @ne4to777

    @ne4to777

    4 жыл бұрын

    @@vebyza , дословный перевод не получается сокрытие или упрятывание, а получается помещение в капсулу или упаковка. Упаковка или капсула может быть прозрачной и ты можешь видеть внутренности. Может быть даже дырявой и ты можешь изменять эти внутренности, а значит не будет никакого сокрытия, как нет приватных свойств в JS. Но все равно это будет инкапсуляция. Поэтому можешь смело увольнять своего препода.

  • @konst3d
    @konst3d4 жыл бұрын

    1:31 - Мое лицо, когда меня (15+ лет в деве), начинают спрашивать на собеседовании, что такое "инкапсуляция"... И делает это, какой-нибудь HR, которому "правильный ответ", написали на бумажке.

  • @user-pt6gm8tj2e

    @user-pt6gm8tj2e

    4 жыл бұрын

    Как ты с таким опытом попадаешь на такие собеседования

  • @konst3d

    @konst3d

    4 жыл бұрын

    @@user-pt6gm8tj2e Всегда ищу где получше.

  • @kornext
    @kornext4 жыл бұрын

    Воу воу воу, палехче! Слишком много инфы за такой короткий срок! Мы то привыкли переваривать все по нескольку месяцев) P.S. Годно!

  • @pavelvorontsov7020
    @pavelvorontsov70204 жыл бұрын

    Спасибо за новый термин - инКАСТЕляцию!

  • @jeka987
    @jeka9874 жыл бұрын

    Инкапсуляция - упаковка в коробку объекта и предоставление методов работы с ним.

  • @Eraston

    @Eraston

    4 жыл бұрын

    Вообще, икапсуляция - просто упаковка ) Другой вопрос, что инкапсуляция, по сути, есть идея ООП: переход от данных к объектам, а не какая не нахрен парадигма

  • @Kirik516

    @Kirik516

    4 жыл бұрын

    @@Eraston Да никто и не говорит, что это парадигма.

  • @Eraston

    @Eraston

    4 жыл бұрын

    @@Kirik516 а вот это вы преподавателям скажите )

  • @Kirik516

    @Kirik516

    4 жыл бұрын

    @@Eraston Никогда не встречал таких преподавателей.

  • @user-tn3ne4qp6b

    @user-tn3ne4qp6b

    4 жыл бұрын

    @@Eraston Инкапсуляция, это не идея ООП. Все идеи ООП, наследование, полиморфизм, инкапсуляция, были до этого в других языках, на этом собственно строится часть критики ООП

  • @johnwick8332
    @johnwick83324 жыл бұрын

    ппц ты как Боженька открыл мне глаза я то думал ....спасибо

  • @RayUa
    @RayUa3 жыл бұрын

    Спасибо за видос! )))

  • @andreyshostik7703
    @andreyshostik77033 жыл бұрын

    Инкапсуляция - принцип который связывает данные и методы(это реализует конструкция класса) что позволяет скрыть детали реализации и упростить использование интерфейса взаимодействия, используется совместно с модификаторами доступа что бы указать что будет интерфейсом взаимодействия, а что деталью реализации.

  • @princessmary5556

    @princessmary5556

    Жыл бұрын

    Бред. Инкапсуляция вообще не привязана к ООП. А "объединение данных и методов их обработки" - это концепт понятия "класса". К инкапсуляции отнонения не имеет. А ещё, у инкапсуляции нет задачи, что-то там скрывать. Так например, приватная секция классов ничего ни от кого не скрывает.

  • @Qraizer
    @Qraizer4 жыл бұрын

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

  • @waaagh1769

    @waaagh1769

    Жыл бұрын

    Держи в курсе

  • @mafiozi4418
    @mafiozi44184 жыл бұрын

    Ты крут! Жду больше видосов :3

  • @user-ni8oi7lq3h
    @user-ni8oi7lq3h2 жыл бұрын

    Спасибо за видео, из всех общедоступных источников (в основном видосики на ютубе) данное определение инкапсуляции только в книге еще встретил, "Сам себе программист" вроде .. подписался на канал.

  • @aljesco8338
    @aljesco83384 жыл бұрын

    Потрясающий пример того, как сделать видос на восемь минут ни о чём

  • @LobanovSpace

    @LobanovSpace

    4 жыл бұрын

    Хехе

  • @maxpayne3491

    @maxpayne3491

    4 жыл бұрын

    автор мастер разводить пиздеж. ему бы на тв работать)

  • @faustfreeman3419

    @faustfreeman3419

    4 жыл бұрын

    @@maxpayne3491 ни в коем случае. Только чиновником.

  • @the__Wizard

    @the__Wizard

    4 жыл бұрын

    а можно по подробнее, а то я не понял

  • @volodymyrmykytenko5324

    @volodymyrmykytenko5324

    4 жыл бұрын

    Более того: открьіваем книгу Дядюшки Боба, из описания, там також же пример как на видно в С/С++ а вьіводьі противоположньіе: 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.

  • @Alex023Y
    @Alex023Y4 жыл бұрын

    В конце нужно добавить "... и предоставляет пользователю интерфейс для взаимодействия с ним"

  • @skinbones9021
    @skinbones90214 жыл бұрын

    Большое спасибо!

  • @m.k.6117
    @m.k.61173 жыл бұрын

    Спасибо за топ контент!

  • @user-kz9hd3qd5y
    @user-kz9hd3qd5y4 жыл бұрын

    Вижу видос от ExtremeCode - ставлю лукас

  • @vangogih
    @vangogih4 жыл бұрын

    Пример с расстоянием между точками был взял из книги дяди боба про архитектуру?)

  • @Solfylte

    @Solfylte

    3 жыл бұрын

    Ага, там где она пишет что уже в С была инкапсуляция.

  • @vangogih

    @vangogih

    3 жыл бұрын

    @@Solfylte тогда ты не понимаешь что такое инкапсуляция, потому что в С ее не было.

  • @Solfylte

    @Solfylte

    3 жыл бұрын

    ​@@vangogih Ок. Я не написал что она там была или нет, это ваша интерпретация коментария.

  • @nikitoskin2012
    @nikitoskin20124 жыл бұрын

    Просмотрел полторы минут и сразу подписался

  • @bannikovn8814
    @bannikovn88144 жыл бұрын

    Хорошее определение, мне нравится

  • @nikita893
    @nikita8933 жыл бұрын

    Очень приятный голос,с хорошим обьяснением,Только вот я не программист...

  • @VadimChuprakov
    @VadimChuprakov4 жыл бұрын

    дизлайк за утечку памяти в си программе

  • @CDTranslate

    @CDTranslate

    4 жыл бұрын

    Открою секрет: в большинстве игр, например, никто не очищает ресурсы, если человек нажал на выход, чтобы не жертвовать временем пользователя. Такой своеобразный tradeoff, хотя по завершению программы ОС сама "освободит" ресурсы.

  • @Kirik516

    @Kirik516

    4 жыл бұрын

    Почему утечка, если по завершению расчета программа выключается?

  • @user-xo9kz7he4i

    @user-xo9kz7he4i

    4 жыл бұрын

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

  • @Johny_Silverhands

    @Johny_Silverhands

    3 жыл бұрын

    В менеджере памяти шиндовс все резервируется вот это бесит

  • @SergeySlap

    @SergeySlap

    3 жыл бұрын

    @@CDTranslate да хрен знает, любая нормальная среда разработки включает в себя ВАЗМОЖНОСТЬ! подмести за собой... Наверное не просто так =)

  • @antizvyagin
    @antizvyagin4 жыл бұрын

    Мало что понял, но очень интересно, особенно когда код набирается

  • @LobanovSpace
    @LobanovSpace4 жыл бұрын

    Спасибо за видео

  • @alexandersobolev2769
    @alexandersobolev27694 жыл бұрын

    Инкапсуляция (понимаемая как связывание вместе данных и методов для работы с ними) _на самом деле_ связана с механизмами ограничения доступа к этим данным. Это не _сокрытие_ (когда внутреннее устройство данных неизвестным; такой «черный ящик»), а именно _ограничение доступа_ - т. е. невозможность работать с этими данными _в обход_ заданных методов. Такое требование прежде всего предназначено для повышения _надежности_ кода. Разработав и протестировав класс (структура данных + методы для работы с ними) вы _гарантируете пользователям этого класса предсказуемость его работы. Собственно, именно в этом и состоит суть связывания вместе данных и методов. Подход функциональных (не ООП) языков с независимым определением структур и функций ничуть не менее удобен, чем синтаксис языков ООП, где обрабатываемая структура просто переносится из аргумента функции в ее «префикс» (имя объекта с точкой перед именем метода). Связывание вместе данных и методов нужно _как раз_ для _ограничения доступа_ к данным! Возможность работы с данными напрямую (точнее, возможность изменять их), _минуя_ заранее заданный набор методов, можно сравнить с дырой в заборе рядом с «навороченным» пропускным пунктом со развитой системой безопасности (всевозможные сканирования сетчатки, рамки металлоискателя и пр.); все эти меры безопасности бесполезны, когда их можно легко обойти через заботливо оставленную дыру. Ну и уже во _вторую_ очередь - ограничение доступа к данным _только_ через его методы позволяет изменять реализацию, не меняя интерфейс доступа (и, соответственно, не меняя код существующих клиентов). Но это всего лишь дополнительная «удобность», не ___ Строго говоря, ООП-языки, допускающие определение public-данных (а это и C++, и C#, и Java, и т. д.) _нарушают_ инкапсуляцию и, таким образом, являются, строго говоря, _не совсем_ ООП-языками. А вот, например, то, как организована работа с окнами (hWnd) в Windows (всех версий, начиная с самых первых), как это ни парадоксально звучит, является _хорошим_ примером ООП, несмотря на чисто C-шную реализацию и связанные с этим синтаксические неудобства. Там есть и полиморфизм (можно разослать одно и то же сообщение самым разным типам окон - будь то кнопки, списки, комбобоксы или главное окно программы), пройдясь по списку hWnd - и получить специфическую для каждого типа окон реакцию на это сообщение. Есть и аналог наследования - субклассирование, когда вы для нового типа окна переопределяете реакцию на некоторые сообщения, переадресуя обработку остальных в оконную функцию «родительского» типа окон. И наконец, там _совершенно правильно_ организована инкапсуляция - по одному только hWnd вы не сможете получит доступ к внутреннему представлению данных окон, миную определенные для него «методы» - типы сообщений MSG, которые могут быть обработаны данным типом окон. Как видно из этого примера, «связывание данных и методов» при помощи _специального синтаксиса_ языка программирования (вроде определения классов, как «структур с методами») вовсе не обязательно для реализации принципов ООП.

  • @proximacentauri3206
    @proximacentauri32063 жыл бұрын

    Вообще-то, товарищ программист, лайк нужно ставить после просмотра видео (а не в начале), чтобы алгоритм ютуба, "обрабатывающий лайки" засчитал его.

  • @opusdv3503
    @opusdv35034 жыл бұрын

    Тупо браво)) определено лайк и репост))

  • @TheMerklar
    @TheMerklar4 жыл бұрын

    Видос и не рассчитан на новичков. Автор указал на то, что обычно в определении инкапсуляции ставят акцент на сокрытии данных, а не на объедении методов и данных в один объект. И достаточно доступно это разъяснил

  • @user-ql9eg7qg2n
    @user-ql9eg7qg2n4 жыл бұрын

    ничего не понял, но очень интересно ...

  • @alekseyshibayev5243
    @alekseyshibayev52434 жыл бұрын

    Инкапсуляция - это возможность менять состояние объекта только им самим (с) Сергей Немчинский

  • @0imax

    @0imax

    4 жыл бұрын

    О, Серёга набирает популярность))

  • @alexandervasuho3534
    @alexandervasuho35343 жыл бұрын

    Топчик, мои аплодисменты

  • @GazziFX
    @GazziFX4 жыл бұрын

    Я в общем ничего, не понял, но по сути в C# Instance методы это Static методы, но первый аргумент это и есть экземпляр этого класса. В видео наверное что-то другое объяснялось, но мое утверждение можно проверить по генерирумому коду IL, либо можно переопределить метод, с помощью манипуляций с Compiler Services и IntPtr этих методов

  • @RomanPRO96RUS
    @RomanPRO96RUS4 жыл бұрын

    Честно говоря, понятия не имею как я наткнулся на данное видео и зачем зашел, т.к естественно ничего не понял, но было очень интересно! Спасибо!:))

  • @QwerTy-vq1vb
    @QwerTy-vq1vb4 жыл бұрын

    "ИнКастыляция" =)

  • @nikelsad

    @nikelsad

    4 жыл бұрын

    ИнкОстыляция

  • @yalauitarik

    @yalauitarik

    4 жыл бұрын

    @@nikelsad о, уже и у инкостыляции появилось 2 трактовки

  • @LithiumDeuteride-6
    @LithiumDeuteride-69 ай бұрын

    Сокрытие требуется чтобы не допустить некорректное обращения к методам и членам объекта. Например, в XRay есть вектор который надо инициализировать перед прочтением. Значит закрываем его protected, а get у него конечно public, и всё, никаких проблем не имеем. А если вектор будет так же public, то можем иметь ошибки которые могут быть достаточно трудно обнаруживаемые, если другой программист который не в курсе проблемы, будет использовать этот член объекта напрямую.

  • @princessmary5556

    @princessmary5556

    8 ай бұрын

    Вы пишете: *Сокрытие требуется чтобы не допустить некорректное обращения к методам и членам объекта* Чушь.

  • @princessmary5556

    @princessmary5556

    8 ай бұрын

    Вы пишете: *Например, в XRay есть вектор который надо инициализировать перед прочтением. Значит закрываем его protected* Это не сокрытие. Ограничение доступа к данным ничего ни от кого не скрывает.

  • @vladimirkulakov8667
    @vladimirkulakov86672 жыл бұрын

    Спасибо, всё понял и головой весело качал)

  • @maxon17
    @maxon174 жыл бұрын

    2:50 iiiiiiiiis BORIS !

  • @max96169
    @max961694 жыл бұрын

    Js framework качает

  • @SteemeX
    @SteemeX4 жыл бұрын

    Очень понравилась вставка с хардбасом!

  • @nikoladeg5183
    @nikoladeg51834 жыл бұрын

    Это шедевр!!!

  • @ilyamz1927
    @ilyamz19274 жыл бұрын

    Чем плох конструктор для создания класса?? :((

  • @FobosWorld

    @FobosWorld

    3 жыл бұрын

    Обычно это делают чтобы валидировать входные данные при создании нового инстагса

  • @alexanderkostyuk755
    @alexanderkostyuk7554 жыл бұрын

    Инкапсуляция это скрытие чегото, помещение его в капсулу! и все! Дослоно в капсулу(encapsulate=заключать в капсулу )! А связывание данных и медотов в один обьект это для слишком умных!

  • @YmNIKYm

    @YmNIKYm

    4 жыл бұрын

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

  • @ne4to777

    @ne4to777

    4 жыл бұрын

    Хочешь, я тебе реализую инкапсуляцию без сокрытия данных?

  • @alexanderkostyuk755

    @alexanderkostyuk755

    4 жыл бұрын

    @@ne4to777 Ну так в чем проблема, давай! выкладывай сюда будем смотреть!

  • @ne4to777

    @ne4to777

    4 жыл бұрын

    @@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

  • @alexanderkostyuk755

    @alexanderkostyuk755

    4 жыл бұрын

    ​@@ne4to777 Нормально! Такой вопрос, а как ты ограничил доступ одних компонентов программы к другим?

  • @user-lo2bx2ed6g
    @user-lo2bx2ed6g Жыл бұрын

    Мало что понятно, но очень интересно.

  • @VariousPeopleJoke
    @VariousPeopleJoke4 жыл бұрын

    Я просто хочу сказать, спасибо тебе большое за твои видео!

  • @user-mrmirajizhere-927
    @user-mrmirajizhere-9273 жыл бұрын

    * сидит и задумчиво кивает *

  • @sobanya_228
    @sobanya_2284 жыл бұрын

    Slipknot/Bieber трек - топ

  • @ErOp-nOMugOp
    @ErOp-nOMugOp3 жыл бұрын

    Прямо как в школе, нужно знать наизусть...

  • @Ua1Tube
    @Ua1Tube4 жыл бұрын

    Красава! Люблю цей канал

  • @sirjorgenbjorgen2295
    @sirjorgenbjorgen22954 жыл бұрын

    а когда полноценный курс C++ будет ?

  • @joefast505

    @joefast505

    4 жыл бұрын

    Согласен!

  • @juliusmalkov9620

    @juliusmalkov9620

    4 жыл бұрын

    @@joefast505 они ещё по C# всего не сняли!!!

  • @user-ox5ip7sm2n

    @user-ox5ip7sm2n

    4 жыл бұрын

    Почему всех на плюсы тянет? работы в СНГ на с++ нету, а если есть то плотят на там гроши, если ты не senior

  • @g-manchanel1710

    @g-manchanel1710

    4 жыл бұрын

    Марк Андерсон прыгать с сисей на другие языки проще всего

  • @user-jy4tl6cx8u

    @user-jy4tl6cx8u

    3 жыл бұрын

    @@user-ox5ip7sm2n я работаю на плюсах в qt и платят хорошо

  • @TheKoropet
    @TheKoropet4 жыл бұрын

    Инкостыляция, порноморфизм.. что дальше?

  • @batfist6595

    @batfist6595

    4 жыл бұрын

    Найсследование (что?)

  • @nikelsad

    @nikelsad

    4 жыл бұрын

    Тут, где-то в комментах, было -- преследование =)

  • @alexanderp4532

    @alexanderp4532

    3 жыл бұрын

    абстругация

  • @ddosip9308
    @ddosip93084 жыл бұрын

    Ну наконец ты мне глаза открыл! А то я уж не справился бы

  • @user-xi4kl9bq1u
    @user-xi4kl9bq1u4 жыл бұрын

    Только через 8, сука, месяцев и несколько раз пересматривая это видео, я понял что такое инкапсуляция. Твою ж дивизию как все просто.

  • @AlexCSharp
    @AlexCSharp4 жыл бұрын

    Ммм... Мартин, "Чистая архитектура". Молодцы, хотя бы источники хорошие берёте. )

  • @majestif
    @majestif4 жыл бұрын

    Спасибо за видос, в целом доступно, но код ужасен, какая-то мешанина из древного С++, Си и утечки памяти в придачу.

  • @Dmittry

    @Dmittry

    4 жыл бұрын

    Хоть я и не шарю в C/C++, но malloc без освобождения меня тоже очень смутил. Так можно?

  • @notapirate505

    @notapirate505

    4 жыл бұрын

    @@Dmittry Можно конечно, вот на видео сделал же. Только не нужно. В данном контексте +-килобайт памяти утек, не страшно, просто одноразовый пример же. Но все равно не нужно.

  • @notapirate505

    @notapirate505

    4 жыл бұрын

    Код компилился в с++ проекте, кстати. Примечательно, что канпелятор не ругнулся на malloc без каста, g++ бы нафиг послал уже.

  • @Serhii_Likhash

    @Serhii_Likhash

    4 жыл бұрын

    Критика это хорошо, а какое у вас решение? Просто нужно чистить за собой мусор, никакой утечки нет посоны

  • @KaraMaslyatam

    @KaraMaslyatam

    4 жыл бұрын

    Зачем чистить память в программе, которая работает микросекунду времени и выделяет одну страницу памяти? Где там древний C++? MS компилятор по дефолту читает "*.c" как Си код и плюсовые штуки не схавает, поэтому там не может быть C++.

  • @user-vg4wc6we9g
    @user-vg4wc6we9g4 жыл бұрын

    Есть другое понятие инкапсуляции в сетях связи, поэтому "неправильное" определение является общим для всех областей. А то, что ты назвал - более узкое)

  • @user-hg5ss9vm6v
    @user-hg5ss9vm6v3 жыл бұрын

    Видео ориентировано для опытных

  • @user-ih8kn7pf6l
    @user-ih8kn7pf6l4 жыл бұрын

    Я так понял, что Инкапсуляция - это сокрытие.

  • @vxarlanchuk
    @vxarlanchuk4 жыл бұрын

    8:13. До этого момента смотреть бессмысленно, просто тратите время.

  • @MasterSergius

    @MasterSergius

    4 жыл бұрын

    Всмысле тратите время? А поржать?

  • @botsynth
    @botsynth3 жыл бұрын

    спасибо, хороший пример

  • @Serhii_Likhash
    @Serhii_Likhash4 жыл бұрын

    Оочень полезный видос. В принципе можно получить указатель на первый элемент структуры и потом с нужным сдвигом по нему записывать, но наверное смысл ролика о другом. Больше сы посоны

  • @sagamoreBel
    @sagamoreBel4 жыл бұрын

    Не с глаголами, ну. Вы что, совсем технари там?

  • @Wardriving666
    @Wardriving6664 жыл бұрын

    6:46 инкастыляцыя? Теперь Я слышал всё!

  • @BacktoaHappychildhood
    @BacktoaHappychildhood3 жыл бұрын

    Посмотрю потом, когда буду хоть что-то понимать в этом ))

  • @artyommezentzeff856
    @artyommezentzeff8564 жыл бұрын

    Пример на С встречается в книге Митчелла - Clean architecture и там он это называет "perfect encapsulation"

  • @alexanderbelov6892

    @alexanderbelov6892

    4 жыл бұрын

    Автор видимо траву курил. Поэтому все названия такие же как у других, но с прилагательным, которое возвышает его определения над другими. Perfect polymorphism, wonderful inheritance, amazing overload... 🙂

  • @davidkyharchyk9043
    @davidkyharchyk90434 жыл бұрын

    Че за фреймворк? ;)

  • @momon5994

    @momon5994

    4 жыл бұрын

    Фреймворк не очень, C# называется.

  • @viktorpoliushko2015
    @viktorpoliushko20154 жыл бұрын

    инкостыляция)

  • @user-vu1gs8kg2j
    @user-vu1gs8kg2j4 жыл бұрын

    Есть вариант примера с блоками алгоритмов? Это должно упростить понимание в разных языках и направлениях.

  • @mirko_lon7277
    @mirko_lon72774 жыл бұрын

    10/10 вы лучшие)

  • @alex-rr5mt
    @alex-rr5mt4 жыл бұрын

    Спасибо за музыку! Если бы ещё тиму белоруских включили, то было бы просто отлично

Келесі