Разбор задачи из собеса. JSON

от автора

Такие разборы задач отлично помогают потренироваться в подходах к решению рабочих задач + увеличить насмотренность

Ниже сам JSON, нужно найти ошибки и предложить свои варианты исправления

Мой ход рассуждений для решения задачи 

  1. Параметр consumer. 

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

  2. Параметр rank меня оч смущает, можно понять двояко структуру. 

    Если он состоит из 2х параметров, то есть первый это sub: {code:»12321″}, а второй параметр просто без названия {code: «C»}, то я бы дал этому параметру тоже название. 

    Втораягипотеза, что sub — это внешний какой-то параметр и он относится не к rank, а к consumer, поэтому я бы его вынес наверх и у rank оставил бы просто code C.

  3. Меня в целом очень смущает добавление объекта code. Почему нельзя сразу значение стрингой передать. В чем сакральный смысл усложнения не понятно

  4. Формат даты рождения. 

    Не знаю на сколько ок оставлять в формате dd.mm.yyyy. Может быть стоит передать на ISO, но это бантик. Просто заменится формат на YYYY‑MM‑DD.

  5. Возраст у детей я бы указывал или также датой и вычислял, то есть добавил бы birthdate, а именно цифру возраста указывал бы цифрой, но это тоже спорно.

  6. Ну и зачем делать data — тоже не понятно.

    Если только у нас не может быть несколько consumer, но я так понимаю, что не может такого быть, поэтому я бы его тоже убрал чтобы структуру не усложнять.

  7. Массив children можно поместить внутрь consumer, так как дети явно относятся к покупателю.

По итогу получается вот такой файл: 

{ "consumer": {   "type": "F7",   "rank": "C",   "sub": "C4",   "birthdate":"1980-11-03", "children": [   {     "birthdate":"1991-11-03",     "age":"11",     "sex":"F"   },   {     "birthdate":"1998-12-07",     "age":"18",     "sex":"M"   } ] } }


ссылка на оригинал статьи https://habr.com/ru/articles/936672/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *