Как лучше всего обеспечить уникальность имени вашей функции PowerShell? Стандарт начиная с версии 1 состоит в том, чтобы вводить короткий уникальный идентификатор после глагола тире и перед существительным. Например, с моими инициалами я мог создать функцию Get-DWServer; это нормально, пока кто-то не создаст функцию в другом модуле для получения ссылки на объект в хранилище данных и не использует одно и то же имя функции. Двух или трех букв просто недостаточно, но более того, читать некрасиво.
Я бы предпочел иметь уникальный префикс *, похожий на пространства имен .NET. Это лучше для организации, проще на глаз и работает с завершением табуляции. И он расширяется изящно, чтобы вы могли назвать его DW.Get-Server или DW.Network.Get-Server.
Недостатком этого является то, что он запускается после правильной проверки глагола PowerShell при импорте модуля / Export-ModuleMember. Вы можете обойти это, указав DisableNameChecking во время импорта, но мне интересно, если это происходит неаккуратно и может быть плохо, если PowerShell 3 выходит с лучшим решением. Я знаю, что пуристы глагола PS (есть ли?) Будут жаловаться, что это, вероятно, «мешает открытию», но я не могу придумать лучшего варианта.
Что ты делаешь?
(* Вы можете ссылаться на экспортированную функцию, используя нотацию имя_модуля \ имя_функции, но это не будет работать с завершением табуляции и все равно не решит проблему уникальности имени функции).