@nodejs_ru

Страница 457 из 2748
Nook
21.12.2016
21:13:11
Нет

RTFM

Vitaly
21.12.2016
22:17:05
Вопрос века

?Nes Gorgeous
21.12.2016
22:17:53
?

Google
Vladislav
22.12.2016
08:28:42
Вопрос. Допустим у меня есть чат-сервер на nodejs. Там очень много всего. И он уже обрастает кучей кода. Функционала там не меньше. И так вышло, хоть я т выносил модели db в разные файлы. Старался писать код покороче. Все равно его уже очень дохера. Кто знает как грамотно можно реструктуризировать приложение, пока еще не поздно и есть время. Ибо потом может быть совсем тяжко

Andrew
22.12.2016
08:30:06
сколько тысяч строк кода?

Nikolay
22.12.2016
08:34:10
Разбивай на маленькие модули по функциональности. Каждый модуль клади в отдельный репозиторий.

Глеб
22.12.2016
08:53:42
Вот, да, хороший вопрос. Кто как организовывает структуру проекта, какие есть best practices?

Vladislav
22.12.2016
09:04:36
сколько тысяч строк кода?
пока полторы. Но это начало. И судя по ТЗ будет до 5

Vladimir
22.12.2016
09:11:13
Полторы тысячи строк - это несерьезно

Можно и в одном файле держать

Andrew
22.12.2016
09:13:23
пока полторы. Но это начало. И судя по ТЗ будет до 5
что там такого эдакого в чат-сервере наверчено, что 5 тыщ строк будет?

Nikolay
22.12.2016
09:14:02
Полторы тысячи строк - это несерьезно
Тогда действительно не надо.

В одном файле это, конечно, перебор.

Vladimir
22.12.2016
09:14:50
Разбивать на репы нужно только в крайнем случае

Google
Vladislav
22.12.2016
09:14:58
Там много чего будет. И видео чат. Со стримингом видео на все платформы по разным протоколам.

и еще куча плюх

Andrew
22.12.2016
09:17:03
Там много чего будет. И видео чат. Со стримингом видео на все платформы по разным протоколам.
бей на логические блоки, выноси их в отдельные файлы, подключай в центральном агрегаторе

собираться все будет один раз, при старте сервера, в процессе работы будет выглядеть как один файл, а работать удобнее

имхо

а в целом звучит как несколько специализированных серверов, которым даже в одном месте быть не обязательно

подумай над тем, что если вдруг эта штука взлетит, то придется масштабировать

все равно будешь части потом выносить на отдельные потоки или даже машины

Vladislav
22.12.2016
09:19:47
Я знаю. Над масштабированем думали. Но сказали, что думать о нем не надо. А в целом пишется так что если добавить еще один сервер то оно расширился нормально.

Pavel
22.12.2016
10:16:01
пока полторы. Но это начало. И судя по ТЗ будет до 5
Это ни о чём. У меня некоторые легаси-контролеры большего размера (руки не доходят переписать). Будет тысяч 20 строк в проекте - можно будет задуматься о разделении.

Igor
22.12.2016
10:21:57
и тогда только задуматься о разделении

Pavel
22.12.2016
10:22:19
Нет, конечно

Контролеров на 1000 строк не нужно допускать

Но париться насчёт разделения сейчас пахнет матёрой такой преждевременной оптимизацией

Igor
22.12.2016
10:25:06
Помоему выстраивание правильной структуры проекта должно входить в каждодневную привычку, а не быть чем то вроде снега на голову. Хотя конечно забегать далеко вперед не стоит.

Yergali
22.12.2016
11:01:38
всем привет

Google
Yergali
22.12.2016
11:01:49
пишу небольшой чат

работаю с монгуз

ошибки вызодят

DeprecationWarning: Mongoose: mpromise (mongoose's default promise library) is deprecated

Таймураз
22.12.2016
11:03:07
Добавь bluebird в проект

Eugeniy
22.12.2016
11:03:34
mongoose.Promise = Promise;

нативные промисы

либо блубирд

Таймураз
22.12.2016
11:03:47
global.Promise = require('bluebird');

Eugeniy
22.12.2016
11:04:01
можно и нативными обойтись

Таймураз
22.12.2016
11:04:11
Ну и для монгуса самого, да

Эти побыстрее будут

Yergali
22.12.2016
11:06:36
спасибо

Eugeniy
22.12.2016
11:08:35
Мне кажется если не особо много запросов будет, то блюбирд и нативные промисы ничем не отличаются

Таймураз
22.12.2016
11:09:03
Да какая разница Всего лишь одна зависимость и 2-3 строчки сверху

Yergali
22.12.2016
11:09:23
пару слов о себе: я java программист постепенно осваиваю node.js

Eugeniy
22.12.2016
11:09:30
:D

ладно, ладно(

Vladimir
22.12.2016
11:10:15
0 зависимостей лучше чем одна

И пора запомнить, что подменять глобалы нехорошо

Google
Дмитрий
22.12.2016
11:10:45
Да да да, а весь проект в одном файле лучше чем модульный подход

Это не подмена глобалов

Vladimir
22.12.2016
11:11:01
Это именно что подмена глобалов

Admin
ERROR: S client not available

Vladimir
22.12.2016
11:11:16
global.Array = require('хуита');

Дмитрий
22.12.2016
11:11:23
Пфф

Vladimir
22.12.2016
11:11:24
безумие

Дмитрий
22.12.2016
11:11:48
Никто не мешает объявлять как BluebirdPromise

Это первое

Второе, это НЕ глобал

Vladimir
22.12.2016
11:12:01
Это ради бога

Никита
22.12.2016
11:12:10
global.Promise = require('bluebird');
не надо так делать

Таймураз
22.12.2016
11:12:18
Господи, стороннее решение оказалось лучше, чем нативщина, а вы против?

Дмитрий
22.12.2016
11:12:23
А, сорян

Таймураз
22.12.2016
11:12:26
Почему?

Дмитрий
22.12.2016
11:12:38
Я извиняюсь)) Не присмотрелся к выложенному синтаксису

Да, так делать не стоит

Никита
22.12.2016
11:13:20
Если ты хочешь использовать bluebird и звать его Promise — делай const Promise = require('bluebird'); наверху каждого файла.

Vladimir
22.12.2016
11:13:27
Если бы они были полностью идентичны, но производительнее, это была бы другая история

Google
Никита
22.12.2016
11:13:35
Это затронет только твои вызовы к Promise.

Дмитрий
22.12.2016
11:13:56
Никита
22.12.2016
11:14:01
А если ты подменишь global.Promise, какая-нибудь зависимость может от этого слегка удивиться.

Таймураз
22.12.2016
11:14:01
Так у блуберда же только несколько методов лишних поверх спеки

Vladimir
22.12.2016
11:14:11
Это уже красный флаг

Никита
22.12.2016
11:14:23
Хуже только подменять глобалы в либах, это вообще полная задница.

Дмитрий
22.12.2016
11:14:45
Это уже красный флаг
Выключенная фича — это красный флаг?

Оок

Никита
22.12.2016
11:14:51
Vladimir
22.12.2016
11:14:59
Наличие лишних методов - красный флаг

Появляется неявная зависимость

Никита
22.12.2016
11:15:24
И нет, я могу представить себе ситуацию, когда либа сломается от замены Promise.

Таймураз
22.12.2016
11:15:51
Если реализация отличается, то ок А вот с лишними методами не могу придумать случая, когда что-то сломается

Vladimir
22.12.2016
11:16:18
Сломается, когда в нативные промисы добавят метод с таким же названием

Страница 457 из 2748