буду вам всю ночь видос монтировать, сырого контента на 40 минут получилось
❤7 2
самый длинный видос на канале, точняк надо влепить лайк и комментарий😊
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12 3 2
SQL vs NoSQL 🥺
Частый вопрос на собеседованиях - когда выбрать SQL хранилище а когда NoSQL.
Сейчас мы рассмотрим два самых популярных представителя этих двух фракций - Postgres и Mongo.
Главным плюсом NoSQL хранилищ, а в частности Монги всегда была масштабируемость. Монга позволяет из под коробки развернуть кластер, также механизмы репликации и шардирования есть из под коробки
Постгря же таких плюсов не имеет, и горизонтальное масштабирование является серъезной задачей(хоть механизм WAL репликаций все таки имеется)
Но также издавна постгрес и другие реалиацонные базы данных брали двумя вещами - транзакции и индексы. Но уже давно в монге появились и транзакции и индексы, хоть и транзакции довольно кастрированные - ведь могут гарантировать атомарность на уровне одного документа(есть и на уровне коллекции но там также есть нюансы). Короче считать денюжки , например, через монгу не стоит(хотя врятли кому то хотелось :)
Также монга позволяет не иметь четких схем, что позволяет нам быстро вносить изменения при смене бизнесовых требований(НО также мы можем получить от этого много головной боли, и бекенд должен учитывать возможную ситуацию когда у одних сущностей разные поля)
Про производительность. Монга быстрее на простых запросах, так как все документы денормализованы, но если нам нужна сложная выборка то SQL like базы будут быстрей - так как SQL умный а еще планировщик запросов
Но также не стоит забывать что
#интересное
Частый вопрос на собеседованиях - когда выбрать SQL хранилище а когда NoSQL.
Сейчас мы рассмотрим два самых популярных представителя этих двух фракций - Postgres и Mongo.
Главным плюсом NoSQL хранилищ, а в частности Монги всегда была масштабируемость. Монга позволяет из под коробки развернуть кластер, также механизмы репликации и шардирования есть из под коробки
Постгря же таких плюсов не имеет, и горизонтальное масштабирование является серъезной задачей(хоть механизм WAL репликаций все таки имеется)
Но также издавна постгрес и другие реалиацонные базы данных брали двумя вещами - транзакции и индексы. Но уже давно в монге появились и транзакции и индексы, хоть и транзакции довольно кастрированные - ведь могут гарантировать атомарность на уровне одного документа(есть и на уровне коллекции но там также есть нюансы). Короче считать денюжки , например, через монгу не стоит(хотя врятли кому то хотелось :)
Также монга позволяет не иметь четких схем, что позволяет нам быстро вносить изменения при смене бизнесовых требований(НО также мы можем получить от этого много головной боли, и бекенд должен учитывать возможную ситуацию когда у одних сущностей разные поля)
Про производительность. Монга быстрее на простых запросах, так как все документы денормализованы, но если нам нужна сложная выборка то SQL like базы будут быстрей - так как SQL умный а еще планировщик запросов
Но также не стоит забывать что
JSONB не так плох, с ним есть много операций, и даже есть индексы на поля, и иногда им не грех воспользоваться, хоть и большие документы в нем хранить не рекомендуется#интересное
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12❤1
Мы на проекте использовали монгу для динамических конфигов для парсера. Под эту тему была написана гибкая система драйверов, которые можно реиспользовать и комбинировать, что позволяет уйти от ужасного хардкода полей для парсинга
Что такое foo, bar, spam and eggs и так далее 🥚
Частенько в чужом коде, особенно в учебных видосах вы могли видеть переменные или функции с названиями foo, bar и тому подобное. Так оказывается у этого даже есть название - метапеременная. Это названия переменных заменителей, вместо которых может стоять что угодно.
А spam and eggs это локальная шуточка в питон комьюнити, отсылается к любимому шоу Гвидо - Монти Пайтон
#интересное
Частенько в чужом коде, особенно в учебных видосах вы могли видеть переменные или функции с названиями foo, bar и тому подобное. Так оказывается у этого даже есть название - метапеременная. Это названия переменных заменителей, вместо которых может стоять что угодно.
А spam and eggs это локальная шуточка в питон комьюнити, отсылается к любимому шоу Гвидо - Монти Пайтон
#интересное
Please open Telegram to view this post
VIEW IN TELEGRAM
❤15
накидайте еще мб про что бы вы хотели видик - у нас тут такое учитывается)
❤10
сегодня хэллоуин, буду пересматривать кошмар на улице вязов, какие еще ужастики посоветуете?
позвали на собес в мтс, хотите видео с собеса?) хотя я хз на самом деле, не особый это фаер плей к компании то
❤27
весь такой контент + чутка лайф контента будет в закрытом тг
любой уровень подписки на бусти и я вас туда добавляю вы становитесь моим лучшим другом(я дешевка)
https://boosty.to/developnya
любой уровень подписки на бусти и я вас туда добавляю вы становитесь моим лучшим другом(я дешевка)
https://boosty.to/developnya
❤9
Про UUID🤷♂️
Юиды это универсально(не универсальный) уникальный айди, вроде понятно да? То есть это способ генерации айдишника, который гарантирует нам уникальность.
Что нам это дает?
Самый главный и жирный плюс - это распределенные системы. У нас например есть 3 микросервиса, и наша сущность композиционно разбита на эти 3 микросервиса(например заказ в интернет магазине)
И мы можем каждой из композиционной сущности дать один и тот же айди, автоинкримент же нам такого не дает, так как имеет стейт(sequence чаще всего, привет пайтон ментор я там опять обосрался знаю)
Также огромным плюсом есть то, что мы можем сгенерировать UUID на клиенте, даже временно не имея доступ к серверу - полезно в кассах, а также для дурабилити в любой клиент-сервер системе.
Также плюсом можно выделить что UUID ничего не дает нам о себе понять при первом прочтении, перебирать айдишники не получится да хацкеры
НУ И ПОСЛЕДНЕЕ, про скорость. У нас на одном проекте после видоса Миши Ларченко(мы как раз тогда чета архитектили) про юиды и их маленькую скорость - мы решили отказаться от юидов в каком то месте системы. Но ему там даже в комментах накидали про uuid v8 и все такое. Мораль - проверяйте инфу
#интересное
Юиды это универсально(не универсальный) уникальный айди, вроде понятно да? То есть это способ генерации айдишника, который гарантирует нам уникальность.
Что нам это дает?
Самый главный и жирный плюс - это распределенные системы. У нас например есть 3 микросервиса, и наша сущность композиционно разбита на эти 3 микросервиса(например заказ в интернет магазине)
И мы можем каждой из композиционной сущности дать один и тот же айди, автоинкримент же нам такого не дает, так как имеет стейт(sequence чаще всего, привет пайтон ментор я там опять обосрался знаю)
Также огромным плюсом есть то, что мы можем сгенерировать UUID на клиенте, даже временно не имея доступ к серверу - полезно в кассах, а также для дурабилити в любой клиент-сервер системе.
Также плюсом можно выделить что UUID ничего не дает нам о себе понять при первом прочтении, перебирать айдишники не получится да хацкеры
НУ И ПОСЛЕДНЕЕ, про скорость. У нас на одном проекте после видоса Миши Ларченко(мы как раз тогда чета архитектили) про юиды и их маленькую скорость - мы решили отказаться от юидов в каком то месте системы. Но ему там даже в комментах накидали про uuid v8 и все такое. Мораль - проверяйте инфу
#интересное
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰12❤2
И кстати теперь можете связать инфу про UUID и что в монге айдишники не автоинкремент, станет понятней)
❤2