Pull to refresh

Comments 8

Хотелось бы посмотреть проект в виде гит-репозитария, в котором я если бы делал ревью, то мог бы отметить следующее:

  1. Никогда нельзя доверять пользователю (даже в учебном или пет-проекте), и следовало бы перенести логику игры на бекенд.

  2. Но даже если оставить как есть, то я бы предложил отделить логику игры (реализуемые правила и механики) от представления - т.е. это был бы класс/библиотека, который реализовывал бы все механики игры, и отдельно были бы компоненты, которые рисуют поле/корабли/статистику/etc

  3. Vuex уже морально устарел и вместо него даже его разработчики рекомендуют использовать Pinia, который проще и поддерживает тайпскрипт. Но в целом стор в этом приложении и не нужен.

  4. Не очевидно почему в статье упоминается Vue, и для чего он вообще нужен тут?

Доброго дня!

  1. Возможно для опытного пользователя и нельзя доверять, но для среднестатистического я не думаю что это будет критично. Хотя все равно не понятно чем логика на фронте опасна.

  2. В принципе, я и вынес логику в отдельный класс (GameProcessManager.ts)

  3. Просто уже работал с Vuex, поэтому решил его заюзать,

  4. Этот пункт мне совсем не понятен - что значит "для чего он [Vue] вообще тут нужен" ? )) Я выложил исходники (в конце статьи) - можете посмотреть.

  1. Проблема в том, что положение кораблей противника передается в клиент. Добавляй игру на деньги и сыграем с тобой - покажу в чем проблема :)

  2. Вот, для примера, библиотека battleships-engine - она не знает ни о вебсокетах, ни о Vuex, ни о канвасе, но полностью реализует правила игры и только их.

    Посмотрел репу - думаю, остальные пункты мне нет смысла обсуждать)

  1. Нет, я не вижу чтобы положение кораблей передавалось противнику. Либо я не совсем понял ваш аргумент. На деньги можете с кем-нибудь другим поиграть.

  2. Хорошо. Буду знать

Хорошего дня Вам)

Так переходите к нам и знакомых зовите)

Любые замечания, пожелания - пишите в ЛС, на почту. Не стесняйтесь!

P.S.

Добавил возможность рандомной расстановки кораблей:

Sign up to leave a comment.

Articles