Любой язык программирования определяется через набор синтаксических правил, и казалось бы, в рамках этих правил программист вправе действовать так, как ему заблагорассудится. Однако, обычно все-же поверх правил синтаксиса накладываются еще правила стиля, правил именования переменных, расстановки пробелов. Также есть устоявшиеся правила построения архитектуры программы. Именно такими правилами применительно к серверу jCjS мы сейчас и займемся.
Посты jCjS обычно занимаются контролем и управлением над некоторыми промышленными установками, общение с котороми производится через последовательные порты Rs-232/485, также интерфейс может быть основан на эмулируемых последовательных портах USB, и сетевом взаимодействии. Каждый тип устройства, конечно, имеет свой формат байтовых посылок запросов и ответов. На этом уровне, с точки зрения программного кода, имеется как бы только одна команда с одним аргументом: подать байтовую посылку и принять ответ. В содержании байтовой посылки содержится информация о адресе устройства, номера опрашиваемого канала, номера переключаемого реле. Если оставить формат такого общения так как есть, и смешать в одном и том же модуле программы JavaScript подготовку байтовой последовательности к устройству с логикой управления установкой, то программа приобретет вид страшной мешанины, изменить или поправить в которой что-то окажется просто невозможным. Хорошая программа должна быть похожа на матрешку: в которой каждый уровень отвечает за определенную логическую часть кода: содержание байтовых посылок должны быть превращены в строго специализированный функции, строго связанные с назначением целевой установки.