2014-09-03 3 views
14

Kotlin удаляет ограничение на Java «один класс верхнего уровня для каждого файла», который я научился любить. Интересно, есть ли причины для этого обсуждать где-то и есть ли какие-то рекомендации, как справиться с этой новой свободой?Соглашения об именах файлов для Kotlin

+1

Этот вопрос слишком широк и основан на мнениях, кроме как сказать «нет ориентира», поскольку он действительно содержит личность вашей команды, чтобы решить, какие типы вещей вы упаковываете вместе в файл, и поэтому ваше имя будет отрегулируйте, чтобы сделать содержимое. Поэтому ответ «это зависит», и это означает, что вопрос, вероятно, должен быть закрыт. –

+1

@JaysonMinard никто никогда не отвечал на реальный вопрос, хотя, почему Котлин решил не иметь одного публичного класса верхнего уровня для ограничения файлов? – Bhargav

ответ

10

Вы все еще можете использовать это правило Java в качестве условного обозначения и называть свои файлы после своих классов. Или вы можете начать вкладывать больше классов в один файл Kotlin, в какой ситуации я бы рекомендовал называть файлы по их назначению. Каждый файл обычно содержит классы или другие элементы верхнего уровня, которые связаны друг с другом (если это не так, возможно, они не относятся к одному и тому же файлу в первую очередь?). Должно быть одно слово или небольшое количество слов, которые выражают цель всех классов в одном файле, который затем является естественным кандидатом на имя файла.

+0

Конечно, все звучит правильно. Однако через некоторое время вы получите «Listener.kt», содержащий класс «Наблюдатель», как переименованные вещи. Почти каждый не-Java-проект страдает от этого, по крайней мере, немного. Вот почему я гораздо более счастлив с строгостью Java. – maaartinus

+0

Я считаю, что это то, что не нужно применять, но больше об индивидуальной и командной дисциплине. Лично я предпочитаю один класс для каждого файла для лучшей открытости, но с Kotlin, как и JavaScript, я использую множество автономных (верхних уровней) функций, а затем группирую функциональность и файлы имен соответственно. –

+0

Не имеет значения, так как «именование файлов» является (случайной) проблемой файлового пространства (проверка байтовых потоков и коллекций того же самого), тогда как «имя класса» или «нет именования, только фрагменты кода, плавающие вокруг», является проблемой (Kotlin) (предоставление исходного кода и других артефактов). Почему нам нужно задавать себе вопросы относительно того, как пространство пакетов отображается в файловом пространстве :-) –

Смежные вопросы