Примеры абстракций в технике и повседневности

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Поговорим про абстракциях. Что вообще это за слово такое абстракция?

Абстракция  (отвлечение) про­цесс от­вле­че­ния (абстрагирования) от тех или иных ха­рак­те­ри­стик объекта для их из­би­ра­тель­но­го анализа; при этом на­блю­дае­мый объ­ект за­ме­ща­ет­ся его идеализированным тео­ре­тическим об­ра­зом — аб­стракт­ным объектом. Абстракции являются уни­вер­саль­ным методом на­учного по­зна­ния, они необходимы для фор­ми­ро­ва­ния по­ня­тий, уз­на­ва­ния и клас­си­фи­ка­ции объ­ек­тов исследования на всех уров­нях фор­ми­ро­ва­ния зна­ний.

Синонимами можно считать такие слова как отвлеченный, умозрительный, теоретический.

Противоположное слово это конкретный, фактический.

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

Взять например карту метро. Карта метро - это хорошая полезная абстракция от реальной формы туннелей в метро. На карте нет тех изгибов тоннелей которые на самом деле есть. Вы же когда приезжаете в какой-то новый для себя город не рассматриваете на полу  разложенные аэрофотоснимки гектаров кварталов города чтобы понять где вам надо выйти в метро. Это было бы просто смешно. Вы просто подходите к схеме метрополитена смотрите и вам сразу всё становится понятно. Так и в остальном.

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

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

Виртуальная память это абстракция от физических адресов. Виртуальная машина это абстрагирования от реальной физической машины (будь то телефон, DeskTop, Server). Любой язык программирования это способ отвлечения от безумно сложных и скучных машинных кодов. В каждой программе есть абстрактные структуры данных такие как бинарные деревья, очереди, стеки, циклические массивы, графы, косые деревья, хеш-таблицы. Файл как и файловые системы преобразуют нули и единицы в удобные текстовые файлики. Операционная система это способ отвлечения от конкретного оборудования. POSIX (Portable Operating System Interface) это пример полезного абстрагирования от реализации функций операционных систем. Благодаря POSIX у разных операционных систем появилась совместимость на уровне исходного кода. Гипервизоры нужны чтобы не обращать внимания на то как меняются операционные системы. Байт-код это отвлечение от целевой платформы для которой собрана программа. Язык Python абстрагируется от типов данных. Модель OSI-7 это условное представление того через какие слои проходят данные в интернете. Физический, канальный, сетевой транспортный, представления, сеансовый, прикладной. DNS адреса удобнее запоминать чем сырые IP адреса. 

В общем абстракции очень полезны в программировании. Для разработки софтвера надо обязательно обладать развитым абстрактным мышлением.

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

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

Вот например автоматическая коробка передач абстрагируется от реальной геометрии переключения положения шестерен очень полезная абстракция воплощенная в железе.  Или драйвер шагового двигателя это способ абстрагироваться от того как на самом деле осуществляется управления вращением вала шагового мотора. Язык Verilog абстрагируется от схемотехники цифровых цепей и описывает цифровую схему как текст. Схемы конечный автоматов это пример отвлечения от физического расположения микросхем триггеров на электронной плате. Принстонская/Гарвардская архитектура микропроцессора это умозрительная модель понимания структуры компьютера.

Вот в схеме топологии печатной платы нет абсолютно никакой абстракции. Топология PCB она максимально конкретная. Поэтому и анализировать топологию всегда трудно. Многое отвлекает.

https://habr.com/ru/articles/655879/

Поэтому люди придумали схемы электрические принципиальные. Схемотехника это абстракция от топологии. Однако и схемотехника современных электронных устройств тоже достигла высокого уровня сложности. Схемотехника в 40…100 страниц это уже вообще сегодня норма жизни. Поэтому люди придумали блок-схемы электронных плат. Блок-схема это абстракция от схемотехники, которая работает на 2м уровне. Потом делаю схемы топологии сети. Это уже, как минимум, 3тий уровень абстракции. 

https://habr.com/ru/articles/667030/

Проследите цепочку получившихся уровней: 

Физика > Полупроводниковые приборы > аналоговые схемы > цифровые схемы > логические элементы > АЛУ > процессор > SoC > PCB > OS(системное ПО) > Прикладное ПО. Минимум 11 умозрительных уровней!

Абстракции это не выдумка программистов. Абстракции появились задолго до появления программирования и электроники вообще. Это более фундаментальная концепция. Скорее всего это пришло из искусства. Наскальная живопись, корявые рисунки животных первобытных людей. Всё это пошло откуда-то оттуда.

Вероятно абстракции появились как побочный эффект познания мироустройства в науке. Например закон всемирного тяготения это абстракция. Реальные силы значительно труднее в понимании. Это доказывают опыты наблюдения смещения перигелия Меркурия. https://ru.wikipedia.org/wiki/Смещение_перигелия_Меркурия

