@dron112

Что такое «Уровень абстракции» или «Слой абстракции»?

Объясните простым языком, что такое "Уровень абстракции" или "Слой абстракции" ?
Желательно в контексте JavaScript и в контексте реальной жизни если получиться.
Можно с примерами на Js.
А ещё лучше, как бы вы ответили на этот вопрос если бы он был задан Вам на собеседовании
  • Вопрос задан
  • 7593 просмотра
Решения вопроса 2
dollar
@dollar
Делай добро и бросай его в воду.
В реальной жизни начальник не забивает гвозди и не скручивает провода. Он говорит, какому отделу что делать.

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

Ну и так далее.

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

Ещё аналогия с компьютером. На верхнем уровне - это системный блок + монитор + клава + мышь. На этом уровне посредственный юзер его сможет собрать (подключить при переезде на новую квартиру). Следующий уровень уже включает начинку: жесткие диски, процессор, мат. плату, блок питания и т.д. На клавиатуре, например, можно рассматривать каждую клавишу отдельно. На этом уровне продвинутый юзер сможет пересборать комп под себя, починить, апгрейднуть и т.д., т.е. решать вполне реальные жизненные задачи. Ну а ещё глубже - это уже уровень микросхем и программирования (которое тоже имеет свои уровни, конечно же).
Ответ написан
Абстракция — буквально «отвлечение», игнорирование ненужных подробностей.

В программировании пример: вызов метода объекта. Известно, какие аргументы он ждёт, что вернёт в ответ. Но неизвестна и не важна внутренность, как именно это сделано. И можно заменить одну реализацию другой, если останутся теми же аргументы и результат. На этом уровне абстракции.

В жизни все пользуются лифтами, всем известно, как – зашёл, нажал кнопку этажа, приехал. Лифты разных моделей, брендов, грузоподъёмностей, форм. На уровне абстракции пользователя это кабина с кнопками этажей. И не важно (абстрагируемся) как там что устроено за пределами кабинки. Нажимались бы кнопки и ехал бы лифт.

Слой абстракции — минимум, необходимый для взаимодействия. Без лишних деталей.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
saboteur_kiev
@saboteur_kiev Куратор тега Программирование
software engineer
Ну вот команда "съесть котлету" - это уровень абстракции.
Потому что котлета - это может быть разная котлета. Из разного мяса. В разных условиях.
Ты не даешь команду поднять руку, протянуть руку вперед, сжать пальцы, убедиться что они захватили котлету и так далее. Ты управляешь слоем абстракции. Под ним уже мелкая моторика. Под ним еще более мелкая моторика организма, типа перистальтика. Под ним абстракция биохимического уровня, а там уже атомы и так далее. Но ты обобщаешь это все словами "переварил" или "чет надо мезин выпить".

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

Войдите, чтобы написать ответ

Похожие вопросы