METANIT.COM – Telegram
METANIT.COM
5.92K subscribers
1.68K photos
82 videos
9 files
1.05K links
Канал о программировании и разработке сайта metanit.com
Download Telegram
Эффективный метод, как бороться с копи-пейстом при разработке
🔥27😁23🤣7👏3🍌2🥰1
Шпаргалка по форматированному выводу в C++ #cpp
❤‍🔥14🔥32👏2
Госдума единогласно одобрила закон о предустановке национального мессенджера Max на всех продаваемых в России смартфонах и планшетах. Закон вступает в силу 1 сентября 2025 года. Это решение призвано обеспечить россиянам безопасную и функциональную альтернативу зарубежным мессенджерам, чья работа в России вызывает опасения у властей.
Мессенджер Max будет интегрирован с порталом «Госуслуги», образовательной платформой «Сферум» и предоставит пользователям возможность создания уникального цифрового ID, заменяющего паспорт в различных ситуациях, от онлайн-сервисов до подтверждения возраста в реальной жизни. Приложение позволит подписывать документы с использованием усиленной квалифицированной электронной подписи, передавать данные из ЕСИА (Единой системы идентификации и аутентификации), а также совершать различные финансовые операции, такие как денежные переводы и оформление сделок купли-продажи.
Закон подробно регламентирует использование цифрового ID в Max, определяя случаи, когда он может быть предъявлен вместо физического паспорта. Правительство определит полный список таких случаев.
https://sozd.duma.gov.ru/bill/679980-8?sortEventsByNum=num_up&sortEventsByDate=datend_down

Интересно, что будет со сматфонами в продаже, на которые не будет предустановлен данный мессенджер....
🤡54👎9🤮9👍6😁32😡2💩1
Ключевые строительные блоки системного дизайна
👍113👏2
Шпаргалка по перенаправлениям системы ввода-вывода в Linux #linux
🔥11🥰1👏1
Монолит или Микросервисы
Монолит или Микросервисы

𝟏. Что такое Монолит?
Монолитная архитектура — это традиционный подход, при котором все части пользовательского интерфейса приложения, бизнес-логики, доступа к данным создаются и развертываются как единое, тесно связанное целое. Все компоненты используют одну и ту же кодовую базу и напрямую связаны, что означает, что любое изменение требует повторного развертывания всего приложения.

2. Что такое Микросервисы?
Микросервисы разбивают приложение на набор небольших независимых сервисов. Каждый сервис фокусируется на определенной бизнес-возможности, работает в своем собственном процессе и взаимодействует с другими через API. Их можно разрабатывать, развертывать и масштабировать независимо.

3. Монолит: Плюсы и минусы
Плюсы:
🔹 Простота разработки, тестирования и развертывания — отлично подходит для небольших команд и проектов
🔹 Более простая отладка, поскольку все находится в одном месте
🔹 Немного более высокая производительность для внутренней коммуникации

Минусы:
🔹 Трудно масштабировать отдельные функции; необходимо масштабировать все приложение
🔹 Сильная связанность — изменения в одной части могут повлиять на всю систему
🔹 Трудно самостоятельно внедрять новые технологии или реорганизовывать отдельные компоненты
🔹 Риск полного отказа в случае выхода из строя одного компонента

4. Микросервисы: Плюсы и минусы
Плюсы:
🔹 Слабосвязанные сервисы могут обновляться, развертываться или масштабироваться независимо.
🔹 Организация на основе бизнес-возможностей, что позволяет создавать специализированные команды разработчиков, которые занимаются отдельными компонентами независимо друг от друга
🔹 БОлее лучшая масштабируемость и устойчивость: сбой в одной службе не приводит к сбою всего приложения.
🔹 Хорошо работает с облачными и CI/CD-конвейерами.

Минусы:
🔹 Более сложная разработка, тестирование и отладка из-за распределенной природы.
🔹 Требует надежного DevOps, мониторинга и межсервисного взаимодействия.
🔹 Более высокие первоначальные затраты на настройку и инфраструктуру.

5. Когда что выбирать?
🔹 Монолит: лучше всего подходит для небольших проектов, MVP или команд, впервые работающих с распределенными системами.
🔹 Микросервисы: идеально подходят для крупных, сложных или быстро развивающихся приложений, где приоритетами являются масштабируемость, устойчивость и независимое развертывание.

👉 Монолиты предлагают простоту и скорость для небольших проектов, в то время как микросервисы обеспечивают гибкость и масштабируемость для сложных современных приложений. Правильный выбор зависит от размера вашего проекта, опыта команды и долгосрочных целей.
🔥20👍42🏆1
Два дня назад в облачных сервисах Google произошел крупный глобальный сбой. Как сообщили в компании, причиной сбоя стал нулевой указатель - отсутствовала обработка на нулевой указатель, который допускался данным кодом. ПРичем ошибка произошла в новом коде, развертывание которого началось 29 мая 2025 года 🤔

