Pull to refresh

Comments 16

Ну начнем с того что ваш код не читаемый абсолютно. Понять алгоритм в такой адовой вложенности легко только тому кто это пишет.

Согласен, что непривычно читать, но только с первого раза и тому, кто не знаком с промисами — такова цена асинхронности.

Нет, это вина ни разу не асинхронности и промисов, а только вашего плохого стиля кода.

Ну как минимум поменять анонимки для промисов на конкретные вспомогательные методы или функции.


Вынести шаблоны ответов так же во вспомогательные функции, ну и вообще разбить код методов.


Код вида:


if (condition) {
    //...
    //много логики
    //...
} else {
   // какая-то команда выхода например return;
}

сменить на


if (! condition) {
  //команда выхода
}

//дальше логика

Ну и т.п.

Мне не всегда легче читать чужой код, через вспомогательные методы и функции, тем более если они повторяются одинажды. Легче читать всё за один раз сверху вниз, чем клацать — переходить в объявления методов, потом обратно возвращаться. По мне — удобнее прочитать комментарий о смылсе анонимки в самом начале. К совету о выходе из метода при не соблюдении условия прислушаюсь, спасибо!
Так же, если вникнуть в код, можно заметить, что есть переменные из локального scope. Если вынести анонимные функции в вспомогательные функции — нужно будет постоянно передавать несколько объектов в параметрах (в некоторых случаях — некоторые будут лишними), ждать результатов ответов.
А почему используете Node.js — 0.12.4. На дворе уже Node v6 в lts с нативными Promise.
Ну и с кодом надо что-то делать, соглашусь что его читать невозможно.
Проекту больше 2х лет. Переводить на 6 версию ноды нет времени, но не мешало бы, тем более es6 — поприятнее.
У вас в проекте какие-то специфичные вещи старой ноды используются? Если нет — поднимайте до 7 вместе с async/await, как упомянули ниже, либо на 6 с транспайлингом того же async/await в генераторы.
Макконнелл, Макконнелл и еще раз Макконнелл.

Стыдно должно быть такое в паблик выкладывать.
У меня ощущение что качество статей про программирование на хабре упало.
Node.js — 0.12.4

Вы точно уверены, что вам в продакшне не нужны исправления безопасности Node.js и OpenSSL?

ну время на фикс багов из-за несовместимости никто не выделял. Проект работает и зарабатывает деньги заказчику, если я сейчас начну переходить на Node v6 — начнут теряться деньги. Заказчику нужна стабильная работа проекта. Как будет первый прецедент по взлому через существующие дыры 0.12.4 — будем общаться насчёт перевода проекта.
Only those users with full accounts are able to leave comments. Log in, please.