«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Абстракции: программный способ мышления

Абстракции: программный способ мышления

Опубликовано 8 ноября 2024 г.
Просматривать:998

Abstractions: A Way of Thinking Programmatically

"Почему программист отказался вставать с постели? Они были поглощены слишком многими уровнями абстракции!"

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

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

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

Метафора сэндвича: создание слоев абстракции
Давайте углубимся в практический пример, используя метафору сэндвича.
1. Ингредиенты (низкоуровневые сведения) На самом базовом уровне у вас есть ингредиенты: хлеб, салат, помидоры, сыр и индейка. Это похоже на необработанные данные или низкоуровневые операции в программировании. Они необходимы, но иметь дело с ними напрямую может быть затруднительно.

Пример:

let bread = "whole grain";
let lettuce = "romaine";
let tomato = "sliced";
let cheese = "cheddar";
let turkey = "smoked";

2. Сэндвич (абстракция более высокого уровня) Вместо того, чтобы работать с каждым ингредиентом по отдельности, вы создаете сэндвич. Это абстракция, объединяющая ингредиенты в единую, более управляемую сущность.

Пример:

function makeSandwich(bread, lettuce, tomato, cheese, turkey) {
    return `${bread} sandwich with ${lettuce}, ${tomato}, ${cheese}, and ${turkey}`;
}
let myLunch = makeSandwich("whole grain", "romaine", "sliced", "cheddar", "smoked");

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

3. Заказ обеда (еще более высокая абстракция) А что, если вы хотите заказать обед в гастрономе? Вам даже не нужно думать о процессе приготовления сэндвича; вы просто размещаете заказ. Это более высокий уровень абстракции, на котором вы взаимодействуете с еще более упрощенным интерфейсом.

Пример:

function orderLunch(type) {
    if (type === "sandwich") {
        return makeSandwich("whole grain", "romaine", "sliced", "cheddar", "smoked");
    }
    // Other lunch options could go here
}
let myOrder = orderLunch("sandwich");

Практический сценарий использования: создание пользовательского интерфейса
Абстракция жизненно важна при создании сложных систем, таких как пользовательские интерфейсы (UI). Допустим, вы создаете пользовательский интерфейс для приложения для социальных сетей. Вместо написания кода для каждой кнопки, текстового поля и изображения по отдельности вы создаете абстрактные компоненты, которые их представляют.

function createButton(label) {
    return ``;
}
function createUserProfile(name, bio) {
    return `
        

${name}

${bio}

${createButton("Follow")}
`; } let profile = createUserProfile("Koobimdi", "Passionate about coding and storytelling.");

Здесь функция createButton абстрагирует создание кнопки, а функция createUserProfile абстрагирует профиль пользователя. Вы каждый раз имеете дело не с необработанными HTML-тегами, а с абстракциями более высокого уровня.

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

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

"Помните: когда ситуация становится слишком сложной, пришло время абстрагироваться от нее — точно так же, как вы заказываете еду на вынос, когда на кухне становится слишком грязно!"

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/koobimdi/abstractions-a-way-of-thinking-programmatically-3cdc?1. Если есть какие-либо нарушения, свяжитесь с [email protected], чтобы удалить их.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3