@nodejs_ru

Страница 661 из 2748
A
17.03.2017
13:56:43
что сделать то надо

уже потерял

Sergey
17.03.2017
13:57:32
200k елементов в цикле перебрать, и во вложенном цикле еще 100k

A
17.03.2017
13:59:57
http://stackoverflow.com/questions/11874096/parse-large-json-file-in-nodejs

Google
A
17.03.2017
14:00:02
вот что советуют

Sergey
17.03.2017
14:01:04
http://stackoverflow.com/questions/11874096/parse-large-json-file-in-nodejs
Как раз мой случай!) Спасибо!!!

Извините, может я не правильно поставил вопрос, и вел кого-то в заблуждение, или просто вы не внимательно прочли. Спасибо всем

Denis
17.03.2017
15:32:39
? Другой вопрос интересный. При разработке больших приложений, часто необходимо управлять конфигурацией. Например: + для develop разрешить Source Maps + для stage разрешить логирование на специальный + иметь для разных сред (develop, stage, prod) разные внешние сервисы логирования, и токены для них + отключить какие-то features для develop, но включить их для prod + иметь разные пресеты конфигураций одного приложения для разных продуктов/клиентов + разные стили / логотипы / описания + разные наборы языков (например, когда новый язык ещё в разработке, он может быть в stage, но не в production) + поддерживать только определенные языки на develop Таких настроек может быть несколько десятков в крупном приложении. Часть из них могут быть доступны для переопределения через ENV. Кто как решает это? Какие практики и подходы есть в других экосистемах (Ruby, Elixir, Python и пр)?

Сергей
17.03.2017
15:34:43
я имею несколько нужных файлов конфигов js/json, мержу их между собой юзаю dotenv и dotenv expand окружение подгружается двумя переменными: NODE_ENV для development/production/test и APP_ENV для stage, public, nightly

Evgeny
17.03.2017
15:40:45
Да в принципе тож самое. config, NODE_ENV+APP_ENV, реврайт через NODE_CONFIG

Denis
17.03.2017
15:42:16
я имею несколько нужных файлов конфигов js/json, мержу их между собой юзаю dotenv и dotenv expand окружение подгружается двумя переменными: NODE_ENV для development/production/test и APP_ENV для stage, public, nightly
У нас есть настройки по умолчанию и PRESET, который их переопределяет, т.е: 1. Сборка проекта: NODE_ENV=production PRESET=google-stage npm run build 1. Запуск проекта: NODE_ENV=production PRESET=google-stage npm run start

Kanat
17.03.2017
15:44:35
не имею понятия, что тут твориться но стало интересно

Юрий
17.03.2017
15:56:09
У нас есть common-конфиги, содержашие некую общую конфигурацию или значения по-умолчанию. Есть отдельные patch-конфиги для каждой из сред. Работа с конфигами инкапсулирована в свой небольшой модуль-велосипед, поэтому никто напрямую require('./my_kewl_env.json') не пишет. Окружение тоже переключаем по NODE_ENV + специфичная переменая, уточняющая путь резолва конфигов.

Evgeny
17.03.2017
15:56:48
мне кажется, или все велосипедят config?

Roman
17.03.2017
15:57:51
конфиги это сложно. видел одного он писал свой лисп для конфигов

Юрий
17.03.2017
16:01:35
Я года полтора назад писал валидатор конфигов на основе JSON Schema, чтобы нельзя было запустить проект с невалидными конфигами. Со временем пришли к текущей архитектуре — common + patch. Она оказалась удобнее для разработки — внесение правок в схему у команды всегда сопровождалось болью.

Google
Eduard
17.03.2017
16:09:08
process.hrtime() return undefined wtf?

Evgeny
17.03.2017
16:10:56
Ну да, все ведлсипедят :(

Юрий
17.03.2017
16:12:16
Увы. NDA )

Denis
17.03.2017
16:12:30
Омг

Фрагмент кода общего назначения под NDA? :)

Сергей
17.03.2017
16:12:54
Увы. NDA )
Даже валидатором нельзя?

Юрий
17.03.2017
16:12:55
Ну, не совсем NDA. Скорее ODA — Owner Doesn't Allow )

