Closed KateBushueva closed 3 years ago
Я думал об этом, но получается слишком уж большое количество модулей. Подумаю еще
К вопросу о большом количестве модулей - в моем боте в финальной версии было 105 модулей (не считая тестов).. На 28 модулях можно смело делать декомпозицию. На самом деле, понятная структура - это один из ключевых моментов, на котором будут строиться дальнейшие улучшения кода: инкапсуляция на уровне модулей, отслеживание и регулирование зависимостей и т.д. Так что в данном случае декомпозиция неизбежна.
Не бойся делать большое количество модулей, главное их делать грамотно)
Не бойся делать большое количество модулей, главное их делать грамотно)
Сделал декомпозицию на части модулей. Вместо 28 теперь 48 модулей. В модуле Parsе.hs например точка разделения - монада Parser. Все вычисления, которые в ней, относятся к Internal
Декомпозицию окончил. В итоге 57 модулей. Оставшиеся модули не вижу смысла делить
я не совсем понимаю наличие Transformer.Instances, в котором по факту нет инстансов. В остальном вроде норм, давай структуру оставим как есть
я не совсем понимаю наличие Transformer.Instances, в котором по факту нет инстансов. В остальном вроде норм, давай структуру оставим как есть в этом модуле функции, которые используются для определения инстансов. По логике их нужно в Internal, но тогда получаются циклические импорты между Internal.hs и Types.hs. Могу переделать чуть по другому, добавить папку State, в которой Types и Internal
можно тогда переименовать модуль
можно тогда переименовать модуль
переименовал Instances в State. Так норм?
На данный момент в коде во многих модулях намешано все сразу: классы, функции, типы с дочерними типами ... Взять, к примеру, модуль Interface.MLog : там все сразу вместе, разделенное вотербрейк-комментами. В данном случае для Лога лучше выделить отдельную папку, где сделать декомпозицию того, что сейчас есть. Разделить по модулями:
Такая проблема присутствует не только в MLog, но и в других модулях.