Имплементация в программировании и праве¶
Имплементация (от лат. implementum — «оснащение, выполнение») — термин, используемый в двух основных значениях: в информатике это процесс превращения описания алгоритма, интерфейса или спецификации в работающий программный код; в юриспруденции — процесс введения норм международного договора в действие внутри государства, приведение национального законодательства в соответствие с принятыми обязательствами.
¶Имплементация в программировании
В программной инженерии имплементация означает написание кода, который реализует заранее определённый контракт: функцию, интерфейс, протокол или архитектурный компонент. Термин часто используется как синоним слова «реализация», однако подчёркивает именно акт воплощения уже принятого решения, а не его проектирование.
¶Контекст использования
Имплементация выступает связующим звеном между этапами проектирования и тестирования. Типичный цикл включает:
- анализ требований к компоненту;
- проектирование интерфейса (сигнатуры методов, форматы данных, протоколы взаимодействия);
- непосредственное написание кода;
- модульное тестирование и отладку;
- документирование.
Понятие широко применяется при работе с абстрактными типами данных, интерфейсами и контрактами. Например, в языке Java ключевое слово implements используется классом для объявления того, что он реализует указанный интерфейс. В языке C++ механизмы виртуальных функций позволяют создавать классы, реализующие абстрактные базовые интерфейсы.
¶Паттерны и принципы
Имплементация тесно связана с принципом разделения интерфейса и реализации. Клиентский код зависит от описанного контракта, не зная деталей работы конкретной реализации. Это позволяет:
- заменять одну реализацию другой без изменения потребителей кода;
- создавать несколько реализаций одного интерфейса (например, для разных платформ или алгоритмов);
- упрощать тестирование за счёт подстановки заглушек.
Популярный паттерн «Стратегия» основан на имплементации семейства взаимозаменяемых алгоритмов за общим интерфейсом. Паттерн «Адаптер» позволяет имплементировать несовместимый интерфейс в виде ожидаемого клиентом набора методов.
¶Типичные проблемы
Ошибки имплементации — распространённый источник дефектов. К ним относятся:
- нарушение контракта (несоответствие поведения кода заявленной спецификации);
- утечки абстракции, когда детали реализации просачиваются в публичный интерфейс;
- преждевременная оптимизация, ухудшающая читаемость;
- дублирование логики вместо переиспользования существующих компонентов.
В контексте открытого программного обеспечения имплементация означает создание программ, совместимых со свободными спецификациями. Так, движок LibreOffice реализует формат OpenDocument, а Chromium — спецификации веб-стандартов консорциума W3C.
¶Имплементация в праве
В международном праве имплементация — это действия государства, направленные на выполнение принятых на себя обязательств по международному договору. Согласно Венской конвенции о праве международных договоров 1969 года, государство обязано соблюдать договор добросовестно и не ссылаться на положения своего внутреннего права как на причину неисполнения.
¶Формы имплементации
Выделяют две основные формы:
- прямая имплементация — нормы международного договора действуют непосредственно на территории государства без дополнительных мер со стороны национального законодателя (характерна для стран с монистической моделью правопорядка, например, Нидерландов);
- косвенная имплементация — требует принятия национального акта (закона, указа), который транслирует нормы договора во внутреннее право (типична для дуалистических правопорядков, включая Россию).
В Российской Федерации согласно статье 15 Конституции общепризнанные принципы и нормы международного права и международные договоры являются составной частью правовой системы. Порядок заключения и прекращения международных договоров регулируется Федеральным законом от 15 июля 1995 года № 101-ФЗ «О международных договорах Российской Федерации».
¶Имплементация в национальное законодательство
Практическая имплементация требует комплекса мер:
- правового анализа обязательств, вытекающих из договора;
- оценки соответствия действующего законодательства требованиям договора;
- подготовки и принятия необходимых нормативных актов;
- создания или адаптации институтов, отвечающих за исполнение договора (судов, надзорных органов, служб);
- обеспечения исполнения судебных решений, принятых по международным договорам.
Примером масштабной имплементации служит присоединение России к Конвенции о защите прав человека и основных свобод, потребовавшее создания института Европейского суда по правам человека в правовой системе страны.
¶Смежные понятия
С термином «имплементация» тесно связаны понятия «реализация», «деплой» (развёртывание), «интеграция» и «транспозиция» (в праве Европейского союза — прямая или косвенная передача норм директив в национальное право). В юридической литературе иногда проводится различие между имплементацией как процессом и исполнением договора как результатом.
Источники:
- Мейерс Р. Л. Словарь информатики: терминологический справочник
- Соммервилл И. Инженерия программного обеспечения
- Венская конвенция о праве международных договоров (1969)
- Федеральный закон от 15 июля 1995 года № 101-ФЗ «О международных договорах Российской Федерации»
- Конституция Российской Федерации, статья 15
