Программист практик | уроки программирования | подготовка к собеседованию
133 subscribers
126 photos
3 videos
1 file
21 links
разбор собесов, ответы на вопросы, решение задач

Для связи со мной:
@IvanReshet
Download Telegram
MongoDB - это популярная документо-ориентированная база данных, которая относится к NoSQL-базам данных. Она разработана для работы с документами в формате BSON (Binary JSON), что делает её удобной для хранения и обработки различных типов данных.
😭1
Пример использования MongoDB.
Благодарю за предоставленный код:
@archersnotes

from pymongo import MongoClient


class UserRepo:
    def __init__(self, database):
        self.database = database

    def create(
            self,
            full_name: str,
            age: int,
    ):
        return self.database.users.insert_one({
            "full_name": full_name,
            "age": age,
        })

    def get_adults(self):
        return self.database.users.find({
            "age": {"$gte": 18},  # greater than or equal to 18
        })


def get_database():
    client = MongoClient(host="127.0.0.1", port=27017)
    database = client.text_app
    return database


def main():
    users = UserRepo(get_database())

    users.create("Александр Михаилович", 16)
    users.create("Александр Сергеевич", 18)

    adults = users.get_adults()
    for i in adults:
        print(i["full_name"])  # Александр Сергеевич


if __name__ == '__main__':
    main()
😱2
Cassandra - это распределенная база данных, разработанная для обработки огромных объемов данных на нескольких серверах без единой точки отказа.

Основные принципы, на которых основана Cassandra, включают горизонтальное масштабирование, высокую доступность и отказоустойчивость. Она использует модель данных типа "ключ-значение" с широкими столбцами, что позволяет эффективно хранить и обрабатывать большие объемы данных.

Cassandra поддерживает язык запросов CQL (Cassandra Query Language), который похож на SQL, что упрощает работу с базой данных для разработчиков, знакомых с SQL.
🔥2
Данные в Cassandra хранятся в виде пар "ключ-значение". Каждая запись в Cassandra представляет собой строку данных, которая содержит ключ и набор столбцов с соответствующими значениями.

Основные компоненты данных в Cassandra:

1. Ключ: Каждая запись в Cassandra имеет уникальный ключ, по которому она идентифицируется. Ключ может быть простым (состоящим из одного значения) или составным (состоящим из нескольких значений).

2. Столбцы: Данные в Cassandra хранятся в виде столбцов, которые могут быть широкими (wide columns). Это означает, что каждая запись может содержать большое количество столбцов, и каждый столбец может иметь различный тип данных.

3. Строки: В Cassandra данные организованы в виде строк, которые содержат ключ и соответствующие столбцы. Каждая строка может содержать несколько столбцов, и количество столбцов может быть разным для разных строк.

Пример структуры данных в Cassandra:

{
  "key": "user123",
  "columns": {
    "name": "John Doe",
    "age": 30,
    "email": "johndoe@example.com"
  }
}


В данном примере "user123" является ключом, а "name", "age" и "email" - это столбцы с соответствующими значениями.
👍2
А вот вам анонс на завтра)
В комментарии пишите, кто понял о чём пойдет речь)
Всем привет. Сегодня будет очень полезная информация (надеюсь). Поговорим про отличный ресурс - firebase.
🔥8
Если коротко то...
Firebase это комплексный набор инструментов и услуг, предлагаемых в качестве платформы Backend-as-a-Service (BaaS), позволяющий разработчикам легко создавать, запускать и расширять мобильные и веб-приложения. Он предлагает базу данных в реальном времени, аутентификацию, хранение данных, хостинг и другие возможности, и все это управляется с единой платформы.
На самом деле очень многое хочется вам рассказать про данный сервис. Поверьте мне он прям палочка выручалочка в некоторых случаях.
К сожалению сейчас нет времени описать все, что хочется поведать вам, поэтому делюсь ссылкой на статью, где можно ознакомиться с данным инструментом и попрактиковаться.

