2010-04-29 5 views
0

Si je veux utiliser le nom baz défini dans le package foo|bar|quz, j'ai plusieurs choix:Utilisation de (non) noms qualifiés

  1. fournissent fbq comme un nom court pour foo|bar|quz et utiliser fbq|baz
    • utilisation foo|bar|quz|baz
    • import baz de foo|bar|quz|baz puis utilisez baz (ou un alias donné dans le processus d'importation)
    • importer tous les symboles publics de foo|bar|quz|baz puis utilisez baz

Pour les langues que je connais, ma perception est que la meilleure pratique consiste à utiliser les deux premières voies (je vais utiliser l'un ou l'autre en fonction du nom complet du paquet et du nombre de symboles dont j'ai besoin). Je n'utiliserais le troisième que dans un langage qui ne fournit pas le premier et chercherait des outils de support pour écrire les instructions d'importation. Et à mon avis le quatrième devrait être réservé au paquet conçu avec que l'importation à l'esprit, par exemple si tous les symboles exportés commencent par un préfixe ou contient le nom du paquet.

Mes questions:

  • ce qui est à votre avis la meilleure pratique pour vos langues préférées?
  • Que suggérez-vous dans une nouvelle langue?
  • Que suggéreriez-vous dans une ancienne langue en ajoutant une telle fonctionnalité?

Répondre

0

En C#, j'utilise l'option 2, ce qui est logique en raison de la richesse du support de l'IDE de développement. Comme sa pratique courante consiste à déclarer les espaces de noms en haut du fichier de code (les importations auxquelles vous faites référence dans votre puce), vous pouvez voir en un coup d'œil ce qui est utilisé par un fichier donné. Je dis que la prise en charge de l'EDI est importante parce qu'elle me permet de voir d'un coup d'œil les classes d'où provient une classe référencée dans mon code et de voir quelles déclarations d'espaces de noms ne sont pas réellement utilisées et peuvent être supprimées . Pour une ancienne langue qui n'avait pas les avantages IDE décrits ci-dessus, je pencherais probablement vers le numéro 3 afin que vous puissiez toujours avoir un code laconique et éviter toute confusion quant à l'origine d'une classe donnée. J'éviterais l'option 1 personnellement car il semblerait que ce serait trop bavard.

De même pour un nouveau langage, ma décision dépendra de l'IDE. S'il a des choses disponibles comme ce que j'ai décrit pour C#, j'irais avec l'option 2, sinon l'option 3.

Questions connexes