2014-02-01 2 views
18

Так что я node.js приложений, который предоставляет некоторые API клиентам и подключается к некоторым SQL базы данных. Сначала ввести несколько помещений:Snake_case или верблюжьего в node.js

  1. Клиенты должны использовать API с snake_case (ключей в объекте JSON отправленном в теле запроса в snake_case).
  2. Названия столбцов базы данных также являются snake_case.

Проблема в том, что Javascript стандарт/практика использует верблюжьего, который я хотел бы сохранить.

Так как я вижу есть 3 решения:

  1. Преобразование данных из змеи (API) на верблюде (приложение) к змеиным (базе данных) на лета по мере необходимости. Это создало бы новые слои для системы, и все это было бы немного сложнее, чем другие решения.
  2. Используйте snake_case в приложении node.js. Но независимо от того, использую ли я змею все другие зависимости, которые я использую, все равно будет на верблюде, который не решает всей проблемы.
  3. Mix snake_case и camelCase в приложении node.js. Этого я бы хотел избежать :)

Так что вы предлагаете? Шахта любимого первые решения, но если у вас есть какие-то другие умные идеи, не упомянутые здесь, пожалуйста, не стесняйтесь сказать :)

Спасибо, Ивану

+0

Npm - ваш друг: проверьте [to-snake-case] (https://npmjs.org/package/to-snake-case) и [to-camel-case] (https://npmjs.org/ пакет/к-верблюжьему корпусу). –

ответ

3

Occam's razor Как говорит принцип, самое простое решение является лучшим вариантом.

Если у вас есть требования клиента, с одной стороны, и node.js code style guides, с другой стороны. Я бы взял самое простое решение, удовлетворяющее обеим. Внешний API должен быть футляром для змей, а внутри вы можете использовать корпус верблюда. Если вы придерживаетесь последовательности, вы можете использовать случай со змеей повсюду, так как я полагаю, что требования клиента имеют более высокий приоритет.

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

2

Лично я, когда приходится иметь дело со змеиным случае в JavaScript, я использую его только в квадратных скобках:

data['user_id'] = 1; 

так, технически не нарушают никаких правил стиля: это просто строки, а не идентификаторы

1

Проблема в том, что стандарт javacript/практика использует camelCase, который я хотел бы сохранить.

Нет такой стандартной практики. Это зависит от стиля. Узел.Сам js использует корпус верблюда, мы внутренне придерживаемся случая с змеей, потому что это более читаемо. Делай как хочешь.

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

Вариант 1 не может быть изменен imho, потому что использование ИДЕННОГО идентификатора в разных стилях подвержено ошибкам. Вариант 3 является приемлемым.

+2

По-видимому, [snake_case легче читать] (http://www.cs.kent.edu/~jmaletic/papers/ICPC2010-CamelCaseUnderScoreClouds.pdf). По крайней мере для меня. – donut

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