Госдума единогласно одобрила закон о предустановке национального мессенджера Max на всех продаваемых в России смартфонах и планшетах. Закон вступает в силу 1 сентября 2025 года. Это решение призвано обеспечить россиянам безопасную и функциональную альтернативу зарубежным мессенджерам, чья работа в России вызывает опасения у властей.
Мессенджер Max будет интегрирован с порталом «Госуслуги», образовательной платформой «Сферум» и предоставит пользователям возможность создания уникального цифрового ID, заменяющего паспорт в различных ситуациях, от онлайн-сервисов до подтверждения возраста в реальной жизни. Приложение позволит подписывать документы с использованием усиленной квалифицированной электронной подписи, передавать данные из ЕСИА (Единой системы идентификации и аутентификации), а также совершать различные финансовые операции, такие как денежные переводы и оформление сделок купли-продажи.
Закон подробно регламентирует использование цифрового ID в Max, определяя случаи, когда он может быть предъявлен вместо физического паспорта. Правительство определит полный список таких случаев.
https://sozd.duma.gov.ru/bill/679980-8?sortEventsByNum=num_up&sortEventsByDate=datend_down
Интересно, что будет со сматфонами в продаже, на которые не будет предустановлен данный мессенджер....
Мессенджер Max будет интегрирован с порталом «Госуслуги», образовательной платформой «Сферум» и предоставит пользователям возможность создания уникального цифрового ID, заменяющего паспорт в различных ситуациях, от онлайн-сервисов до подтверждения возраста в реальной жизни. Приложение позволит подписывать документы с использованием усиленной квалифицированной электронной подписи, передавать данные из ЕСИА (Единой системы идентификации и аутентификации), а также совершать различные финансовые операции, такие как денежные переводы и оформление сделок купли-продажи.
Закон подробно регламентирует использование цифрового ID в Max, определяя случаи, когда он может быть предъявлен вместо физического паспорта. Правительство определит полный список таких случаев.
https://sozd.duma.gov.ru/bill/679980-8?sortEventsByNum=num_up&sortEventsByDate=datend_down
Интересно, что будет со сматфонами в продаже, на которые не будет предустановлен данный мессенджер....
sozd.duma.gov.ru
№679980-8 Законопроект :: Система обеспечения законодательной деятельности
Информационный ресурс Государственной Думы. Здесь собрана информация о рассмотрении законопроектов и проектов постановлений Государственной Думы
🤡54👎9🤮9👍6😁3❤2😡2💩1
Монолит или Микросервисы
𝟏. Что такое Монолит?
Монолитная архитектура — это традиционный подход, при котором все части пользовательского интерфейса приложения, бизнес-логики, доступа к данным создаются и развертываются как единое, тесно связанное целое. Все компоненты используют одну и ту же кодовую базу и напрямую связаны, что означает, что любое изменение требует повторного развертывания всего приложения.
2. Что такое Микросервисы?
Микросервисы разбивают приложение на набор небольших независимых сервисов. Каждый сервис фокусируется на определенной бизнес-возможности, работает в своем собственном процессе и взаимодействует с другими через API. Их можно разрабатывать, развертывать и масштабировать независимо.
3. Монолит: Плюсы и минусы
Плюсы:
🔹 Простота разработки, тестирования и развертывания — отлично подходит для небольших команд и проектов
🔹 Более простая отладка, поскольку все находится в одном месте
🔹 Немного более высокая производительность для внутренней коммуникации
Минусы:
🔹 Трудно масштабировать отдельные функции; необходимо масштабировать все приложение
🔹 Сильная связанность — изменения в одной части могут повлиять на всю систему
🔹 Трудно самостоятельно внедрять новые технологии или реорганизовывать отдельные компоненты
🔹 Риск полного отказа в случае выхода из строя одного компонента
4. Микросервисы: Плюсы и минусы
Плюсы:
🔹 Слабосвязанные сервисы могут обновляться, развертываться или масштабироваться независимо.
🔹 Организация на основе бизнес-возможностей, что позволяет создавать специализированные команды разработчиков, которые занимаются отдельными компонентами независимо друг от друга
🔹 БОлее лучшая масштабируемость и устойчивость: сбой в одной службе не приводит к сбою всего приложения.
🔹 Хорошо работает с облачными и CI/CD-конвейерами.
Минусы:
🔹 Более сложная разработка, тестирование и отладка из-за распределенной природы.
🔹 Требует надежного DevOps, мониторинга и межсервисного взаимодействия.
🔹 Более высокие первоначальные затраты на настройку и инфраструктуру.
5. Когда что выбирать?
🔹 Монолит: лучше всего подходит для небольших проектов, MVP или команд, впервые работающих с распределенными системами.
🔹 Микросервисы: идеально подходят для крупных, сложных или быстро развивающихся приложений, где приоритетами являются масштабируемость, устойчивость и независимое развертывание.
👉 Монолиты предлагают простоту и скорость для небольших проектов, в то время как микросервисы обеспечивают гибкость и масштабируемость для сложных современных приложений. Правильный выбор зависит от размера вашего проекта, опыта команды и долгосрочных целей.
𝟏. Что такое Монолит?
Монолитная архитектура — это традиционный подход, при котором все части пользовательского интерфейса приложения, бизнес-логики, доступа к данным создаются и развертываются как единое, тесно связанное целое. Все компоненты используют одну и ту же кодовую базу и напрямую связаны, что означает, что любое изменение требует повторного развертывания всего приложения.
2. Что такое Микросервисы?
Микросервисы разбивают приложение на набор небольших независимых сервисов. Каждый сервис фокусируется на определенной бизнес-возможности, работает в своем собственном процессе и взаимодействует с другими через API. Их можно разрабатывать, развертывать и масштабировать независимо.
3. Монолит: Плюсы и минусы
Плюсы:
🔹 Простота разработки, тестирования и развертывания — отлично подходит для небольших команд и проектов
🔹 Более простая отладка, поскольку все находится в одном месте
🔹 Немного более высокая производительность для внутренней коммуникации
Минусы:
🔹 Трудно масштабировать отдельные функции; необходимо масштабировать все приложение
🔹 Сильная связанность — изменения в одной части могут повлиять на всю систему
🔹 Трудно самостоятельно внедрять новые технологии или реорганизовывать отдельные компоненты
🔹 Риск полного отказа в случае выхода из строя одного компонента
4. Микросервисы: Плюсы и минусы
Плюсы:
🔹 Слабосвязанные сервисы могут обновляться, развертываться или масштабироваться независимо.
🔹 Организация на основе бизнес-возможностей, что позволяет создавать специализированные команды разработчиков, которые занимаются отдельными компонентами независимо друг от друга
🔹 БОлее лучшая масштабируемость и устойчивость: сбой в одной службе не приводит к сбою всего приложения.
🔹 Хорошо работает с облачными и CI/CD-конвейерами.
Минусы:
🔹 Более сложная разработка, тестирование и отладка из-за распределенной природы.
🔹 Требует надежного DevOps, мониторинга и межсервисного взаимодействия.
🔹 Более высокие первоначальные затраты на настройку и инфраструктуру.
5. Когда что выбирать?
🔹 Монолит: лучше всего подходит для небольших проектов, MVP или команд, впервые работающих с распределенными системами.
🔹 Микросервисы: идеально подходят для крупных, сложных или быстро развивающихся приложений, где приоритетами являются масштабируемость, устойчивость и независимое развертывание.
👉 Монолиты предлагают простоту и скорость для небольших проектов, в то время как микросервисы обеспечивают гибкость и масштабируемость для сложных современных приложений. Правильный выбор зависит от размера вашего проекта, опыта команды и долгосрочных целей.
🔥20👍4❤2🏆1
Два дня назад в облачных сервисах Google произошел крупный глобальный сбой. Как сообщили в компании, причиной сбоя стал нулевой указатель - отсутствовала обработка на нулевой указатель, который допускался данным кодом. ПРичем ошибка произошла в новом коде, развертывание которого началось 29 мая 2025 года 🤔
https://status.cloud.google.com/incidents/ow5i3PPK96RduMcb1SsW
https://status.cloud.google.com/incidents/ow5i3PPK96RduMcb1SsW
👏23😁13😢4🤣3🔥2
В руководство по языку Go добавлена серия статей про Пакеты и модули
https://metanit.com/go/tutorial/5.1.php
#go #golang
https://metanit.com/go/tutorial/5.1.php
#go #golang
❤15🔥3❤🔥2
Управление памятью Java: Сборка мусора
𝟏) Что такое сборка мусора
Сборка мусора (GC) — это автоматизированный процессдля освобождения памяти путем удаления объектов, которые больше не нужны или на которые не ссылается приложение. Это помогает предотвратить утечки памяти и обеспечивает эффективную работу приложения.
𝟐) Как она работает?
В основе сборки мусора в Java лежит алгоритм Mark and Sweep (отметить и убрать):
🔹𝗠𝗮𝗿𝗸: GC начинает с корневых ссылок (таких как статические переменные, активные потоки и стеки методов) и помечает все достижимые объекты как «используемые».
🔹𝗦𝘄𝗲𝗲𝗽: Затем GC сканирует кучу на предмет объектов, не помеченных как «используемые», и освобождает их память, делая ее доступной для новых выделений.
𝟑) Когда выполняется сборка мусора?
Сборщик мусора может быть запущен автоматически JVM в следующих случаях:
🔹 Куча заполнена или близка к заполнению.
🔹 Куча старого поколения достигает порога.
🔹 Область памяти PermGen/Metaspace заполнена (в зависимости от версии Java).
🔹 Вручную вызван метод System.gc()
𝟒) Сборка мусора для поколений
Современные JVM делят кучу на поколения (молодые, старые и иногда ряд других). Большинство объектов умирают молодыми, поэтому GC фокусируется на молодом поколении для частой и быстрой очистки, в то время как старые объекты собираются реже, но более тщательно.
𝟓) Оптимизация
После очистки некоторые сборщики уплотняют память, перемещая активные объекты вместе, что снижает фрагментацию и ускоряет выделение памяти для новых объектов.
𝟔) Почему это важно?
Автоматическая сборка мусора освобождает разработчиков от ручного управления памятью (в отличие от C/C++), уменьшая количество ошибок, таких как утечки памяти и висячие указатели, и позволяя вам сосредоточиться на создании функций, а не на отслеживании памяти.
#java
𝟏) Что такое сборка мусора
Сборка мусора (GC) — это автоматизированный процессдля освобождения памяти путем удаления объектов, которые больше не нужны или на которые не ссылается приложение. Это помогает предотвратить утечки памяти и обеспечивает эффективную работу приложения.
𝟐) Как она работает?
В основе сборки мусора в Java лежит алгоритм Mark and Sweep (отметить и убрать):
🔹𝗠𝗮𝗿𝗸: GC начинает с корневых ссылок (таких как статические переменные, активные потоки и стеки методов) и помечает все достижимые объекты как «используемые».
🔹𝗦𝘄𝗲𝗲𝗽: Затем GC сканирует кучу на предмет объектов, не помеченных как «используемые», и освобождает их память, делая ее доступной для новых выделений.
𝟑) Когда выполняется сборка мусора?
Сборщик мусора может быть запущен автоматически JVM в следующих случаях:
🔹 Куча заполнена или близка к заполнению.
🔹 Куча старого поколения достигает порога.
🔹 Область памяти PermGen/Metaspace заполнена (в зависимости от версии Java).
🔹 Вручную вызван метод System.gc()
𝟒) Сборка мусора для поколений
Современные JVM делят кучу на поколения (молодые, старые и иногда ряд других). Большинство объектов умирают молодыми, поэтому GC фокусируется на молодом поколении для частой и быстрой очистки, в то время как старые объекты собираются реже, но более тщательно.
𝟓) Оптимизация
После очистки некоторые сборщики уплотняют память, перемещая активные объекты вместе, что снижает фрагментацию и ускоряет выделение памяти для новых объектов.
𝟔) Почему это важно?
Автоматическая сборка мусора освобождает разработчиков от ручного управления памятью (в отличие от C/C++), уменьшая количество ошибок, таких как утечки памяти и висячие указатели, и позволяя вам сосредоточиться на создании функций, а не на отслеживании памяти.
#java
👍16🔥5❤3
This media is not supported in your browser
VIEW IN TELEGRAM
Сравнение дизайна Liquid Glass («Жидкое стекло») на разных версиях iOS
😐27🤷♂13🤮7🤩6🔥4👍2
B+ trees (Деревья B+) и их применение в базах данных
Деревья B+ являются наиболее широко используемой структурой данных для индексирования в современных реляционных системах баз данных. Они специально разработаны для эффективного хранения и извлечения больших объемов данных на диске, обеспечивая высокую производительность поиска, вставки, удаления и запросов диапазона.
Основные реляционные базы данных, такие как MySQL (InnoDB), PostgreSQL, SQL Server и Oracle, используют деревья B+ для первичных и вторичных индексов, что делает их незаменимыми для масштабируемых, высокопроизводительных систем баз данных.
КЛЮЧЕВЫЕ ХАРАКТЕРИСТИКИ
- Все данные в листовых узлах
В B+ дереве все фактические данные записей (или указатели на полные записи) хранятся исключительно в листовых узлах. Внутренние узлы хранят только ключи и указатели на дочерние узлы, облегчая навигацию.
- Сбалансированная, многоуровневая структура
B+ деревья всегда сбалансированы по высоте. Все листовые узлы находятся на одной глубине, обеспечивая сложность O(log n) для операций поиска, вставки и удаления, независимо от размера базы данных.
- Эффективные запросы диапазона и упорядоченные запросы
Листовые узлы связаны вместе в двунаправленном списке, что позволяет быстро выполнять последовательный доступ для запросов диапазона, таких как BETWEEN, ORDER BY и сканирование индексов.
- Высокая степень заполнения
Каждый узел может содержать много ключей (высокая степень заполнения), что минимизирует высоту дерева и уменьшает дисковый ввод-вывод за счет максимизации данных на чтение.
- Оптимизация диска
B+ деревья разработаны для соответствия размерам блоков диска, что уменьшает количество обращений к диску, необходимых для операций.
ПОЧЕМУ B+ ДЕРЕВЬЯ ПРЕДПОЧИТАЮТСЯ В БАЗАХ ДАННЫХ?
- Сбалансированная структура обеспечивает последовательный доступ.
- Высокая степень заполнения соответствует размерам страниц диска, уменьшая ввод-вывод.
- Связанные листья делают сканирование диапазона быстрым.
- Узлы могут быть разделены/объединены с минимальным блокированием, поддерживая высококонкурентные среды.
ИСПОЛЬЗОВАНИЕ В ОСНОВНЫХ СИСТЕМАХ БАЗ ДАННЫХ
- MySQL (InnoDB)
Кластерный индекс (первичный ключ): хранит всю строку данных в B+ дереве.
Вторичные индексы: B+ деревья содержат индексированные столбцы и указатели на первичный ключ.
- PostgreSQL
Тип индекса по умолчанию (btree) для большинства столбцов.
Используется для уникальных и неуникальных индексов.
Поддерживает эффективные запросы на равенство и диапазон.
- СУБД Oracle
B+ деревья используются для стандартных индексов (одиночные, составные, основанные на функциях).
Организованные таблицы индексов (IOT) хранят все данные в листовых блоках B+ дерева.
Листовые блоки связаны для сканирования диапазона.
#database
Деревья B+ являются наиболее широко используемой структурой данных для индексирования в современных реляционных системах баз данных. Они специально разработаны для эффективного хранения и извлечения больших объемов данных на диске, обеспечивая высокую производительность поиска, вставки, удаления и запросов диапазона.
Основные реляционные базы данных, такие как MySQL (InnoDB), PostgreSQL, SQL Server и Oracle, используют деревья B+ для первичных и вторичных индексов, что делает их незаменимыми для масштабируемых, высокопроизводительных систем баз данных.
КЛЮЧЕВЫЕ ХАРАКТЕРИСТИКИ
- Все данные в листовых узлах
В B+ дереве все фактические данные записей (или указатели на полные записи) хранятся исключительно в листовых узлах. Внутренние узлы хранят только ключи и указатели на дочерние узлы, облегчая навигацию.
- Сбалансированная, многоуровневая структура
B+ деревья всегда сбалансированы по высоте. Все листовые узлы находятся на одной глубине, обеспечивая сложность O(log n) для операций поиска, вставки и удаления, независимо от размера базы данных.
- Эффективные запросы диапазона и упорядоченные запросы
Листовые узлы связаны вместе в двунаправленном списке, что позволяет быстро выполнять последовательный доступ для запросов диапазона, таких как BETWEEN, ORDER BY и сканирование индексов.
- Высокая степень заполнения
Каждый узел может содержать много ключей (высокая степень заполнения), что минимизирует высоту дерева и уменьшает дисковый ввод-вывод за счет максимизации данных на чтение.
- Оптимизация диска
B+ деревья разработаны для соответствия размерам блоков диска, что уменьшает количество обращений к диску, необходимых для операций.
ПОЧЕМУ B+ ДЕРЕВЬЯ ПРЕДПОЧИТАЮТСЯ В БАЗАХ ДАННЫХ?
- Сбалансированная структура обеспечивает последовательный доступ.
- Высокая степень заполнения соответствует размерам страниц диска, уменьшая ввод-вывод.
- Связанные листья делают сканирование диапазона быстрым.
- Узлы могут быть разделены/объединены с минимальным блокированием, поддерживая высококонкурентные среды.
ИСПОЛЬЗОВАНИЕ В ОСНОВНЫХ СИСТЕМАХ БАЗ ДАННЫХ
- MySQL (InnoDB)
Кластерный индекс (первичный ключ): хранит всю строку данных в B+ дереве.
Вторичные индексы: B+ деревья содержат индексированные столбцы и указатели на первичный ключ.
- PostgreSQL
Тип индекса по умолчанию (btree) для большинства столбцов.
Используется для уникальных и неуникальных индексов.
Поддерживает эффективные запросы на равенство и диапазон.
- СУБД Oracle
B+ деревья используются для стандартных индексов (одиночные, составные, основанные на функциях).
Организованные таблицы индексов (IOT) хранят все данные в листовых блоках B+ дерева.
Листовые блоки связаны для сканирования диапазона.
#database
🔥9👍3👏1🏆1