Использование (не) квалифицированных имен - PullRequest
0 голосов
/ 29 апреля 2010

Если я хочу использовать имя baz, определенное в пакете foo|bar|quz, у меня есть несколько вариантов:

  1. предоставить fbq в качестве краткого имени для foo|bar|quz и использовать fbq|baz
    • используйте foo|bar|quz|baz
    • import baz из foo|bar|quz|baz и затем используйте baz (или псевдоним, указанный в процессе импорта)
    • import allпубличные символы из foo|bar|quz|baz, а затем используйте baz

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

Мои вопросы:

  • что, по вашему мнению, лучше всего подходит для ваших любимых языков?
  • что бы вы предложили на новом языке?
  • что бы вы предложили на старом языке, добавив такую ​​функцию?

1 Ответ

0 голосов
/ 29 апреля 2010

В C # я использую вариант 2, который имеет смысл из-за широкой поддержки разработки IDE.Поскольку общепринятой практикой является объявление пространств имен в верхней части файла кода (импорт, на который вы ссылаетесь в пункте с маркером), вы можете сразу увидеть, что используется данным файлом.

Я говорю, что поддержка IDE имеет значение, потому что она позволяет мне сразу увидеть всплывающие подсказки, откуда взялся данный класс, на который ссылается мой код, а также позволяет увидеть, какие объявления пространства имен фактически не используются и могутбыть удаленным.

Для старого языка, который не имел преимуществ IDE, описанных выше, я бы, вероятно, склонился к цифре 3, чтобы вы могли все еще иметь краткий код и избежать путаницы относительно того, откуда происходит данный класс,Я бы лично выбрал вариант 1, потому что кажется, что он будет слишком многословным.

Аналогично для нового языка мое решение будет зависеть от IDE.Если в нем есть такие вещи, как то, что я описал для C #, я бы выбрал вариант 2, иначе вариант 3.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...