Здравствуйте, Mamut, Вы писали:
M>Причем ты моментально вводишь вводишь два условия:
M>- Нормальные люди не забывают проверять версию протокола при соединении.
Это первое что делают адекватные разработчики при создании нового протокола.
Если разработчики не адекватны, то им не поможет ни какой инструмент.
M>- При обновлении кода клиента компилятор будет бить по рукам везде.
Это и есть статическая типизация протокола.
Если этого нет, то нет и статической типизации.
M>Пример первый
Неадекватность разработчиков.
Инструментами не решается.
M>Пример второй
M>Так как у нас нет никакого контроля над клиентским кодом, то клиенты будут присылать все, что им в голову взбредет, потому что никто не защищен от «ненормальных разработчиков», кривых рук да и банальной реализации (абсолютно математически выверенной и статически типизированной, и скомпилированной) типа «отсылаем заголовок Content-Type одной версии, а тело запроса — другой».
Если код реализующий посылку сообщений генерируется из схемы, в которой прописаны все типы и номер версии, то такого быть не может.
... << RSDN@Home 1.2.0 alpha 5 rev. 62>>