Dmitry E. Oboukhov -> debian-russian@lists.debian.org @ Mon, 16 Nov 2015 22:14:39 +0300:
>> Основная задача бинарного протокола, на мой взгляд, это представить >> передаваемые данные в машиночитаемом виде. То есть, если какие то >> данные должны быть поняты машиной в первую очередь, они должны быть >> удобны для нее. Отладка это хорошо, и для нее есть (должны быть) >> инструменты. DEO> не понимаю чем RFC822 для машины менее читаем чем бинарный формат с DEO> полями переменной длины. Например, тем, что в варианте TLV ты можешь, встретив не интересующий тебя или неизвестный тебе T, прочесть L и пропустить V довольно эффективно. И тебе плевать, есть ли там ошибки кодирования. Опять же, если в V (интересующем тебя) есть ошибки кодирования, ты во всяком случае можешь перейти к следующему значению, ты знаешь, где оно начинается. Оно, конечно, если есть ошибка в L или в кодировании T, это становится проблемой, но L и T - это всегда простая система, ошибки в ней куда менее вероятны - если они там есть, они очень быстро всплывут и будут починены. Недостатком, в свою очередь, является то, что T - это обычно число, пресловутый суррогатный ключ, и для его интерпретации еще нужен отдельный словарь. И добавление нового T либо весьма чревато клэшем, либо требует централизованной службы поддержки оного словаря. С осмысленными именами в этом месте все же спокойнее.