Size: a a a

Обсуждения техдирские

2018 April 24

IC

Ilya Chesnokov in Обсуждения техдирские
Andrey Murzin
Не, "темплейт" - просто слово, обозначающее абстрактную заготовку, не имел ввиду конкретной реализации. Я скорее про то, что за рамками хралилища (внутри, мы договорились, криворуких программистов нету) у нас нет доступа к функции прямой модификации данных (нельзя, скажем, сделать произвольный SQL-запрос). Есть доступ только к множеству иммутабельных объектов, из которого мы можем выбрать и поместить выбранное в другое место. Проще говоря, уровень абстракции над хранилищем
К сожалению, криворукие программисты есть. Но предложение хорошее.
источник

AM

Andrey Murzin in Обсуждения техдирские
"Начал заправлять корабль" == взял объект "заправлять" из пула и поместил в (условно) редис (тоже не прямо, а через слой абстракции). Пока он там не прокис - дальше "лететь" нельзя
источник

IC

Ilya Chesnokov in Обсуждения техдирские
Ruslan
тип объекта указывает на имя сущности БД
А как тогда сделать внешний ключ?
источник

IC

Ilya Chesnokov in Обсуждения техдирские
Ilya Chesnokov
> Начал заправлять корабль - жди пока заправится или заплати за уменьшение времени заправки.
Я может забыл добавить, что кораблей у игрока может быть больше одного. Сорри. Но "корабль" - это в любом случае отдельная сущность. Точнее даже "корабль, принадлежащий пользователю" - сущность со своим отдельным айдишником.
источник

IC

Ilya Chesnokov in Обсуждения техдирские
Ruslan
Такое решается в общем виде при помощи типов объектов, т.е. табличка будет на 1 колонку больше
content_type_id, object_id, type_id... и т.д.
Это очень близко, но надо решить вопрос с отдельными объектами (таймауты не только для пользователей, а практически для любых объектов БД). Внешние ключи - правильное решение. Осталось теперь все это совместить. Повторяю - решение немного извращенское 😊
источник

R

Ruslan in Обсуждения техдирские
я уже понял, потому что я бы заюзал key value а криворукого программиста уволил (шутка) а правильность обеспечивал бы тем, что запись в хранилище происходила бы не напрямую, а через API, в котором и были бы все проверки
источник

IC

Ilya Chesnokov in Обсуждения техдирские
Ruslan
я уже понял, потому что я бы заюзал key value а криворукого программиста уволил (шутка) а правильность обеспечивал бы тем, что запись в хранилище происходила бы не напрямую, а через API, в котором и были бы все проверки
Я тоже.
источник

IC

Ilya Chesnokov in Обсуждения техдирские
Но босс решил, что нам нужна максимальная надежность 😊
источник

R

Ruslan in Обсуждения техдирские
так тогда самое извращенное - триггер на insert )
источник

IC

Ilya Chesnokov in Обсуждения техдирские
Хмм.
источник

R

Ruslan in Обсуждения техдирские
но его должен написать сам босс!
источник

IC

Ilya Chesnokov in Обсуждения техдирские
Который при инсерте проверяет наличие объекта такого типа в БД? )) Неплохо, черт возьми. Но тогда уж и на delete, причем всех таблиц))
источник

IC

Ilya Chesnokov in Обсуждения техдирские
Ruslan
но его должен написать сам босс!
И поддерживать, что немаловажно))
источник

DS

Dmitry Simonov in Обсуждения техдирские
Ruslan
но его должен написать сам босс!
Ты вот когда пишешь "боссс" я так и вижу супер-монстра из Doom!
источник

IC

Ilya Chesnokov in Обсуждения техдирские
Dmitry Simonov
Ты вот когда пишешь "боссс" я так и вижу супер-монстра из Doom!
Он такой.
источник

DS

Dmitry Simonov in Обсуждения техдирские
Ilya Chesnokov
Он такой.
И документацию написать!
источник

IC

Ilya Chesnokov in Обсуждения техдирские
И тесты.
источник

IC

Ilya Chesnokov in Обсуждения техдирские
Блин, я в принципе, ребят согласен с вами - kv идеально подходит. Или денормализованная табличка в том же постгресе, разумеется со всеми проверками на уровне кода. Насколько надо быть криворуким, чтоб не использовать внешний уровень абстракции, а писать напрямую - я прям хз. Почему бы тогда не взять и напрямую не записать какую-нибудь еще фигню? Таймстэмп левый например.
источник

IC

Ilya Chesnokov in Обсуждения техдирские
Ладно, ответ говорить? ))
источник

IC

Ilya Chesnokov in Обсуждения техдирские
Или кто-нибудь еще хочет подумать))
источник