Реализация

Оригинальное название: implement

Коротко

Воплощение спецификации, интерфейса или требования в работающем коде. В веб-стандартах так говорят о поддержке возможности конкретным браузером: «свойство реализовано в Firefox».

Что такое «Реализация»

Спецификация описывает, как что-то должно работать, но сама ничего не делает. Чтобы свойство CSS или метод JavaScript появились у пользователей, их должны реализовать разработчики браузерных движков — Blink в Chrome и Edge, Gecko в Firefox, WebKit в Safari. Каждый движок — отдельная реализация одного стандарта, и они неизбежно расходятся в деталях: где-то ошибка, где-то устаревшая версия спецификации, где-то возможности ещё нет.

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

Интерфейс и реализация в коде

В программировании то же слово разделяет «что» и «как». Интерфейс — обещание: какие методы есть и что они принимают. Реализация — конкретный код. Одну задачу можно реализовать по-разному, не меняя интерфейса, и код, который им пользуется, ничего не заметит. Пример на TypeScript:

interface PaymentGateway {
  pay(orderId: string, amount: number): Promise<boolean>;
}

class TestGateway implements PaymentGateway {
  async pay(orderId: string, amount: number) {
    console.log(`Тестовая оплата ${orderId}: ${amount}`);
    return true;
  }
}

На время разработки подключают тестовую реализацию, на боевом сайте — настоящую, которая обращается к банку.

Когда реализации нет

Если нужная возможность в каком-то браузере ещё не реализована, есть два пути. Полифил — собственная реализация недостающего API на JavaScript, которая включается только там, где встроенной нет. Второй путь — резервный вариант: упрощённое поведение без новой возможности. Перед тем как применять свежую технологию на сайте, стоит проверить, в каких браузерах она реализована и с какой версии.

Обновлено:

Все термины раздела «Frontend»

Что будем искать? Например,Продвижение