Firebase: что такое, для чего нужно, как читать и записывать данные
https://kolmogorov.pro/what-is-firebase-chto-takoe
👍4🤔1
Всем привет!
На этой неделе будем разговаривать про микросервисы.
А ещё будут интересные задачки для решения.
👍5🍌2
Что такое монолитное приложение?
- это принцип разработки, когда все сервисы и весь функционал находятся в одном месте в виде неделимого (монолитного) приложения
Чаще всего это проект, который установлен на сервере (кластере) и к нему обращаются все запросы. Написан как правило на одном или двух языках.

Суть работы примерно такая:
- клиент обращается к web-серверу
- веб-сервер перенаправляет запрос на нужную часть кода
- код выполняется (возможно обращается к б.д.)
- отправляет ответ на веб-сервер
- и дальше отправляется ответ клиенту (например в браузер)

Минусы:
- чтобы изменить небольшой функционал необходимо перезапустить все приложение
- труднее работать с разными источниками данных
- если "отказывает" один сервис, то останавливается все приложение
- труднее масштабировать

Плюсы:
- привычнее большинству разработчиков
- проще разобраться и контролировать т.к. все в одном месте
- сервисам проще взаимодействовать друг с другом
👍5
Что такое микросервисная архитектура?
- это набор веб-сервисов, выполняющих какой-либо точечный функционал и объединенных в виртуальное облако, при этом работая как единое приложение.

Суть в том, что весь функционал разбит на части. У каждого микросервиса может быть своя бд. А сами микросервисы объединены с помощью внешних настроек и технологий.

Что могут микросервисы?
- работать и вызываться независимо друг от друга
- если один "откажет", остальные продолжат работать
- вызывать друг друга по необходимости
- могут быть написаны на разных языках

На данный момент, многие отдают предпочтение микросервисной архитектуре.
👍2
Что такое CI/CD?

CI/CD (Continuous Integration/Continuous Deployment) — это практика разработки программного обеспечения, которая направлена на автоматизацию процесса сборки, тестирования и развертывания кода.

Continuous Integration (непрерывная интеграция) представляет собой процесс, при котором разработчики регулярно сливают свой код в общий репозиторий, после чего автоматически запускаются сборка и тестирование кода. Это позволяет выявлять проблемы интеграции в ранние стадии разработки.

Continuous Deployment (непрерывное развертывание) — это процесс автоматического развертывания кода в производственную среду после успешного прохождения всех этапов сборки и тестирования. Это позволяет быстро и безопасно внедрять изменения в продуктивную среду.

В целом, CI/CD помогает ускорить процесс разработки, улучшить качество кода, уменьшить риски и повысить эффективность работы команды разработчиков.
👍2
Решали ли вы задачи на leetcode? В комментариях делитесь своими достижениями.
Anonymous Poll
44%
Да
56%
Нет
Как вы смотрите на идею создать аккаунт на leetcode вместе со мной, и вместе выбирать задачи и решать их? Глянем сколько у нас наберётся решённых задач за год.
Anonymous Poll
57%
Отличная идея, присоединяюсь к челенджу
36%
Идея интересная, но решать не буду, только смотреть
7%
Не интересно
Всем привет.
Немного полезной информации для вас.
Хочу рассказать про колоночные базы данных.
(Columnar database)

Суть их в том, что данные группируются не по строкам, а по столбцам.
Если нам нужно в классической реляционной бд найти и считать какие либо значения, то у нас сканируется вся таблица по строкам и столбцам, а затем извлекаются строки целиком, даже если нужно только одно значение каждой из них. В случае колоночной бд, мы можем искать значения по отдельным столбцам и извлекать только те значения, которые необходимы.
Данное свойство делает их использование перспективным при работе с большими данными. Извлечение данных из таблицы в таких случаях может быть в десятки, а то и в сотни раз быстрее.

Помимо этого, колоночные бд более эффективно используют дисковое пространство, за счёт того, что данные в них могут быть сжаты сильнее чем в строчных.

На данный момент существует множество колоночные СУБД.
Примеры:
- ClickHouse
- Greenplum
- HANA
- Vertica
- Cassandra
- SAP IQ и т.д.
🔥5
This media is not supported in your browser
VIEW IN TELEGRAM
К слову, почему за последнюю неделю делаю мало постов)) Но сегодня ждите интересную тему)
😁3🐳1