рекомендации по импорту в Effective Scala говорят:
Поместить импорт в начало файла
Читатель может обратитьсяко всем импортам в одном месте.
В некоторых базах кода, с которыми я работал, была тенденция импортировать одну и ту же вещь несколько раз в нескольких местах в одном файле, потому что разработчик не сделал 'проверить это.Было бы неплохо, если бы IDE могли автоматически продвигать импорт на уровне блоков, если они обнаруживают несколько их экземпляров, но AFAIK, который я использую (IntelliJ), не делает этого.
При работе с большими файлами многие людиимеют тенденцию смотреть только на свой локальный фрагмент кода, поэтому они могут локально импортировать что-то, что конфликтует с другими частями пакета (например, в одном классе Promise
импортируется из scala.concurrent
, а в другом из akka.dispatch
), иэто труднее обнаружить, когда импорт разбросан повсюду.
Это может иметь или не иметь отношение к вашей конкретной кодовой базе, но я лично склонен пессимистично относиться к коду, который я поддерживаю (энтропия и всечто) и, таким образом, попытаться с самого начала установить правила, которые обеспечили бы удобство сопровождения в долгосрочной перспективе.
Редактировать: удалил ссылку на правило BlockImportChecker ScalaStyle , котороене связано.