#baby $BABY
Чжу-Чжу недавно внимательно изучал архитектуру Babylon Genesis: Epoching, Checkpointing, BTC Staking и Finality — каждое из них является отдельным модулем. Такая схема разделения ролей Чжу-Чжу всегда казалась очень умной: каждый модуль занимается только своей задачей, и если что-то пойдет не так, не придется вместе со всем системой погибать из‑за одной поломки. И локализовать проблему тоже обычно быстрее.

Но вот несколько дней назад внезапно пришла в голову перспектива, которую раньше я как следует не обдумывал: чем сильнее мы дробим систему на модули, тем не означает ли это, что «между» модулями появляются новые скрытые издержки?

Это похоже на команду с очень точным разделением труда: каждый отвечает за свой участок — эффективность действительно высокая. Но стоит одному человеку поменять способ работы, остальным приходится подстраиваться почти всем, иначе звенья не стыкуются. Монолитная архитектура похожа на ситуацию, когда один человек берет на себя всё: тяжело, конечно, но зато не нужно постоянно переживать, совпадает ли логика с тем, что делают другие. Модульность перекладывает эту усталость наружу, но взамен дает более трудно заметные, однако постоянно существующие издержки на согласование.

Чжу-Чжу считает, что в начале, когда протокол только формируется, эта стоимость почти не ощущается: модулей немного, обновления не слишком частые — договорились, согласовали, и всё. Но если система работает достаточно долго, а функции продолжают наслаиваться, и каждый модуль со временем эволюционирует в разные версии, то уже сама способность всех модулей оставаться совместимыми и нормально обмениваться данными может незаметно превратиться в разновидность технического долга. Это не вопрос качества кода. Дело в том, что сложность поддержания согласования между модулями будет со временем постепенно накапливаться. Во многих крупных системах проблемы в итоге возникают не потому, что «сломался» какой-то конкретный модуль, а потому что версии перестают сходиться и начинают «не держаться» друг с другом.

Эта точка зрения, по мнению Чжу-Чжу, пока не может быть полностью проверена: Babylon еще довольно молод, реальных примеров обновления модулей пока недостаточно. Но Чжу-Чжу считает, что это сигнал, за которым стоит следить уже сейчас: не смотреть, какие новые функции только что выпустили, а смотреть, сколько времени нужно на совместное обновление модулей и сколько команд оно затрагивает. Если это время будет только увеличиваться, возможно, означает, что технический долг постепенно проявляется.
@BabylonLabs_io

Чжу-Чжу задаёт небольшой вопрос для интерактива: стоит ли обращать внимание на технический долг уже сейчас?
A. 該
B. 不用
C. 之後再說
1 дн. осталось