Eldar
Скажите это newbees. Приходит человек, и хер пойми что норм а что нет. Были бы строгие стандарты дефакто, не было бы столько говна)
krn
ребят, такой вопрос. не считайте за старт холивара, но зачем вообще нужна Монга? работал в основном с ней, до сих пор плеваться хочется. Когда нужно обеспечить связи между коллекциями ( а такое бывает практически всегда), джоинить (=populate) запросы - целое дело.
Nurik
Скажите это newbees. Приходит человек, и хер пойми что норм а что нет. Были бы строгие стандарты дефакто, не было бы столько говна)
Говно это нормально. Ты думаешь в JEE нет говна ? Ты просто не видел банковский софт. Стандарты, стандарты, но говно всё-равно есть.
Artur
напоминает холивар по типу react vs ang2 Тут уже вопрос в том будешь ты сам подключать и контроллировать сторонние либы или отдашь эту ответсвенность разработчикам фреймворка
Sergey
Скажите это newbees. Приходит человек, и хер пойми что норм а что нет. Были бы строгие стандарты дефакто, не было бы столько говна)
были бы строгие стандарты как в джаве то не было бы развития впринципе эволюционный метод выбирай то, у чего больше звезд гитхаба
Sergey
👍👍 описал всю суть экосистемы js в двух словах
у го тоже самое у рубей … у многих языков
Nurik
были бы строгие стандарты как в джаве то не было бы развития впринципе эволюционный метод выбирай то, у чего больше звезд гитхаба
Насчёт звезд гитхаба это стёб ? Потому что взять хотя бы sequelize — столько звёзд, но он от этого не лучше.
Nurik
2018 год, а там raw запрос это строка. Норм чё.
Dmitry
getaddrinfo ENOTFOUND api.telegram.org api.telegram.org:443 axios.post(`https://api.telegram.org/bot${token}/sendMessage/`, { chat_id, text }) с локала работает, с firebase - нет
Dmitry
убейте меня
Roman
а ты уверен что фаербейз разрешает тебе делать любые колы во внешний мир?
Владислав
Добрый день. Просветите новичка, по какой причине не появляется скомпилированный .js файл при запуске webpack-dev-server?
Владислав
const path = require('path'); module.exports = { entry: './src/main.js', output: { filename: 'main.min.js', path: path.resolve(__dirname, 'dist'), publicPath: path.resolve(__dirname, 'dist') } };
Roman
Владислав
ОК, спс.
Dmitry
ой https://github.com/firebase/firebase-functions/issues/29
Владислав
Да, верно. Я уже погуглил. Тогда у меня непонимание. Зачем он вообще компилит, если этим бандлом нельзя воспользоваться?
Igor
Как нельзя? Можно. Сайт прогрузиться. Просто в файловой системе ты не увидишь свой бандл
Igor
А вот зачем так сделано - не помню.
Владислав
Гм, ОК, сейчас попробую. Я просто в Докере запускаю, поэтому открывал файл напрямую, сейчас проброшу порты.
Sergey
Добрый день. Просветите новичка, по какой причине не появляется скомпилированный .js файл при запуске webpack-dev-server?
он и не должен появляеться dev-server запускает компиляцию в память, а не на диск
A
ребят, такой вопрос. не считайте за старт холивара, но зачем вообще нужна Монга? работал в основном с ней, до сих пор плеваться хочется. Когда нужно обеспечить связи между коллекциями ( а такое бывает практически всегда), джоинить (=populate) запросы - целое дело.
хитрый вопрос :)) Монга нужна тогда, когда джойнить не надо, а обеспечивать надёжные связи между коллекциями не обязательно 🙂 Да, такое бывает. Более того нужно помнить несколько вещей: 1. монга хоть и с небольшой хитростью, но позволяет делать релейшены (да, я про атомарные операции над документами и вложеность). 2. нужно вспомнить для чего вообще (ну как минимум по легенде) была придумана монга и какие проблемы она решает. А решает она не те проблемы, что в вопросе. Ну и соответственно, можно пофантазировать и подумать как эти проблемы могли бы решаться в реляционке. Только не надо скатываться в "мне не нужно - значит никому не нужно" )
A
А можно примеры где не нужны связи между коллекциями ?)
давай начнём с вопроса о том, сколько у нас данных?)
A
Смотри в чём штука. Основной selling point монги - масштабирование. Достигается это репликацией и шардированием.
krn
Пусть 1000 юзеров , 100к комментов юзеров
A
Поэтому сразу предполагается, что монга - это распределённое хранилище данных. А в распределённых системах, если мы хотим какого-то более-менее вменяемого перфоманса, действуют совсем другие правила. Тут нам на помощь сразу прибегает CAP-теорема, которая говорит, что выбрать можно только две из трёх букв. Современные взгляд на этот счёт, кстати, говорят, что можно в треугольнике этом точку двигать, но не суть.
A
Теперь вспоминаем про наши связи
A
Всё здорово, когда связь локальная и не реплицирована. Но что делать, если одна половинка связи лежит на одной физической машине, а другая на другой? Как в этом случае проверить целостность? Задача о двух генералах говорит что гарантированно - никак. Но есть варианты
A
Разумеется, при этом есть варианты. Мы не можем сделать это гарантированно, но мы можем выработать алгоритм, который будет с достаточно высокой вероятностью сходится к хорошему решению
Владислав
Anonymous
Подскажите сканер уязвимостей веб-приложений (SQL-injection, XSS, open-redirect, etc) open-source =)
krn
Я конечно погуглю ещё задачу о генералах. Но вот для наглядности можно пример, где связи не нужны, или нужны настолько , что популейты не станут вызывать много боли ?
Igor
ОК, и всё-таки. Как это юзать?
У тебя ж ауптут main.min.js
Владислав
Я уже изменил.
A
Проблема только здесь в том, что при такой распределённой работе есть еще такая вещь, как сеть. А сеть - штука не надёжная и не быстрая (а вай-фай вообще говно 🙂 ) Поэтому мы сразу попадаем на механизм отлова ошибок и рассинхронизаций. А это всегда - время. Соответственно, в теории можно построить реляционку, которая поддерживает связи на разных нодах, они наверняка даже есть. Но по-прежнему придётся чем-то жертвовать из CAP
Владислав
В конфигах тоже, соответственно.
A
Связь есть, но тебе не обязательно поддерживать её констрейнтом
A
Ну вставишь ты комментарий от пользователя, которого нет или удалён. Мир что-ли обрушится?
A
Или представь, что у тебя этих комментов не 100к, а 100 000 000к Даже если это войдёт в один жирный сервер, ты не сможешь это обслуживать на приемлемой скорости
A
Придётся горизонтально масштабироваться.
A
А при горизонтальном масштабировании можешь сказать пока-пока своим связям даже в реляционке
Владислав
без диска
Я не понимаю. Как я могу подключить файл, которого на диске нет. Что я делаю не так? Всё точно по доке.
A
Это, конечно, не оправдывает того, что уютный бложек надо делать на монге )
Владислав
Или, допустим, что могу. Что я упустил?
Sergey
зачем тебе в дев режиме подключать файл который создался в памяти?
Владислав
Как я увижу результат?
Cenator 🐈
Как я увижу результат?
он отдается по пути какому-то
Cenator 🐈
в браузере открыть можешь
Владислав
Я выше скрин скинул с 404 ошибкой.
Sergey
Как я увижу результат?
он в памяти лежит открывая ссылку дев сервера, он тебе отдаст файл
Владислав
Физически этого файла нет.
Sergey
Я выше скрин скинул с 404 ошибкой.
так может ты неправильное имя файла запрашиваешь
Владислав
он в памяти лежит открывая ссылку дев сервера, он тебе отдаст файл
А вот это уже немного проясняет ситуацию. Можете подсказать ключ для поиска?
Sergey
у тебя так называется
Sergey
его и открывай
Sergey
откуда ты там bundle.js взял?
Владислав
Я поменял название файла.
Sergey
нам об этом откуда знать?
Владислав
Я писал выше.
Sergey
вообще доку почитай по девсерверу
Sergey
и выкинь докер
Sergey
проблемы только создаешь себе
A
Я конечно погуглю ещё задачу о генералах. Но вот для наглядности можно пример, где связи не нужны, или нужны настолько , что популейты не станут вызывать много боли ?
вообще не про монгу, но отправной точкой в современных нереляционках считается вот эта штука. Можно на неё поглядеть, для погружения в тему того как, когда и зачем. Ну и там вроде необходимая теория как минимум в отсылках: https://www.allthingsdistributed.com/files/amazon-dynamo-sosp2007.pdf
krn
вообще не про монгу, но отправной точкой в современных нереляционках считается вот эта штука. Можно на неё поглядеть, для погружения в тему того как, когда и зачем. Ну и там вроде необходимая теория как минимум в отсылках: https://www.allthingsdistributed.com/files/amazon-dynamo-sosp2007.pdf
Ну если я запилю коммент от удаленного юзера, я могу в случае двухсторонней связи проебаться с полями. Например, user.surname нужно проверять на undefined.пример простой, но думаю проблема понятна