doza_and
Если на входе и выходе одинаковая библиотека кодирования- декодирования
doza_and
Данные приходящие из других программ это самое то. Как раз договариваешься с авторами о формате.
Знаешь, как UNIX построена? Там все программы обмениваются текстом (определённое понятие). Поэтому программы, написанные 40 лет назад, прекрасно работают с программами, написанными 10 лет назад. К тому же они все прекрасно открыты для будущих программ, которых ещё нет. И вот это происходит только за счёт того, что данные, которыми обмениваются программы, максимально простые. У формата, если ты не знал, точно так же есть версии, то есть он живёт. Поэтому там не только нужен декодировщик, но и кодировщик должен выдавать данные на примитивном уровне в пределах формата. Иначе может получиться, что кодировщик будет использовать фичи формата, которых нет в декодировщике, из-за того что в декодировщике старая версия формата.
Вот пример: есть sh и bash. В bash'е есть много всяких фишек (массивы там и так далее), но shell-скрипты принято писать для sh, потому что sh есть во всех системах. Иначе может оказаться, что shell-скрипт, использующий массивы, будет запущен на какой-нибудь bsd-системе, где он выпадет, потому что там sh без массивов.
Это всё один и тот же вопрос - сцепление модулей. Программы (системы) являются модулями, и модули должны иметь самое слабое сцепление - сцепление по данным. Если же ты сцепляешь их по формату (yaml), то из этого вытекают соответствующие проблемы, потому что модули становятся сильно сцепленными. Изменение одного модуля приводит к изменениям в другом модуле.
Теперь представь, что у него не две программы, а десять. Первые пять он пишет в этом году, а вторые пять ему надо будет писать через десять лет. Что произойдёт с yaml'ом за десять лет? И почему он через десять лет должен будет писать новые программы в старой версии yaml'а? А теперь представь, что у него там не yaml, а простой текст, в котором есть только деление на части (по переводу строки). Такой формат проживёт и 10, и 20, и 30 лет, потому что он очень простой.