Open Vlad-Shcherbina opened 10 years ago
Цена вроде небольшая потому что об интерфейсе всё равно необходимо думать, почему бы не подумать с самого начала.
Хочу заметить, что хороший интерфейс это что-то, о чём можно успешно "подумать с самого начала". Например, в этом году мы (то есть я в основном) так и не смог дойти до совершенно удовлетворяющего меня интерфейса к VM.
Я это к тому, что централизованно придумать интерфейсы -- это очень правильная идея, и наверное лучше реально чтобы не один человек это делал. И заимплементить их нужно как abstract base classes, как я в issue 34 написал.
Но! Надо сразу понимать, что скорее всего их придётся переделывать. И чтобы не было фанатизма и бюрократии по этому поводу, если понял, что надо всё делать чуть по-другому -- сделал ветку, написал, проверил что работает, показал другим людям, если они одобрили -- смержил ветку.
Нужен кто-то, кто будет держать в голове все имеющиеся интерфейсы и одобрять новые. Прям вот на таком уровне: коммитить в продакшон неодобренные интерфейсы почти запрещено, в скратчи - не рекомендуется. Интерфейсы здесь это штуки вроде класса Game и Map, интерпретаторов, компиляторов, вм-врапперов, спек, базовых классов для питоновых стратегий и т.п. Одобрение применяется либо к реальному коду, либо к сниппету с сигнатурами функций и возможно примером использования.
Потому что просто знание о проблеме не помогает.
Такой подход имеет шансы во-первых уменьшить общий бардак, во-вторых сделать альтернативные реализации совместимыми с самого начала. Цена вроде небольшая потому что об интерфейсе всё равно необходимо думать, почему бы не подумать с самого начала.