Хорошо, когда я что-то не знаю: о силе абстракции

Оно означает отвлечение от тех или иных характеристик объекта для выборочного рассмотрения его характеристик; при этом на­блю­дае­мый объ­ект за­ме­ща­ет­ся его идеализированным тео­ре­тическим об­ра­зом — аб­стракт­ным объектом.

Так что же такое абстракция?

Даже если перечитать эти предложения несколько раз, суть написанного уловить сложно. Попробуем разобраться на примерах. Вы вышли на улицу и посмотрели наверх. Увидели небо. А что такое “небо”? В природе нет такого понятия. Животные не знают значения “небо”. В английском языке нет слова “небо”, есть слово sky. Космонавту на МКС достаточно сложно “посмотреть на небо”. “Небо” на Родине и за границей, во время отпуска и в рабочие будни представляется совершенно по-разному.

Как мы видим из следующей истории, понятию “небо” в зависимости от контекста могут быть присвоены совершенно разные значения.

Приехали Шерлок Холмс и доктор Ватсон на пикник. Поставили палатку. Ночью Холмс будит Ватсона и говорит: «Ватсон, взгляните на небо. К какому выводу вы приходите?» На что Ватсон отвечает: «Я вижу миллионы звезд, вполне вероятно, что там есть планеты как наша Земля, а значит на них может быть такая же жизнь». Холмс же говорит: «Вы, Ватсон, идиот. У нас палатку украли».

“Небо” – это и есть абстракция, которую сформировал наш мозг исключив несущественные стороны, свойства и связи объекта. Абстракции помогают нам быстро и эффективно обрабатывать информацию, выделяя главное в нужный момент и игнорируя несущественные детали.

абстракция
что такое абстракция 
абстракция в программировании

Существуют разные уровни абстракции

Например, в банкомате вы снимаете “деньги”, а не несколько листков бумаги с изображениями. Если вы вручили эти листки бумаги своему другу на День рождения, то это “подарок”, условно, второй уровень абстракции. Если вы вручили их чиновнику, то это может быть “взятка” или “в долг”, в зависимости от того, как пройдут суд и следствие. На третьем уровне абстракции это уже “оборот денег в экономике”, “теневой оборот денег” или, если смотреть в область психологии — “скрытый контракт”.

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

Зачем изучать ООП и как эти знания облегчат вам жизнь

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

Абстракция является важным понятием для освоения объектно-ориентированного программирования. Эту методологию, согласно которой части программы рассматривают как объекты, общающиеся друг с другом, изучают практически все начинающие разработчики. Причем вне зависимости от выбранного языка программирования, включая популярный – Java. Профессию “Java-разработчик” можно освоить на курсе DAR University всего за 6 месяцев. За это время обучающиеся получат широкий практический опыт и создадут кейсы, которые можно продемонстрировать будущим работодателям.

Автор текста и иллюстрации: Алишер Ахметов

Заглавное изображение: Unsplash