История изменений
Исправление LINUX-ORG-RU, (текущая версия) :
Любая ультрасовременная либа это бомба с зависимостями или огромный блоб на 50ти языках.
Когда возникает такая неопределённость, корпорация по сложению чисел делает api обёртки отражающие суть нужного, далее из того что есть на выбор берётся самое проверенное временем ил/и выдирается ровно тот кусочек который нужен для сложения два плюс два и делается реализация это апи. В случае перехода на платформу на корой у выбранного кусочка/библиотеки есть проблемы через это API обёрточку прикручивается другая библиотека. Обёрточка может быть как динамическая загружающая/перезагружающая символы из подсунутых библиотек или по харду статическая оперделяемая во время компиляции. Короче через макросы обычные.
Больно будет если библиотеку для сложения 2 плюс 2 размазать тонким слоем по всему проекту дёргая её напрямую и работая со специфичным для неё образом, а потом надо её заменить на какой отдельной платформе на другую или на свою реализацию. Отета жопа будет гореть у всех, особенно если кто-то решит ещё размазать ifdef
по всему проекту для поддержки 2х и более библиотек. Вместо размазывания в 1 файлике API обёрточки =)
Идеального решения нету как по мне, всё зависит от ситуации и требованиям к либе
Исправление LINUX-ORG-RU, :
Любая ультрасовременная либа это бомба с зависимостями или огромный блоб на 50ти языках.
Когда возникает такая неопределённость, корпорация по сложению чисел делает api обёртки отражающие суть нужного, далее из того что есть на выбор берётся самое проверенное временем ил/и выдирается ровно тот кусочек который нужен для сложения два плюс два и делается реализация это апи. В случае перехода на платформу на корой у выбранного кусочка/библиотеки есть проблемы через это API обёрточку прикручивается другая библиотека. Обёрточка может быть как динамическая загружающая/перезагружающая символы из подсунутых библиотек или по харду статическая оперделяемая во время компиляции. Короче через макросы обычные.
Больно будет если библиотеку для сложения 2 плюс 2 размазать тонким слоем по всему проекту дёргая её напрямую и работая со специфичным для неё образом, а потом надо её заменить на какой отдельной платформе на другую или на свою реализацию. Отета жопа будет гореть у всех, особенно если кто-то решит ещё размазать ifdef
по всему проекту для поддержки 2х и более библиотек. Вместо размазывания в 1 файлике API обёрточки =)
Исходная версия LINUX-ORG-RU, :
Любая ультрасовременная либа это бомба с зависимостями или огромный блоб на 50ти языках.
Когда возникает такая неопределённость, корпорация по сложению чисел делает api обёртки отражающие суть нужного, далее из того что есть на выбор берётся самое проверенное временем ил/и выдирается ровно тот кусочек который нужен для сложения два плюс два и делается реализация это апи. В случае перехода на платформу на корой у выбранного кусочка/библиотеки есть проблемы через это API обёрточку прикручивается другая библиотека. Обёрточка может быть как динамическая загружающая/перезагружающая символы из подсунутых библиотек или по харду статическая оперделяемая во время компиляции. Короче через макросы обычные.
Больно будет если библиотеку для сложения 2 плюс 2 размазать тонким слоем по всему проекту дёргая её напрямую и работая со специфичным для неё образом, а потом надо её заменить на какой отдельной платформе на другую или на свою реализацию. Отета жопа будет гореть у всех.