У меня большая база кода scala. (https://opensource.ncsa.illinois.edu/confluence/display/DFDL/Daffodil%3A+Open+Source+DFDL)
Он похож на 70K строк кода scala. Мы находимся на scala 2.11.7
Развитие становится трудным, потому что компиляция - цикл редактирования-компиляции-теста-отладки слишком длинный для небольших изменений.
Инкрементное время перекомпиляции может быть минутой, и это без оптимизации. Иногда дольше. И это не редактировало очень много изменений в файлы. Иногда очень небольшое изменение вызывает огромную перекомпиляцию.
Итак, мой вопрос: что я могу сделать, организуя код, который улучшит время компиляции?
Например, разложение кода на более мелкие файлы? Это поможет?
Например, более маленькие библиотеки?
Например, избегая использования имплицитов? (у нас очень мало)
Например, избегая использования признаков? (у нас есть тонны)
Например, избегая большого количества импорта? (у нас есть тонны - границы пакетов в этот момент довольно хаотичны)
Или я действительно ничего не могу с этим поделать?
Мне кажется, что эта очень длинная компиляция каким-то образом обусловлена некоторой огромной суммой перекомпиляции из-за зависимостей, и я думаю о том, как уменьшить ложные зависимости... но это просто теория
Я надеюсь, что кто-то еще может пролить свет на то, что мы можем сделать, что улучшит скорость компиляции для инкрементных изменений.