Соглашения об именах для проекта на нескольких языках программирования - PullRequest
7 голосов
/ 20 января 2012

В настоящее время я работаю над проектом, который включает несколько разных языков "программирования", каждый из которых имеет свои соглашения о том, как вещи должны быть названы. Должно ли одно и то же соглашение об именах использоваться повсеместно, или имена должны быть разными на каждом языке, чтобы иметь естественный вид (т. Е. Не противоречить остальной структуре)?

Например, в этом проекте используются MongoDB (BSON), C #, JSON и Javascript. Прямо сейчас я называю вещи в каждом слое в соответствии с соглашением этого уровня, а затем располагаю код между каждым уровнем для перевода, скажем, из BSON в модель C #. С другой стороны, MongoDb сделает это автоматически, если соглашение об именах будет таким же.

Ответы [ 2 ]

6 голосов
/ 18 октября 2012

Двадцать с чем-то лет назад, когда я только начинал свою профессиональную карьеру, я, вероятно, согласился бы с Полом и сказал бы: «Иди к универсальным соглашениям об именах!».:)

Сегодня мой ответ другой.Принятие приличных соглашений об именах является сложной задачей, даже если вы имеете дело с одним языком программирования.Наличие универсальных соглашений для нескольких языков / фреймворков - благородная цель и отличная головоломка, но в целом я не думаю, что это осуществимо.Синтаксические и лексические правила разных языков / фреймворков слишком разнообразны, чтобы «один размер подходил всем».Кроме того, набор используемых языков / рамок может измениться в любое время, и соответствующая корректировка ваших «универсальных соглашений» может оказаться чрезмерно дорогой или чрезмерно несвоевременной.

Поэтому я бы рекомендовал сосредоточиться в первую очередь натвердые и достойные соглашения для каждого языка / фреймворка (или для каждой группы языков / фреймворков, которые достаточно похожи - например, C и C ++).Одним из приятных результатов этого подхода является то, что проекты, использующие только один язык, должны придерживаться набора соглашений, которые не выглядят «чужими».

Сказав все это, я считаю, что некоторые соглашения могут быть общимидля всех задействованных языков / рамок, не становясь слишком «иностранным».Более того, такая вещь, как словарь , должна быть общей для всего проекта.Конечно, это в основном семантические и лексические правила;но даже некоторые синтаксические правила тоже могут быть универсальными.Например:

  • Лексические правила для имен сущностей (например, «всегда используйте единственные существительные»).

  • Лексические правила для аббревиатур (например, «использовать»только общеизвестные аббревиатуры ").

  • Синтаксические правила для составных имен (например," всегда используйте общие, а затем специфические последовательности ").

Приведенные выше примеры, конечно, упрощены.Но я надеюсь, что идея ясна: все условности, которые могут быть общими, должны быть общими, но это всегда будет просто подмножество всех соглашений, которые вам нужны.

...