https://status.cloud.google.com/incidents/ow5i3PPK96RduMcb1SsW
👏23😁13😢4🤣3🔥2
В руководство по языку Go добавлена серия статей про Пакеты и модули
https://metanit.com/go/tutorial/5.1.php
#go #golang
15🔥3❤‍🔥2
Шпаргалка ко командар Docker
🔥23🍾6❤‍🔥1🏆1
Channel name was changed to «METANIT.COM»
url shortener is easy.jpeg
243.9 KB
Вкратце схема по созданию сократителя ссылок
👍23😁2🏆2🔥1🙉1
Управление памятью Java: Сборка мусора

𝟏) Что такое сборка мусора
Сборка мусора (GC) — это автоматизированный процессдля освобождения памяти путем удаления объектов, которые больше не нужны или на которые не ссылается приложение. Это помогает предотвратить утечки памяти и обеспечивает эффективную работу приложения.

𝟐) Как она работает?
В основе сборки мусора в Java лежит алгоритм Mark and Sweep (отметить и убрать):

🔹𝗠𝗮𝗿𝗸: GC начинает с корневых ссылок (таких как статические переменные, активные потоки и стеки методов) и помечает все достижимые объекты как «используемые».
🔹𝗦𝘄𝗲𝗲𝗽: Затем GC сканирует кучу на предмет объектов, не помеченных как «используемые», и освобождает их память, делая ее доступной для новых выделений.

𝟑) Когда выполняется сборка мусора?
Сборщик мусора может быть запущен автоматически JVM в следующих случаях:
🔹 Куча заполнена или близка к заполнению.
🔹 Куча старого поколения достигает порога.
🔹 Область памяти PermGen/Metaspace заполнена (в зависимости от версии Java).
🔹 Вручную вызван метод System.gc()

𝟒) Сборка мусора для поколений
Современные JVM делят кучу на поколения (молодые, старые и иногда ряд других). Большинство объектов умирают молодыми, поэтому GC фокусируется на молодом поколении для частой и быстрой очистки, в то время как старые объекты собираются реже, но более тщательно.

𝟓) Оптимизация
После очистки некоторые сборщики уплотняют память, перемещая активные объекты вместе, что снижает фрагментацию и ускоряет выделение памяти для новых объектов.

𝟔) Почему это важно?
Автоматическая сборка мусора освобождает разработчиков от ручного управления памятью (в отличие от C/C++), уменьшая количество ошибок, таких как утечки памяти и висячие указатели, и позволяя вам сосредоточиться на создании функций, а не на отслеживании памяти.

#java
👍16🔥53
This media is not supported in your browser
VIEW IN TELEGRAM
Сравнение дизайна Liquid Glass («Жидкое стекло») на разных версиях iOS
😐27🤷‍♂13🤮7🤩6🔥4👍2
Шпаргалка по базовому SQL #sql
9🔥3🥰1
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
🔥9👍3👏1🏆1
Управление памятью. Стек и куча (heap) в C и Java
В языке C управление памятью осуществляется с помощью malloc и free.
В Java JVM управляет памятью с помощью сборки мусора.
👍15🤮1
Как происходит выполнение SQL-запроса в базе данных #sql
🔥11👍4🏆1
Запуск ChatGPT загрязнил мир навсегда, как и первые испытания атомного оружия
Запуск ChatGPT от OpenAI 30 ноября 2022 года изменил мир подобно взрыву первой атомной бомбы. Стремительный рост ChatGPT и целая плеяда последовавших генеративных моделей конкурентов уже загрязнили интернет таким количеством ненужного хлама, что это уже тормозит развитие ИИ.
Генеративные модели уже создали большое количество контента — достаточное, чтобы другие ИИ обучались именно на их творениях. В результате это напоминает игру в «испорченный телефон», в которой все игроки стремительно «глупеют». В индустрии такой сценарий развития называют «коллапсом модели».
Проявляется и другой эффект: данные из той версии интернета, которая предшествовала активному росту ChatGPT и других ИИ, стали представлять чрезвычайную ценность.
Сотрудник Центра изучения экзистенциального риска при Кембриджском университете Морис Чиодо заявил, что использование данных, произведенных до 2022 года, позволяет быть уверенным в минимальном наличии «загрязнения» от ИИ. А более поздние данные нельзя назвать «безопасными, хорошими и чистыми»
https://www.theregister.com/2025/06/15/ai_model_collapse_pollution/
👍28😱15🤣84🔥3🤡3😨3🤬1🕊1💯1🗿1