METANIT.COM
Відкрити в Telegram
Канал о программировании и разработке сайта metanit.com
Показати більше6 083
Підписники
Немає даних24 години
-77 днів
-5530 днів
Архів дописів
6 083
Сравнение СУБД
(продолжение предыдущего поста)
Ряд характеристик СУБД могут быть критически важными при выборе СУБД для конкретных задач (например, для работы с большими объёмами данных или при необходимости тонкой настройки параметров хранения).
В частности, мы можем сравнить характеристики различных систем управления базами данных (DBMS) по следующим параметрам:
1. Page Size (Default) — размер страницы по умолчанию (в килобайтах, KB), используемый системой для хранения данных.
2. Configurable Range — диапазон размеров страниц, который можно настроить в данной СУБД.
3. Maximum File Size — максимальный размер файла базы данных, поддерживаемый системой (в терабайтах, TB). Указывается ограничение, обусловленное либо файловой системой, либо внутренними ограничениями СУБД.
4. Maximum Pages per File (Approx.) — приблизительное количество страниц, которое может содержать файл базы данных при заданном размере страницы (рассчитывается как максимальный размер файла, делённый на размер страницы).
Данные по СУБД:
- SQL Server:
- Размер страницы по умолчанию: 8 KB.
- Размер страницы фиксирован, не настраивается.
- Максимальный размер файла: 256 TB (ограничение файловой системы, например, NTFS).
- Максимальное количество страниц: 34.36 миллиарда (256 TB / 8 KB).
- MySQL (InnoDB):
- Размер страницы по умолчанию: 16 KB.
- Диапазон настраиваемых размеров: от 8 KB до 64 KB.
- Максимальный размер файла: 256 TB (ограничение файловой системы).
- Максимальное количество страниц: 17.18 миллиарда (256 TB / 16 KB).
- PostgreSQL:
- Размер страницы по умолчанию: 8 KB.
- Поддерживаемые размеры: 8 KB, 16 KB, 32 KB и др.
- Максимальный размер файла: 16 TB (например, для файловой системы ext4).
- Максимальное количество страниц: 2.15 миллиарда (16 TB / 8 KB).
- Oracle:
- Размер страницы по умолчанию: 8 KB.
- Диапазон настраиваемых размеров: от 2 KB до 32 KB.
- Максимальный размер файла: 128 TB (ограничение для datafile в версии Oracle 12c+).
- Максимальное количество страниц: 17.18 миллиарда (128 TB / 8 KB).
- SQLite:
- Размер страницы по умолчанию: 4 KB.
- Диапазон настраиваемых размеров: от 512 байт до 64 KB.
- Максимальный размер файла: 140 TB (ограничение для файла базы данных).
- Максимальное количество страниц: 37.25 триллиона (140 TB / 4 KB).
6 083
Реклама для бизнеса любого уровня в Яндекс Директе
Создайте эффективную рекламную кампанию с алгоритмами Яндекс Директа 👌
Начните прямо сейчас ⚡
Зарегистрироваться
#реклама
direct.yandex.ru
О рекламодателе
6 083
Чистая архитектура (Clean Architecture)
(продолжение предыдущего поста)
Чистая архитектура — это подход к проектированию ПО, при котором код организован в виде чётко разделённых слоёв с определёнными обязанностями. Главная цель — сделать приложение удобным для сопровождения, масштабируемым и независимым от конкретных библиотек и фреймворков.
Архитектура обычно делится на четыре основных слоя (от внутреннего к внешнему):
1. Domain (Домен)
- Назначение: содержит ключевые бизнес-правила и логику предприятия — "сердце" приложения.
- Компоненты:
- Entities (сущности) — основные объекты бизнес-логики (например, пользователи, заказы).
- Value Objects (объекты-значения) — неизменяемые данные, характеризующие сущности.
- Exceptions (исключения) — обработка ошибок, связанных с бизнес-логикой.
- Domain Events (доменные события) — уведомления о важных изменениях в состоянии домена.
- Enums (перечисления) — набор констант для типизации данных.
- Repositories (репозитории) — абстракции для доступа к данным, отделяющие домен от инфраструктуры.
- Особенность: этот слой не зависит от внешних технологий (баз данных, фреймворков).
2. Application (Прикладной слой)
- Назначение: реализует сценарии использования (use cases) и координирует работу домена.
- Компоненты:
- Use Cases (сценарии использования) — логика взаимодействия пользователя с системой (например, «создать заказ»).
- Application Services (сервисные компоненты) — связующее звено между use cases и доменом.
- Commands (команды) — запросы на изменение состояния системы.
- Queries (запросы) — получение данных из системы.
- External Interfaces (внешние интерфейсы) — точки взаимодействия с внешними сервисами.
- Особенность: зависит от домена, но не от инфраструктуры.
3. Infrastructure (Инфраструктурный слой)
- Назначение: отвечает за внешние зависимости — базы данных, API, облачные сервисы и т. д.
- Компоненты:
- Databases (базы данных) — хранение данных.
- Identity Providers (провайдеры аутентификации) — управление учётными записями.
- HTTP Clients (HTTP-клиенты) — взаимодействие с внешними API.
- Cloud Storage (облачное хранилище) — хранение файлов.
- Email (электронная почта) — отправка уведомлений.
- Message Brokers (брокеры сообщений) — асинхронная обработка событий.
- Repository Impl. (реализации репозиториев) — конкретные классы для работы с данными (например, ORM).
- Особенность: реализует интерфейсы, определённые в прикладном слое.
4. Presentation (Представления/Интерфейс)
- Назначение: точка входа в систему — обрабатывает пользовательские запросы и возвращает ответы.
- Компоненты:
- API Endpoints (точки API) — URL-адреса для взаимодействия с приложением.
- Services (DI) — сервисы, управляемые контейнером внедрения зависимостей (Dependency Injection).
- gRPC, GraphQL, ASP.NET — технологии для построения API.
- Middleware (промежуточное ПО) — логика, выполняемая до/после обработки запроса (аутентификация, логирование).
- Exceptions (исключения) — обработка ошибок на уровне интерфейса.
- Особенность: зависит от прикладного слоя, но не знает о домене напрямую.
### Ключевые принципы
- Инверсия зависимостей (Dependency Inversion): внутренние слои (домен, приложение) не зависят от внешних (инфраструктура, представление). Зависимости направлены внутрь.
- Слабая связанность: изменение одного слоя минимально влияет на другие.
- Тестируемость: домен и прикладной слой легко тестируются, так как не зависят от внешних систем.
- Гибкость: можно менять технологии (например, базу данных или фреймворк) без переписывания бизнес-логики.
В итоге чистая архитектура обеспечивает:
- чёткое разделение ответственности между слоями;
- независимость бизнес-логики от инфраструктуры;
- удобство тестирования и поддержки кода;
- возможность масштабирования и замены технологий.
6 083
Защитите интернет-магазин от взломов и других киберугроз
Только в прошлом году количество кибератак на ecommerce выросло с 1,6 до почти 3,9 млн. Такие ситуации приводят к остановке веб-сайтов, а следовательно, к потере прибыли и доверия клиентов.
Стандартные межсетевые экраны пропускают часть веб-угроз, поэтому для защиты от распространенных уязвимостей из списка OWASP Top 10, DDoS-атак уровня L7 и не только лучше выбрать специализированное решение WAF.
WAF Solar MSS мгновенно реагирует на угрозы и блокирует их, а еще помогает предотвратить утечки данных. К тому же это единственное на рынке предложение с финансовой гарантией.
Подробнее
#реклама 16+
rt-solar.ru
О рекламодателе
6 083
Краткий совет по Linux:
Работаете с CSV-файлами в терминале?
Вы можете сделать их удобочитаемыми, аккуратно выровняв столбцы относительно столбцов:
$ cat inventory.csv | column -t -s,
Флаг -s указывает, что в качестве разделителей следует использовать запятые, а -t форматирует вывод в чистую таблицу.
Идеально подходит для быстрой проверки данных без открытия электронной таблицы.
#linux
6 083
Гарантия возврата на Яндекс Афише
Даже если событие только через полгода, покупайте билеты спокойно с Гарантией возврата — вернём всю сумму и сервисный сбор, если поменяете планы.
Подробнее
#реклама 16+
promo.afisha.yandex.ru
О рекламодателе
6 083
Как работает Firewall (межсетевой экран)
(продолжение предыдущего поста)
Firewall фильтрует входящий и исходящий сетевой трафик, защищая устройства и сеть от угроз: неавторизованного доступа, вирусов, фишинга и других атак. Работает по заданным правилам, разрешая или блокируя соединения.
Два основных типа Firewall:
- Network Firewall (сетевой межсетевой экран):
- располагается между Интернетом и локальной сетью (перед роутером);
- работает на уровнях 3–4 модели OSI (сетевой и транспортный уровни);
- защищает всю сеть целиком, фильтруя трафик, поступающий извне;
- может быть аппаратным, виртуальным или облачным решением.
- Host-based Firewall (межсетевой экран на уровне хоста):
- устанавливается непосредственно на отдельные устройства (например, Desktop — рабочая станция, Server — сервер);
- работает на уровнях 3–7 модели OSI;
- защищает только конкретное устройство, на котором установлен;
- контролирует трафик, направленный к устройству и от него.
Критерии фильтрации трафика
Firewall анализирует трафик по следующим параметрам (указаны слева на схеме):
- IP-адреса — проверяет, разрешены ли соединения с определённых IP-адресов;
- доменные имена — блокирует или разрешает доступ к конкретным доменам;
- протоколы (например, TCP, UDP) — фильтрует трафик по используемым сетевым протоколам;
- программы — контролирует, какие приложения могут выходить в сеть;
- порты — разрешает или запрещает соединения на определённых портах (например, порт 80 для HTTP);
- ключевые слова — фильтрует трафик по содержимому (например, блокирует запросы с подозрительными словами).
Пример работы правил (Example Rules)
На схеме приведён пример правил фильтрации:
- ALLOW TCP ANY:80 — разрешает TCP-трафик на порт 80 (обычно используется для HTTP-трафика);
- ALLOW TCP ANY:25 — разрешает TCP-трафик на порт 25 (используется для SMTP — отправки почты);
- DENY UDP ANY:23 — запрещает UDP-трафик на порт 23 (часто используется для небезопасного протокола Telnet);
- ALLOW TCP ANY:2389 — разрешает TCP-трафик на порт 2389 (может использоваться для специфических сервисов).
Последовательность работы
1. Трафик поступает из Интернета → сначала проходит через Network Firewall.
2. Network Firewall анализирует пакеты данных по заданным правилам: проверяет IP-адреса, порты, протоколы и другие параметры.
3. Если трафик разрешён — он пропускается дальше, к роутеру и устройствам в локальной сети. Если запрещён — блокируется.
4. Роутер распределяет разрешённый трафик между устройствами в локальной сети.
5. На каждом устройстве (Desktop, Server) работает Host-based Firewall, который дополнительно фильтрует трафик, поступающий непосредственно на это устройство.
6. Устройства взаимодействуют с сетью, пропуская только разрешённые соединения и блокируя потенциально опасные.
В итоге Firewall создаёт многоуровневую защиту:
- на сетевом уровне (Network Firewall) — защищает всю инфраструктуру от внешних угроз;
- на уровне отдельных устройств (Host-based Firewall) — предотвращает несанкционированный доступ к конкретным хостам.
6 083
Как найти работу в IT | Советы от рекрутера
Меня зовут Гелия – я опытный IT-рекрутер.
✨Что ты найдешь в этом канале:
– Советы как быстрее найти работу в IT (от джуна до синьора);
– Свежие вакансии для начинающих и стажировки в IT и Digital;
– Сплетни и слухи о компаниях в рубрике "Всратые работодатели".
Подписаться
#реклама
О рекламодателе
6 083
Формулы переносов по оси X и Y (Трансляции/переносы или Translations):
- g(x) = f(x) + a — сдвиг графика функции f(x) вверх вдоль оси Oy на величину a.
- g(x) = f(x) – a — сдвиг графика функции f(x) вниз вдоль оси Oy на величину a.
- g(x) = f(x – a) — сдвиг графика функции f(x) вправо вдоль оси Ox на величину a.
- g(x) = f(x + a) — сдвиг графика функции f(x) влево вдоль оси Ox на величину a.
6 083
Скидка до 40% на средства мужского ухода Gillette
Gillette - уверенность начинается здесь.
Купить
#реклама
market.yandex.ru
О рекламодателе
6 083
Что такое ACID
(продолжение предыдущего поста)
ACID - набор свойств, которые обеспечивают надежность и целостность данных при обработке транзакций в системах управления базами данных (СУБД). ACID расшифровывается как Atomicity (атомарность), Consistency (согласованность), Isolation (изолированность), Durability (долговечность)
1. Atomicity (Атомарность) — «Всё или ничего» (верхний левый угол):
* Гарантирует, что транзакция либо выполняется полностью, либо не выполняется вовсе.
* Если транзакция не может быть завершена, СУБД откатывает все изменения (возвращает базу данных к предыдущему состоянию).
* На схеме показан пример транзакции с операциями
write 1, write 2, write 3, write 4, которые либо все фиксируются (commit all), либо отменяются (or nothing).
2. Consistency (Согласованность) — «Сохранение инвариантов базы данных» (верхний правый угол):
* Обеспечивает, что каждая транзакция переводит базу данных из одного согласованного состояния в другое.
* Транзакции не нарушают правила целостности данных.
* На схеме показано, как база данных переходит из consistent state A (согласованное состояние A) в consistent state B (согласованное состояние B) через выполнение транзакций.
3. Isolation (Изолированность) — «Параллельные транзакции изолированы друг от друга» (нижний левый угол):
* Гарантирует, что каждая транзакция выполняется независимо от других, без видимости промежуточных изменений.
* Это предотвращает конфликты между транзакциями.
* На схеме изображены две транзакции (Transaction A и Transaction B), которые выполняются изолированно, не влияя друг на друга.
4. Durability (Долговечность) — «Данные сохраняются после фиксации транзакции даже при сбое системы» (нижний правый угол):
* Гарантирует, что изменения, внесённые транзакцией, сохраняются и становятся постоянными.
* Даже если система выйдет из строя после фиксации транзакции, данные останутся доступными.
* На схеме показан процесс:
1. Фиксация транзакции (commit).
2. Репликация данных на копии базы (replica a, replica b), что обеспечивает сохранность информации.
#database #sql6 083
Запустите рекламу в телеграм-каналах с Яндекс Директом
Перфоманс-реклама теперь в телеграм-каналах ⚡
Яндекс Директ знает, как привлечь целевую аудиторию 💰👌
Попробовать
#реклама
yandex.ru
О рекламодателе
6 083
RAG - это генерация с дополнением посредством поиска *(Retrieval Augmented Generation)*
Вот как это работает на практике:
Knowledge Sources (Источники знаний) → PDF‑файлы, документы, базы данных
Embeddings (Векторные представления) → ваши данные разбиваются на фрагменты и преобразуются в векторы
Vector Database (Векторная база данных) → хранит всё для быстрого поиска
Retrieval (Поиск) → находит наиболее релевантный контекст (топ‑*k* результатов)
Augmentation (Дополнение) → запрос + контекст = более эффективный промпт
Generation (Генерация) → выдаёт точные ответы, основанные на контексте
