Comments 16
Ну начнем с того что ваш код не читаемый абсолютно. Понять алгоритм в такой адовой вложенности легко только тому кто это пишет.
+5
Согласен, что непривычно читать, но только с первого раза и тому, кто не знаком с промисами — такова цена асинхронности.
-2
Нет, это вина ни разу не асинхронности и промисов, а только вашего плохого стиля кода.
+2
Готов выслушать конкретные советы
0
Ну как минимум поменять анонимки для промисов на конкретные вспомогательные методы или функции.
Вынести шаблоны ответов так же во вспомогательные функции, ну и вообще разбить код методов.
Код вида:
if (condition) {
//...
//много логики
//...
} else {
// какая-то команда выхода например return;
}
сменить на
if (! condition) {
//команда выхода
}
//дальше логика
Ну и т.п.
0
Мне не всегда легче читать чужой код, через вспомогательные методы и функции, тем более если они повторяются одинажды. Легче читать всё за один раз сверху вниз, чем клацать — переходить в объявления методов, потом обратно возвращаться. По мне — удобнее прочитать комментарий о смылсе анонимки в самом начале. К совету о выходе из метода при не соблюдении условия прислушаюсь, спасибо!
0
Так же, если вникнуть в код, можно заметить, что есть переменные из локального scope. Если вынести анонимные функции в вспомогательные функции — нужно будет постоянно передавать несколько объектов в параметрах (в некоторых случаях — некоторые будут лишними), ждать результатов ответов.
0
А почему используете Node.js — 0.12.4. На дворе уже Node v6 в lts с нативными Promise.
Ну и с кодом надо что-то делать, соглашусь что его читать невозможно.
Ну и с кодом надо что-то делать, соглашусь что его читать невозможно.
+2
Проекту больше 2х лет. Переводить на 6 версию ноды нет времени, но не мешало бы, тем более es6 — поприятнее.
0
и седьмая с async/await...
0
Макконнелл, Макконнелл и еще раз Макконнелл.
Стыдно должно быть такое в паблик выкладывать.
Стыдно должно быть такое в паблик выкладывать.
0
У меня ощущение что качество статей про программирование на хабре упало.
0
Node.js — 0.12.4
Вы точно уверены, что вам в продакшне не нужны исправления безопасности Node.js и OpenSSL?
+1
ну время на фикс багов из-за несовместимости никто не выделял. Проект работает и зарабатывает деньги заказчику, если я сейчас начну переходить на Node v6 — начнут теряться деньги. Заказчику нужна стабильная работа проекта. Как будет первый прецедент по взлому через существующие дыры 0.12.4 — будем общаться насчёт перевода проекта.
0
Sign up to leave a comment.
IPN для Qiwi на Node.js