Розробка

Завдання з програмування по роздрібній торгівлі

Як допомогти продавцю визначити, чи є товар з потрібними характеристиками?
ПрикладЧасто прийшовши в магазин взуття і вибравши вподобану модель, ми чекаємо поки продавці визначать, чи є відповідний розмір

Дано

Список варіацій. Кожна варіація у свою чергу містить список атрибутів і їхніх значень.
example-data.json

[
{
 "Size": 37,
 "Color": "Brown",
 "Lock": "Zipper"
},
{
 "Size": 37,
 "Color": "Black",
 "Lock": "Zipper"
},
{
 "Size": 38,
 "Color": "Blue",
 "Lock": "Laces"
},
{
 "Size: 39,
 "Color": "Blue",
 "Lock": "Laces"
},
{
 "Size: 39,
 "Color": "Brown",
 "Lock": "Zipper"
},
{
 "Size: 39,
 "Color": "Brown",
 "Lock": "Laces"
},
{
 "Size": 40,
 "Color": "Brown",
 "Lock": "Laces"
}
]

Потрібно скласти інтерфейс, за яким продавець, вибравши необхідні властивості, може визначити, чи є товар на складі чи ні.

Умови:

 

  • Варіація містить повний список атрибутів (не може бути варіації з не відомими значеннями, якщо атрибут присутній в одній варіації, то він є у всіх)
  • Довжина списку варіантів значень атрибута варіюється від атрибута до атрибуту (один атрибут може приймати одне з двох значень, інший — одне з чотирьох і т. п.)
  • Один атрибут може мати тільки одне значення

 

Функціонал:

Інтерфейс представляє з себе список списків, де на першому рівні — тип атрибуту, на другому його значення.

Кожен елемент може бути в 3 станах:

  • Доступний для вибору — Білий
  • Активний — Синій
  • Доступний при інших комбінаціях — Сірий

На початку всі елементи доступні для вибору

Після вибору одного з атрибутів, всі інші переглядаються.

Ми вибрали 37. Всі інші розміри білі (оскільки вони є за умовою). Синього кольору немає. Він стає сірий, решта є — білі. 37 є тільки на Блискавці. Значить блискавка вибирається автоматично. І тут, увага! 40 розміру блискавці немає, значить 40 ставати сірим.

Якщо нам раптом знадобився синій колір, то скидається розмір (т. к. 37 синього немає) і замок (т. к. 37 блискавці немає, якби був, то він залишився б вибрано), автоматично вибираються шнурки (т. к. синій є тільки зі шнурівками), а розміри стають доступними 38, 39.

Завдання застосоване як:

  • Практика для вивчають програмування
  • Тестове завдання для відбору кандидатів
  • Просто цікаве проведення часу для досвідчених розробників

Related Articles

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *

Close