DenDragonB / echobot

BSD 3-Clause "New" or "Revised" License
0 stars 0 forks source link

Перебор данных в списке вместо таблицы #4

Closed delfigamer closed 3 years ago

delfigamer commented 3 years ago

https://github.com/DenDragonB/echobot/blob/eab9a733042a38d49c7f2a17892d7791c6c5b244/src/Bot.hs#L60-L68

Здесь вместо плоского списка [User] больше по смыслу подошла бы таблица Data.Map.Strict.Map UID User, или даже хеш-таблица Data.HashMap.Strict.HashMap UID User:

  1. Она лучше документирует тот факт, что UID - это именно идентификатор пользователя, под которым сохраняются все его данные, а не просто одно из его свойств.
  2. Поиск по таблице гораздо быстрее, чем по списку - логарифмическое время против линейного.
  3. В отличие от списка, таблица автоматически гарантирует инвариант: не более одного пользователя на каждое значение UID.
DenDragonB commented 3 years ago

Сделал