Описание тега os-agnostic

Программы, сценарии или процедуры, которые работают одинаково независимо от базовой операционной системы.

В работе, проектах с открытым исходным кодом и домашних животных иногда нам нужно заставить программы, скрипты и / или процедуры работать независимо от базовых операционных систем и / или библиотек. Вот несколько примеров различий, которые необходимо преодолеть:

  • символ разделителя пути (\ в Windows, / в производных Unix);
  • наличие некоторых инструментов командной строки;
  • необходимость / желание использовать встроенные функции для данной задачи (например, для повышения производительности).

На высоком уровне эти проблемы можно решить следующими способами:

  • с помощью функций, которые абстрагируют эти различия;
  • путем непосредственного тестирования наличия функции. Примером этого является обнаружение функции Javascript;
  • путем обнаружения окружающей среды и действовать по-разному в зависимости от обнаруженной среды. Пример этого задокументирован Мартином Фаулером в его статье о Rake (в частности, см. Раздел об использовании собственных движков XSLT).