Мы продолжаем создание серверной части для нашего проекта Шахматы по сети. На этом уроке мы обсудим Шахматную Идемпотентность. Напишите своими словами, что такое Идемпотентность.
Дата отправки отчёта:
21 июня 2019 г.
Задание выполнено: за
16 час. 52 мин.
Чему научился:
На этом уроке мы помучились с идемпотентностью. В очередной раз осознал, что если тема обширная, и сложно контролируемая - крайне сложно всё предусмотреть. Случайно найденная ситуация: если пойти с пустой клетки, указав фигуру, которая якобы там находится - на указанной клетке сформируется фигура, указанная в ходе. В библиотеке нет проверки наличия фигуры на клетке перед ходом. В адресной строке она актуальна, а при наличии на доске видимых фигур - нет, т.к. в этом случае нет способа указать фигуру. Результат - на скринах в отчёте. Матрица атакует!
Что было сложным:
После того, как наконец, осознал, как в колдовать с БД в проекте - более сложного не было.
Научился: Добавил метод GetGameById, а иначе как мне кажется все желающие при двух или более открытых играх играли бы все в первую или последнюю, потому как ID игры никак не был задействован. Изменил роут в Web API под новый функционал. Добавил в MakeMove проверки на корректность хода: когда партия уже закончена - ходить нельзя, когда такой игры нет, играть в нее тоже нельзя. Трудности: Идемпотентность что-то очень похожее на синглтон. При попытке повторить операцию получаем тот же ответ что получали прошлый раз.