В эпоху Великих Географический Открытий появилась ценность географических карт. Географическая карта это абстракция от реальной формы земной поверхности и береговой линии. Там реки указывают плавной линией хотя на самом деле они извиваются как змеи и через каждые 100—200 метров поворот.

Абстракции мы всегда видим в повседневности. Деньги это вообще абстракция от вида трудовой деятельности. Будь то труд каменщика или труд пекаря. 

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

У каждой уважающей себя организации, компании есть логотип. Это условное обозначение которое впитывает в себя огромное количество аспектов. Чем занимается компания, какое у нее прошлое, где находится, какая у компании цель - всё это отражается в хорошем логотипе.

А оut source компании это пресловутый способ абстрагирования от найма и социальных противоречий с этим связанных для продуктовых компаний.
https://habr.com/ru/articles/720464/

У абстракций есть недостатки?

Да. Уровни абстракции отбирают у системы некоторые ресурсы. Java код исполняется медленнее чем С код. Артефакты Java компилятора занимает больше места на диске чем артефакты от C компилятора. Это плата за упрощение понимания и переносимость программ.

В чем достоинства абстракций?

1--они помогают понять сложные вещи (модель атома Бора, абстрактные структуры данных в программировании).

2--они уменьшают время понимания сложных вещей (Карта метро, электрические принципиальные схемы)

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

4--они помогают переносить объекты на другую систему координат (Языки программирования Java, гипервизоры, Doсker контейнеры)

5--Они заменяют сложное на простое (языки программирования, файловые системы, DNS адреса).

6--Они помогают уйти от ответственности (out source компании, модель OSI-7)

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

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

Как научиться абстрактному мышлению раз это так полезно? Как научиться придумывать полезные абстракции?

У меня нет четкого ответа на этот вопрос. Наверно надо пробовать. Далее эксперименты покажут какие абстракции жизнеспособны, а какие нет. Это как в физике. Была модель атома Томсона и модель атома Бора. В результате экспериментов выяснилось, что модель атома Бора оказалась более пригодной к реальности. Многие языки программирования тоже канули в лету. Где сейчас Паскаль, Fortran или Бэйсик? Тут как с языками программирования. Некоторые абстракции будут существовать до поры до времени пока их не заменят более эффективные простые абстракции. И это нормально.

Вывод

У природы нет абстракций. В природе всё максимально конкретно. Абстрагирование это чисто человеческие выдумки. Это люди придумывают абстракции и уровни абстракций для себе подобных. Это и понятно. Смысл абстракции это уменьшение сложности, увеличения скорости понимания, объяснение сути чего-либо, будь-то карта материка или электронная плата. 

Создавайте свои абстракции, господа. В этом нет ничего предосудительного.

Известные мне примеры умозрительных понятий я перечислит тут https://docs.google.com/spreadsheets/d/1JxEuo7bxo2A7J5qksBxekWf3FJVuDCJbXaZKx9IvDnU/edit#gid=0

Если вам известны примеры красивых абстракций в технике или повседневной жизни, то напишете про это, пожалуйста, в комментариях.

https://habr.com/ru/companies/tiktokcoach/articles/206994/

https://habr.com/ru/companies/skillfactory/articles/508716/

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Вы прибегаете к помощи абстракций в повседневной жизни?
100% да 2
0% нет 0
Проголосовали 2 пользователя. Воздержавшихся нет.
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Вы сами придумывали какие-нибудь абстракции?
100% да 1
0% нет 0
Проголосовал 1 пользователь. Воздержавшихся нет.
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Вы прибегаете к помощи абстракций на работе?
100% да 1
0% нет 0
Проголосовал 1 пользователь. Воздержавшихся нет.
Источник: https://habr.com/ru/articles/715146/


Интересные статьи

Интересные статьи

Приветствую всех, кто хочет стать тестировщиком и узнать больше о чек-листах! Сегодня мы поговорим о том, что такое чек-листы тестировщика и как их использовать для более эффективного тестирования.Чек...
Всем привет! Решил написать статью с практическими примерами использования Stream API. В данной статье не будет теории - только хардкор и практические примеры. Поехали!В качестве "подопытного кролика"...
Все поверили в теорию управления. Мы не задумываясь задаем вопросы в научно-образовательной среде друг-другу с точки зрения ее положений. Судим о научных работах. Но почему же Теория не спешит дружить...
Всем привет!В предыдущей статье «Смысл текста или представление знаний в системе, основанной на действиях» я описал способ представления знаний в виде семантической сети, построенной на действиях.В эт...
В продолжение, а скорее - в завершение, истории об организации и ежегодном проведении Сахалинского чемпионата по робототехнике, пришло время немного поговорить во что нач...