После долгого опыта в большом проекте я должен категорически не согласиться с предложениями gahooa и Charlie Martin . Существует большая напряженность между гибким и классическим подходом. Их предложения могут выглядеть гибкими, но я не могу согласиться. Если вы разрабатываете что-то, никогда не создавайте его таким образом, чтобы вы знали, что это неправильно даже сейчас. Это не ловко, это глупо. Я не могу поверить, что вы думаете, что ваши требования не изменятся в будущем, поэтому держите двери открытыми и воздействие рефакторинга минимальным. Когда в вашем текущем проекте событие обрабатывается различными подсистемами как диспетчер типа события -> маршрутизатор к группе -> обработчик / хранилище конечного события или что-то еще, сохраняйте изменения в каждой подсистеме с минимальным влиянием друг на друга. Лучшее, что я могу себе позволить, - это дизайн протокола, как будто луковая кожура не подходит для каждой тонкой детали, выходящей за рамки текущих требований. Это проворно.
Вы аргументы:
объявление 1. Это преждевременная оптимизация. Если вам действительно нужно минимизировать трафик, используйте вместо этого бинарный протокол ;-) Другой путь, по которому цена / польза от ti неверна.
ad 2. Это работа для внутреннего инструментария программы, а не для самого протокола. Это неправильный дизайн, особенно в Эрланге. Ваш обработчик должен возвращаться не напрямую к месту назначения, а к какому-либо маршрутизатору (обычно обратно к диспетчеру), который сохраняет владение сокетом и т.п. Снова похоже на преждевременную оптимизацию!
объявление 3. Я предпочитаю противоположный подход. Предоставьте минимальный набор данных для подсистем, чтобы минимизировать побочные эффекты, упростить (модульное) тестирование и избежать соблазна использовать подход с 2. точки. Продлить при необходимости. Не делай это наоборот.
P.S .: Почему вы не называете свое событие, а используете идентификаторы? Опять преждевременная оптимизация?
Редактировать: Уточняются идентификаторы, это номера событий, но не классы событий. Должен быть другой ключ класса.