Vlad-Shcherbina / icfpc2014-tbd

fourth place
Do What The F*ck You Want To Public License
4 stars 0 forks source link

API mess #39

Open Vlad-Shcherbina opened 10 years ago

Vlad-Shcherbina commented 10 years ago
All this has happened before, and all of it will happen again.

Нужен кто-то, кто будет держать в голове все имеющиеся интерфейсы и одобрять новые. Прям вот на таком уровне: коммитить в продакшон неодобренные интерфейсы почти запрещено, в скратчи - не рекомендуется. Интерфейсы здесь это штуки вроде класса Game и Map, интерпретаторов, компиляторов, вм-врапперов, спек, базовых классов для питоновых стратегий и т.п. Одобрение применяется либо к реальному коду, либо к сниппету с сигнатурами функций и возможно примером использования.

Потому что просто знание о проблеме не помогает.

Такой подход имеет шансы во-первых уменьшить общий бардак, во-вторых сделать альтернативные реализации совместимыми с самого начала. Цена вроде небольшая потому что об интерфейсе всё равно необходимо думать, почему бы не подумать с самого начала.

fj128 commented 10 years ago

Цена вроде небольшая потому что об интерфейсе всё равно необходимо думать, почему бы не подумать с самого начала.

Хочу заметить, что хороший интерфейс это что-то, о чём можно успешно "подумать с самого начала". Например, в этом году мы (то есть я в основном) так и не смог дойти до совершенно удовлетворяющего меня интерфейса к VM.

Я это к тому, что централизованно придумать интерфейсы -- это очень правильная идея, и наверное лучше реально чтобы не один человек это делал. И заимплементить их нужно как abstract base classes, как я в issue 34 написал.

Но! Надо сразу понимать, что скорее всего их придётся переделывать. И чтобы не было фанатизма и бюрократии по этому поводу, если понял, что надо всё делать чуть по-другому -- сделал ветку, написал, проверил что работает, показал другим людям, если они одобрили -- смержил ветку.