Scala: Где мне разместить операторы импорта?

Scala позволяет импортировать практически все, что вы хотите, где хотите, и это здорово. Но есть ли какие-то соображения, которые я должен учитывать при импорте чего-либо внутри класса, метода или любого блока? Как это связано с производительностью, стилем, ремонтопригодностью кода и т. Д.?

Обычно я стараюсь подчиняться этим правилам (придуманным мной самим):

  • Если я импортирую что-то внешнее из другого пакета, я всегда помещаю его в вверху сразу после «пакета».
  • Если я использую что-то более одного раза в одном файле, я также импортирую его вверху.
  • В противном случае я помещаю свой импорт вверху соответствующего класса / черта / объект.
  • Я избегаю импортировать объекты в методы и блоки.
  • Я стараюсь избегать импорта содержимого экземпляров объектов, если у меня нет для этого действительно веской причины.
  • Я бы избегал переименования и "скрытия", если только не разрешать конфликты имен, но мне это никогда не требовалось.

Имеют ли для вас смысл эти "правила"? Не слишком ли я себя ограничиваю?

19
задан Vilius Normantas 24 April 2011 в 10:09
поделиться