MongoDB vs Firebase, что выбрать для старта JS-разработчику?
Как frontend-разработчику выбирать средства работы с данными для своих приложений
Для некоторых задач frontend-разработчикам приходится выбирать для своих приложений средства для работы с данными. Самые популярные для проектов на JS, имеющие хорошие и практичные средства для работы с ними, а также работающие c форматом JSON - это Firebase и MongoDB.
Для начала давайте обсудим, что из себя представляет Firebase и MongoDB.
Так что такое Firebase?
Firebase - это NoSQL облачная база данных в реальном времени, разработанная Google, в которой помимо основных функций для работы с данными, существуют дополнительные средства для взаимодействия с ними. А именно: в ней легко синхронизировать данные между пользователями в реальном времени и сообщить всем пользователям об изменении данных. Помимо этого, данные в ней размещаются в облаке, следовательно, обслуживание сервера не требуется.
MongoDB же представляет собой NoSQL базу данных на основе документов. Документы в ней написаны в формате JSON, а MongoDb внутри преобразовывает их в формат BSON (двоичный формат).
Так как же сделать выбор между ними? Для этого давайте рассмотрим плюсы и минусы каждой.
Firebase
Плюсы Firebase заключаются в:
- Работа на платформе Google
- Быстрый старт
- Система callback-ов при получении данных
- Доступность сервисов тестирования
Минусами же является то, что:
- Не весь функционал доступен бесплатно
- Медленные запросы
- Не имеет открытого исходного кода
- Не обеспечивает высокую производительность
MongoDB
Основные плюсы MongoDB:
- Быстрые запросы.
- Имеет открытый исходный код.
- Обеспечивает высокую производительность приложений с высоким трафиком.
Минусы использования:
- Нет ACID(Atomicity — Атомарность, Consistency — Согласованность, Isolation — Изолированность, Durability — Прочность) - требований к транзакционной системе
Какие выводы можно из этого сделать?
Firebase в большей степени больше подходит для небольших приложений, имеющих небольшой трафик и не требующих нагруженного функционала, так как сложные запросы требуют сложной логики, а также для быстрого запуска проекта.
В то время как MongoDB больше подходит для приложений с большим трафиком, так как при таком использовании раскрывается вся её производительность, в то время как не имеет смыслы использовать ее на маленьких приложениях, так как требуется время для поддержания и написания средств для работы с ней.