Denis
17.03.2017
16:13:17
Сюда его, на ковёр :)

https://www.npmjs.com/package/app-config

вот чё нашл

Юрий
17.03.2017
16:14:05
Попробую глянуть в истории репо, можно ли извлечь те наработки. Мы за это время успели выйти из MVP в нормальный прод, поэтому код очень сильно поменялся.

Evgeny
17.03.2017
16:14:40
Бля, да о чём вы все?

https://www.npmjs.com/package/config

Ну уж конфиги то не надо велосипедить!

Denis
17.03.2017
16:16:30
конфиги в стиле феникса: https://github.com/phoenixframework/phoenix/tree/master/installer/templates/new/config в стиле рельсов: https://github.com/rails/rails/tree/master/railties/lib/rails/generators/rails/app/templates/config/environments также в своих проектах не связанных с фреймворками использую: http://stackoverflow.com/questions/14184971/more-complex-inheritance-in-yaml и https://github.com/markbates/configatron

Roman
17.03.2017
16:18:16
а вот статья от того самого товарища

http://letrectruth.ml/posts/cpp-snafu-conclusion.html

Google
Roman
17.03.2017
16:20:11
https://www.npmjs.com/package/config
ага поэтому мы у себя их и велосипедим для микросервисов ;)

Denis
17.03.2017
16:22:14
https://goenning.net/2016/05/13/how-i-manage-application-configuration-with-nodejs/

Roman
17.03.2017
16:22:33
из того что я помню node-config не умеет сбрасывать кеш и работать нормально с кастомными env переменными

Mikhail
17.03.2017
16:22:46
? Другой вопрос интересный. При разработке больших приложений, часто необходимо управлять конфигурацией. Например: + для develop разрешить Source Maps + для stage разрешить логирование на специальный + иметь для разных сред (develop, stage, prod) разные внешние сервисы логирования, и токены для них + отключить какие-то features для develop, но включить их для prod + иметь разные пресеты конфигураций одного приложения для разных продуктов/клиентов + разные стили / логотипы / описания + разные наборы языков (например, когда новый язык ещё в разработке, он может быть в stage, но не в production) + поддерживать только определенные языки на develop Таких настроек может быть несколько десятков в крупном приложении. Часть из них могут быть доступны для переопределения через ENV. Кто как решает это? Какие практики и подходы есть в других экосистемах (Ruby, Elixir, Python и пр)?
Сейчас решаю такой вопрос с помощью https://www.npmjs.com/package/config У каждого нод-модуля свой конфиг, который мерджится с конфигом собираемого приложения Так же реализовал подгрузку и мерж конфига от подмодулей, если они зависят от других конфигов модулей

Vladimir
17.03.2017
16:24:45
Все через ENV

Roman
17.03.2017
16:24:59
Vladimir
17.03.2017
16:25:01
Неа

Вообще ноль проблем

И в деплое и в коде

Roman
17.03.2017
16:26:09
я как разраб порой понятия не имею какие девопсы переменные установили на ремоуте, это непрозрачно

Vladimir
17.03.2017
16:26:41
Ну для этого деплой должен быть весь через код

infrastructure as code, etc

Roman
17.03.2017
16:27:07
если там всего 2 енва ок, когда больше уже бардак начинается

Vladimir
17.03.2017
16:27:21
Ну их и не должно быть мега много

В конфиге может быть только то, что может свободно меняться в реальности

Все остальное зашито в код

Aleh
17.03.2017
16:30:22
у нас тож через env, особых проблем не было, но и сложность части на ноде крайне маленькая)

Юрий
17.03.2017
16:32:37
Все через ENV
12 factor app?

Aleh
17.03.2017
16:32:39
а есть для ноды что-то для дебага мемори ликов, с работающего процесса снять что-то адекватное, что можно анализировать?

Roman
17.03.2017
16:33:12
нод инспектор

Google
Roman
17.03.2017
16:34:08
не видел пока еще ничего лучше devtools для анализа

Aleh
17.03.2017
16:34:42
а он разве с чем-то кроме lts работает?

хотя даже с lts какие-то проблемы

Evgeny
17.03.2017
16:39:39
To enable custom environment variables, create a configuration file, custom-environment-variables.json

