Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Оценить код приложения, дать советы (https://javascript.ru/forum/misc/49569-ocenit-kod-prilozheniya-dat-sovety.html)

IVAAAAN 19.08.2014 11:56

Оценить код приложения, дать советы
 
Первое что-то хоть немного серьезное, что я пишу на js:

https://bitbucket.org/ivaaaan/js-game
подскажите кто что может по коду, где там проблемы и т.д, где что неправильно сделал/организовал
Demo

tsigel 19.08.2014 12:21

IVAAAAN,
Чтобы ваш код был максимально понятен и читабелен старайтесь максимально развести реализацию и логику.

Например взять ваш метод game.run. Я бы писал что-то типа того:

game.run = function () {

   this.addRandNums();

   this.wait(this.waitTime, this.replaceNumber);

};


То есть смысл в том что в методе с алгоритмом нет ни одной строки кода реализации, а в реализации уже должно быть меньше логики. Восновном ваши методы должны быть максимально просты (пусть даже треть из них будет в 1 строчку) зато код будет понятен. И если вам надо будет поменять его спустя пол года, то по методу с логикой вы легко вспомните алгоритм, а реализующие методы будут просты до безобразия и вникать в них не надо будет.

+ учите jsDoc

WorM32 19.08.2014 14:26

Проблема в том, что моему мозгу 710 лет.

tsigel 19.08.2014 14:40

А моему около 50. Потом 510. :)

Viral 19.08.2014 16:29

IVAAAAN, автоматически сбрасывайте результаты при нажатии PrintScreen, а то развелось читеров)))))

tsigel 19.08.2014 16:40

Viral,
это уже жесть. Проще в консоли посмотреть)

Viral 19.08.2014 16:46

tsigel, первое правило консоли - никогда не говорить о консоли ©
те, кто умеет ей пользоваться и так бы скринить не стали))

IVAAAAN 19.08.2014 21:50

Может кто что посоветует, как лучше сделать подсчет возраста? Нужно чем больше побед, тем меньше возраст.

tsigel 19.08.2014 23:21

Мне кажется что способность запоминать цифры на время не совсем верно корелирует с возрастом.

IVAAAAN 19.08.2014 23:33

Цитата:

Сообщение от tsigel (Сообщение 326574)
Мне кажется что способность запоминать цифры на время не совсем верно корелирует с возрастом.

А вы думаете я создаю реальный психологический тест? Само собой это ничего не покажет. Но более менее реалистичный алгоритм нужен :)

tsigel 20.08.2014 00:01

Цитата:

this.wait(this.waitTime, this.replaceNumber);
Этим я имел в виду несколько другое.
Я имел в виду примерно следующее:
/**
 * @param {Number} time 
 * @param {function} callback
 * @param {Array} [args]
 */
game.wait = function (time, callback, args) {

   setTimeout(function () {
 
      callback.apply(window, args);

   }, time);

}


Название функции должно отражать суть её действия. Название wait должно ждать чего либо, и может выполнить какое-то действие подождав. У вас же подождав она заменяет символы и не может быть использована для других целей.

При написании кода вы как бы должны создавать себе АПИ из маленьких и мало связанных между собой методов. А потом просто используя их в нужном порядке сторится алгоритм. Это позволяет использовать одни и те же методы в абсолютно разных ситуациях и увеличивает переиспользование кода.

tsigel 20.08.2014 00:03

Пишите в скайп TsDaniil могу дать больше советов.


Часовой пояс GMT +3, время: 08:14.