Чи повинен коли-небудь розробник вказувати формат JSON для бек-енд-розробників?


17

Я беру фронтальну роль у проекті. Чи повинен я вказувати для своїх однокласників точний формат JSON, щоб їх PHP повертався до мого JavaScript?

Наприклад, якщо я їм кажу, вони повинні використовувати формат, подібний до описаного тут:

Правильний спосіб структурувати JSON для переднього використання

Або я повинен зберігати свою роль максимально стерильним і просто описувати словами словами входи та виходи, потрібні з їх інтерфейсного інтерфейсу? (Звичайно, якщо це станеться, з мого боку може бути складніше обробляти їх різні формати структури даних)


10
Я міг би бачити сенс для них робити першу пропозицію на основі загального внеску. Але це не означає, що розмова зупиняється на першій пропозиції.
Дуг Т.

Що має сенс!
LazerSharks

4
Хтось повинен вказати точний формат даних, що містяться в JSON. Ти можеш бути і ти. Дійсно, це повинен бути той, хто має найбільше досвіду створення специфікацій.
gnasher729

2
@ gnasher729: або якщо формат настільки простий, що ви впевнені, що обидві сторони більш ніж кваліфіковані, щоб його вказати, той, хто пише перший код, який повинен знати, повинен його визначити. Це також можна вважати нагородою для того, хто швидше розпочне свої випробування ;-) Взагалі можна сказати, що людина, яка це робить, не завжди повинна бути людиною з найбільшим досвідом, часто краще використовувати людину з найменшими досвід, який достатній для виконання завдання, але це питання розвитку людини.
Стів Джессоп

Відповіді:


42

Це розмова, яку ви повинні проводити разом, обговорюючи вимоги, плюси та мінуси різних форматів.

Якщо одна чи інша сторона диктує, що трапиться, ви зіткнетесь із поганим програмним забезпеченням та нещасною командою.


1
Що має сенс! Цікавилося, що насправді / зазвичай трапляється там у світі розвитку.
LazerSharks

5
Правильно. Ви працюєте над цим разом. Якщо це щось трохи складніше, то в ідеалі ви знайдете загальний формат, підтримуваний бібліотеками з обох кінців, щоб зробити процес простішим / швидшим.
AE

9

Ви, безумовно, повинні сприяти тому, як повинен виглядати формат і структура JSON. Я не раз бачу, що інженери-інтерфейси, споживачі API, знають, якою має бути структура даних.

Ви використовуєте дані, відформатуйте їх, перевірте їх та працюйте з ними. У вас має бути думка про те, як ви хочете її доставити.


3

Ласкаво просимо у чудовий світ розвитку програмного забезпечення. Для розробки протоколу може бути багато наполегливої ​​роботи та дебатів, і ніхто не повинен бачити результатів.

Якщо ви перебуваєте в невеликій команді, тоді уникайте диктатора: швидкі зустрічі з усіма, щоб вибити протокол.

Команди середнього розміру, можливо, бажають мати представників, які розробляють протокол.

Великі команди та / або команди зі складною організацією повинні мати спеціалізоване програмне забезпечення для управління протоколом.

У всіх випадках документ! Які передумови, що є пост-умовами, які обов'язкові поля, які необов'язкові поля, які побічні ефекти, які помилки повертаються… Продовжуйте зберігати документ, коли знайдуться нові умови, типи помилок чи побічні ефекти. , потім вони додаються до документа.

Я також рекомендую як тести, так і клієнтські та серверні модулі, і системні тести для забезпечення відповідності документу.

Це може здатися великою роботою, але незначні помилки тут можуть бути дуже дорогими та трудомісткими.


Ах, із задоволенням дізнаюся, що цілий світ присвячений цьому аспекту. Я думав, що цей аспект здається там, де гума справді відповідає дорозі з точки зору розриву між передньою та задньою частинами.
LazerSharks

1

Я б просто запитав, чому б ні? Коли ми говоримо про проект, ми також говоримо про команду, яка працює над ним, і очікується, що слід почути думку про особливості та структуру, що використовується. Як розробник я особисто вірю і ціную внесок товаришів по команді.

Ви знаєте, що є приказка "якщо ти хочеш швидко піти, піди наодинці. Якщо ти хочеш далеко піти разом, то йди разом".

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.