Vladimir
17.03.2017
16:39:47
12 factor app?
вроде того

Roman
17.03.2017
16:41:33
To enable custom environment variables, create a configuration file, custom-environment-variables.json
я в курсе, я написал "нормально" :) что они предлагают боль

Evgeny
17.03.2017
16:42:23
Ооок. Нормальное рещение ИМХО - держать маппинг без магии

Admin
ERROR: S client not available

Vladimir
17.03.2017
16:43:19
Мне кажется все это бесмысленный байкшеддинг

Конфиги это не очень сложная проблема

Roman
17.03.2017
16:45:35
это если ап простой, а когда несколько енвов, тесты, замысловатый деплой, архитектура и логика приложения начинаются велосипеды хочешь не хочешь

Vladimir
17.03.2017
16:46:39
Ну вот и пишите велосипеды

Это как раз нормально для такой задачи

Roman
17.03.2017
16:47:06
ну да, о том и речь

Vladimir
17.03.2017
16:47:24
Я говорил о либах для конфигов, они не нужны

Roman
17.03.2017
16:47:58
в 95% нужно просто наследование пары конфигов

Vladimir
17.03.2017
16:48:54
На самом деле в 12 factor про конфиги по делу написано

Есть конфиги в коде, а есть конфигипри деплое

Это разные вещи

Google
Zaur
17.03.2017
17:21:30
Всем привет, ребят изучаю node(привет кэп). Подскажите какие проекты можно сделать для практики socket.io используя что-то из steam API.

Denis
17.03.2017
17:56:36
Я говорил о либах для конфигов, они не нужны
Зависит от требования к утилизации наработок :) Если писать модули только для одного конкретно решения - то можно всё хардкодить, когда нужна потрабельность - тогда появляются требования к гибкости

Юрий
17.03.2017
18:00:51
А что является теперь common? production или develop? :)
ИМХО, прод. Чем более близкую к нему среду поднимает у себя разработчик (или поднимают на тестовых контурах), тем точнее удается воспроизвести наиболее хитрые баги - скажем, связанные с производительностью, или гонками запросов, или отказоустойчивостью. Но это чисто мои установки, на истину не претендую )

Denis
17.03.2017
18:01:17
Да вот мы также к этому пришли :)

Другой вопрос принципиальный - стоит ли группировать параметры

Или сделать плоскую key-value структуру

Юрий
17.03.2017
18:09:30
Мы группируем, а крупные группы выносим в отдельные файлы. Потом их проще переопределять для каждой среды.

Denis
17.03.2017
18:10:39
Типа такого? https://www.npmjs.com/package/app-config

А как группируете? Относительно библиотек или функций/фич приложений?

Юрий
17.03.2017
18:14:57
А как группируете? Относительно библиотек или функций/фич приложений?
Относительно фич. Отдельно — постгрес/слой DAO, отдельно — работа с очередью, отдельно — smtp и настройки почтовых рассылок.

Denis
17.03.2017
18:15:03
У феникса интересный подход тоже https://github.com/phoenixframework/phoenix/tree/master/installer/templates/new/config

Mikhail
17.03.2017
18:17:03
Круто :) Но конфиги имхо лучше в виде JS, тогда и подгрузка зависимостей не нужна (правда ABA-deps проблема может быть)
Внутри они json, но наружу уже торчат как экспорт js(то есть самого модуля config) после мерджа конфигов модуля и аппа

Denis
17.03.2017
18:17:20
Круто :) Но конфиги имхо лучше в виде JS, тогда и подгрузка зависимостей не нужна (правда ABA-deps проблема может быть)
Плюс есть возможность conditional configs делать в стиле: https://github.com/rails/rails/blob/master/railties/lib/rails/generators/rails/app/templates/config/environments/development.rb.tt#L16

Очень важная часть тут - автокомплит

Он должен работать в коде вида: import config from '../config' console.log('Connect to [%s]...', config.|

Kanat
17.03.2017
18:33:34
кстати кто-нибудь работал с vue.js?

Denis
17.03.2017
18:33:59
@vuejs_ru - здесь целая армия счастливчиков)

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