en
Feedback
METANIT.COM

METANIT.COM

Open in Telegram

Канал о программировании и разработке сайта metanit.com

Show more
6 083
Subscribers
No data24 hours
-77 days
-5530 days
Posts Archive
Нейросети позволяют программистам работать быстрее, но при этом пишут в 3-4 раза больше кода и создают в 10 раз больше проблем безопасности Компания Apiiro, занимающаяся безопасностью приложений, сообщает, что проанализировала код из десятков тысяч репозиториев и код нескольких тысяч разработчиков, связанных с предприятиями из списка Fortune 50, чтобы лучше понять влияние помощников ИИ-разработчиков кода, таких как Claude Code от Anthropic, GPT-5 от OpenAI и Gemini 2.5 Pro от Google. Компания обнаружила, что разработчики, использующие ИИ, создают в 3-4 раза больше кода, чем их коллеги, работающие без него, но при этом создают в 10 раз больше проблем безопасности. По состоянию на июнь 2025 года код, сгенерированный ИИ, ежемесячно вносил более 10 000 новых «проблем безопасности» в набор данных репозитория Apiiro, что в 10 раз больше, чем в декабре 2024 года, сообщает компания. Помощники ИИ, генерирующие код, также имели тенденцию упаковывать больше кода в меньшее количество запросов на извлечение, что усложняло проверку кода, поскольку предлагаемые изменения затрагивали больше частей кодовой базы. Помощники ИИ-кода не совсем бесполезны. Они сократили количество синтаксических ошибок на 76%, а логических — на 60%, но за счёт более серьёзных потерь — на 322% увеличилось количество путей повышения привилегий и на 153% увеличилось количество архитектурных недостатков. Другими словами, ИИ исправляет опечатки, но создаёт бомбы замедленного действия Анализ Апииро также показал, что разработчики, использующие ИИ, раскрывали конфиденциальные учётные данные и ключи в облаке почти вдвое чаще, чем их коллеги-самоучки. Выводы компании перекликаются с результатами других исследователей. Например, в мае 2025 года учёные из Университета Сан-Франциско, Института искусственного интеллекта Vector (Канада) и Массачусетского университета в Бостоне определили, что итеративное улучшение образцов кода с помощью моделей ИИ снижает безопасность. https://www.theregister.com/2025/09/05/ai_code_assistants_security_problems/

Линус Торвальдс поясняет Биллу Гейтсу, что значит "Vibe" в словосочетании "Vibe Coding" (Very Inefficient But Entertaining -
Линус Торвальдс поясняет Биллу Гейтсу, что значит "Vibe" в словосочетании "Vibe Coding" (Very Inefficient But Entertaining - Очень неэффективно, но занимательно)

9 рекомендаций по работе с Docker, которые помогут оптимизировать работу с контейнерами: (продолжение предыдущего поста) 1. Используйте официальные образы Использование официальных образов Docker обеспечивает безопасность, надежность и регулярные обновления. Пример: FROM node:14-alpine. 2. Используйте конкретные версии Указание конкретной версии образа предотвращает неожиданные изменения. Пример: FROM node:14.17.0-alpine3.13. 3. Многоступенчатые сборки Многоступенчатые сборки уменьшают размер финального образа, исключая инструменты сборки и зависимости. Пример:
   FROM build-image AS build  
   # Build steps  
   FROM production-image  
   COPY --from=build /app /app  
   
4. Используйте файл .dockerignore Файл .dockerignore исключает ненужные файлы из контекста сборки, ускоряя процесс и уменьшая размер образа. Пример содержимого:
  
   node_modules  
   npm-debug.log  
   
5. Наименьшие привилегии Запуск приложений с правами непривилегированного пользователя повышает безопасность. Пример:
   RUN useradd -m myuser  
   USER myuser  
   CMD node index.js  
   
6. Используйте переменные окружения Использование переменных окружения увеличивает переносимость приложения между средами. Пример:
   ENV APP_HOME /app  
   WORKDIR $APP_HOME  
   
7. Порядок инструкций важен для кэширования Порядок инструкций в Dockerfile влияет на эффективность кэширования. Рекомендуется начинать с менее изменяемых команд. Пример:
   FROM debian  
   RUN apt-get update  
   RUN apt-get -y install openjdk ssh vim  
   COPY . /app  
   CMD ["java", "-jar", "/app/target/app.jar"]  
   
8. Имена для образов Назначение имен для образов помогают организовать и управлять образами. Пример:
   LABEL maintainer="name@example.com"  
   LABEL version="1.0"  
   
9. Сканирование образов Проверка образов на уязвимости с помощью команды docker scan помогает предотвратить проблемы безопасности. #docker

9 рекомендаций по работе с Docker, которые помогут оптимизировать работу с контейнерами (продолжение в следующем посте)
9 рекомендаций по работе с Docker, которые помогут оптимизировать работу с контейнерами (продолжение в следующем посте)

9 базовых архитектурных паттернов интеграции систем: (описание к предыдущему посту) 1. Peer-to-Peer (P2P) Децентрализованная сеть, где каждый участник (пир) может быть одновременно отправителем и получателем данных. Пример: обмен файлами через BitTorrent. 2. API Gateway Центральный компонент, который управляет входящими запросами, выполняет маршрутизацию, авторизацию, ограничение скорости и другие задачи. Пример: Spring Cloud Gateway. 3. Pub-Sub (Publish-Subscribe) Модель обмена сообщениями, где издатели отправляют сообщения в темы, а подписчики получают их. Пример: системы уведомлений. 4. Request-Response Классическая модель клиент-сервер, где клиент отправляет запрос, а сервер возвращает ответ. Пример: HTTP-запросы. 5. Event Sourcing Подход, при котором система сохраняет все изменения состояния в виде последовательности событий. Пример: журнал событий для восстановления состояния системы. 6. ETL (Extract, Transform, Load) Процесс извлечения данных из источников, их преобразования и загрузки в хранилище. Пример: миграция данных между системами. 7. Batching Обработка данных пакетами для повышения эффективности. Пример: массовая обработка платежей. 8. Streaming Processing Обработка потоков данных в реальном времени. Пример: анализ логов приложений. 9. Orchestration Управление последовательностью выполнения задач между сервисами. Пример: координация микросервисов в сложной системе.

9 базовых архитектурных паттернов интеграции систем (описание в следующем посте)
9 базовых архитектурных паттернов интеграции систем (описание в следующем посте)

Google Meet перестал работать в России: что дальше? 📞🏃‍♂️ Сперва в Telegram и WhatsApp заблокировали звонки, а теперь и Goo
Google Meet перестал работать в России: что дальше? 📞🏃‍♂️ Сперва в Telegram и WhatsApp заблокировали звонки, а теперь и Google Meet сбоит. Видеозвонки не проходят ни с телефонов, ни с ПК. Для бизнеса это означает: - сорванные онлайн-совещания и встречи с клиентами; - срыв собеседований и переговоров с подрядчиками; - потерю времени и простои в коммуникациях команд; - срочный поиск альтернативы для видеозвонков и онлайн-летучек. Что делать бизнесу, когда зарубежные сервисы один за другим перестают работать в России? ✅ В МТС Линк: видеозвонки, чаты, онлайн-доски и совещания без сбоев и ограничений 40 минут; дата-центры в России, соответствие 152-ФЗ и 149-ФЗ; готовые интеграции; русскоязычная техподдержка 24/7. Проверьте, подходит ли МТС Линк вашей компании Узнать больше #реклама 16+ mts-link.ru О рекламодателе

Шаблон повторных попыток (Retry Pattern) (описание к предыдущему посту) Это один из самых простых способов повысить отказоустойчивость системы. Как это работает: 1. Не выполняйте повторные попытки бесконечно Повторные попытки имеют свою цену. * Слишком мало попыток: вы можете сдаться при временных сбоях (например, кратковременном сетевом сбое). * Слишком много попыток: вы перегружаете систему, увеличиваете время отклика и маскируете реальные проблемы. Практическое правило: обычно оптимальным является 3 попытки. После этого более вероятно, что вы имеете дело с реальным сбоем, а не с временным. 2. Используйте экспоненциальную отсрочку Время повторных попыток важнее их количества. * Без таймата: все неудачные запросы повторяются мгновенно → увеличивается перегрузка системы. * С экспоненциальной отсрочкой (таймаутом): время ожидания увеличивается (например, 1 с → 2 с → 4 с → 8 с), давая системам время на восстановление. Это предотвращает превращение повторных попыток в проблему. 3. Выполняйте повторные попытки только при временных ошибках Не каждая ошибка заслуживает повторной попытки. * Подходящие для повтора: 408 (тайм-аут), 5xx (сервер перегружен). * Неподходящие для повтора: 400 (неверный запрос), 403 (запрещено). Ошибки, подлежащие повторным попыткам, носят временный характер. Ошибки, не подлежащие повторным попыткам, связаны с проблемами проектирования или данных; здесь требуется исправление, а не повторная попытка. Если торговый автомат показывает «временно не работает», попробуйте позже. Если он говорит «вставьте 5 долларов, а не 1», повторная попытка не поможет. 4. Комбинируйте с паттерном Circuit Breaker (предохранитель) Одни только повторные попытки могут вызвать каскадные сбои, если сервис действительно не работает. Circuit Breaker добавляет защиту: * Отслеживает частоту сбоев. * Открывается, когда количество сбоев превышает порог → останавливает повторные попытки на некоторое время. * Закрывается, когда состояние улучшается.

Шаблон повторных попыток (Retry Pattern) (описание в следующем посте)
Шаблон повторных попыток (Retry Pattern) (описание в следующем посте)

Ищу желающих заполнять карточки товаров на ВБ! Работа полностью на удаленке с зп до150 000 рублей в месяц. Без опыта, нужен т
Ищу желающих заполнять карточки товаров на ВБ! Работа полностью на удаленке с зп до150 000 рублей в месяц. Без опыта, нужен только телефон, занятость 3-6 часов в день. Всему обучат на бесплатном курсе и после возьму на работу: ✅ 3 дня уроков по 30 минут ✅ Домашки с проверкой и оплатой бонусами ✅ Плачу 10 тыс за каждую выполненную домашку Все кто пройдет курс, получат сертификат от школы с образовательной лицензией. ⚡ Набор заканчивается завтра. 👍 Для регистрации жмите кнопку "Зарегистрироваться" Зарегистрироваться #реклама 16+ course.wildmanager.ru О рекламодателе

Проект Primes - проект от бывшего инженера Microsoft для вычисления быстроты/эффективности различных языков программирования
Проект Primes - проект от бывшего инженера Microsoft для вычисления быстроты/эффективности различных языков программирования на основе вычисления простых чисел https://github.com/PlummersSoftwareLLC/Primes Результаты по различным языкам и для разных комбинаций и архитектур можно постротеть здесь https://plummerssoftwarellc.github.io/PrimeView/?rc=50&rs=0&fr=&sc=rc&sd=True В целом такие языки C/ C++ / Zig / Rust по тесту являются наиболее быстрыми

В Госдуме опровергли слухи о том, что MAX будет "оформлять доносы" Депутат Немкин заявил, что мессенджер MAX не может оформлять доносы с помощью ИИ "На смартфонах большинства граждан давно установлены сервисы крупнейших компаний и госструктур — Сбер, ВТБ, "Госуслуги". За все годы их работы не было ни одного факта использования встроенного ИИ для "доносов" или отслеживания личных действий пользователей", — добавил Немкин. Как он пояснил, распространение подобных мифов — это способ посеять недоверие к отечественным цифровым продуктам. "На практике же MAX проходит те же самые проверки безопасности и соответствует тем же правилам, что и другие популярные приложения. Его главная задача — обеспечить удобную и защищённую коммуникацию, а не заниматься слежкой", — заключил депутат. https://ria.ru/20250903/max-2039498307.html

Схема работы PostgreSQL, которая включает основные компоненты и процессы системы (продолжение предыдущего поста) 1. Web Application: Веб-приложения подключаются к PostgreSQL через соединения (Connection 1, Connection 2, Connection 3). Каждое соединение создает фоновый процесс (Background Process), который обрабатывает запросы. 2. Фоновые процессы (Background Processes): - Эти процессы работают в фоновом режиме и выполняют задачи, такие как обработка запросов, управление буферами и синхронизация данных. - Они используют разделяемую память (Shared Memory) для обмена данными между процессами. 3. Разделяемая память (Shared Memory): - Содержит буферы (Shared Buffers), которые используются для временного хранения данных. - Включает WAL Buffers для буферизации журнала предзаписи (Write-Ahead Logging). - Также содержит CLOG Buffers и Temp Buffers для управления транзакциями и временными данными. 4. Вспомогательные процессы (Auxiliary Processes): - BG Writer: Записывает данные из буферов в файлы данных. - WAL Writer: Записывает журнал предзаписи (WAL) на диск. - Auto Vacuum: Автоматически очищает ненужные данные. - Checkpointer: Обеспечивает целостность данных при перезагрузке системы. - Stats Collector: Собирает статистику о работе системы. - SysLogger: Записывает системные журналы. - Archiver: Архивирует данные. - Replication Launcher: Управляет репликацией данных. 5. Postmaster Process: - Главный процесс, который управляет всеми другими процессами и обеспечивает их взаимодействие. 6. Физические файлы: - Data Files: Файлы данных, где хранятся таблицы и другие объекты. - WAL Files: Файлы журнала предзаписи. - Archive Files: Архивированные файлы. - Log Files: Системные журналы.

Схема работы PostgreSQL, которая включает основные компоненты и процессы системы
Схема работы PostgreSQL, которая включает основные компоненты и процессы системы

Распространенные три стратегии замещения кеша: FIFO (First In, First Out) — стратегия, при которой замещается самая старая строка в кэше. Это означает, что данные, которые были добавлены в кэш первыми, будут удалены первыми. LRU (Least Recently Used) — стратегия, при которой замещается строка, к которой дольше всего не было обращений. Это позволяет сохранять наиболее часто используемые данные в кэше. Time Aware LRU — модифицированная версия LRU, которая учитывает время последнего обращения к данным. Это может быть полезно для оптимизации производительности в системах с переменной частотой использования данных.

Вебинар - "Оптимизация маркетинга с помощью нейросетей!" Хватит «гореть» на рутине! ⚡ Узнайте на бесплатном вебинаре, как ИИ
+1
Вебинар - "Оптимизация маркетинга с помощью нейросетей!" Хватит «гореть» на рутине! ⚡ Узнайте на бесплатном вебинаре, как ИИ сократит вашу рутинную работу на 80%. 📅 10 сентября | 19:00 (МСК) Вы получите практические инструкции, как: - Автоматизировать контент и анализ аудитории - Генерировать креативные идеи за секунды - Создать своего AI-аватара без программирования Для маркетологов, SMM- и контент-специалистов. 💰 Подарок после регистрации: «Гид по созданию цифрового аватара». Превратите ИИ в вашего неутомимого помощника! Зарегистрироваться #реклама 16+ ed.bonnieandslide.com О рекламодателе

Как работает модель протокола TCP/IP
Как работает модель протокола TCP/IP

Спрос на разработчиков ПО для роботов в этом году увеличился на 72% на фоне сокращения потребности работодателей в программистах. Всего за I полугодие 2025 г. российские компании в сфере робототехники разместили 5,3 тыс. вакансий, тогда как за весь 2024 г. было опубликовано 9 тыс., а за весь 2023 г. — 6,9 тыс. Зарплатные предложения для специалистов по робототехнике растут вне зависимости от опыта работы Среднее зарплатное предложение увеличилось на 13% и составило 90, 44 тыс. руб. в месяц. Сотрудникам без опыта работы в I полугодии 2025 г. предлагали 71,02 тыс. руб. (плюс 13% год к году); с опытом больше одного года работы — 76,98 тыс. (плюс 8% год к году). Зарплаты, предлагаемые опытным специалистам, выросли намного больше — на 23% для тех, чей опыт составляет более трех лет (до 109, 64 тыс. руб.), и сразу на 47% для имеющих опыт более пяти лет (до 149,03 тыс. руб.). Среди наиболее востребованных навыков у кандидатов являются программирование на языках C++ и Python, математика, навыки работы с искусственным интеллектом, с мехатроникой и управлением. https://www.cnews.ru/news/top/2025-09-03_v_rossii_vzletel_spros_na

Хочется перевернуть календарь, а календаря нет, можно создать себе в консоле простенький календарь на языке Python #python
Хочется перевернуть календарь, а календаря нет, можно создать себе в консоле простенький календарь на языке Python #python

Уровни изоляции в базах данных (продолжение предыдущего поста) 📌 Уровни изоляции — это фундаментальное понятие в управлении параллельным доступом к базам данных. Некоторые предварительные сведения: * ACID — набор свойств, гарантирующих надёжность транзакций в базе данных. * Хотя многие базы данных заявляют о соответствии требованиям ACID, по умолчанию они часто реализуют более слабые уровни изоляции. * Различные приложения предъявляют разные требования к изоляции. * Некоторые могут отдавать приоритет производительности и допускать определённые несоответствия, в то время как другие могут требовать строгой целостности данных. * Параллелизм, то есть одновременное выполнение нескольких транзакций, создаёт серьёзные проблемы для систем данных. * Если не управлять им должным образом, это может привести к таким аномалиям, как: * грязное чтение; * неповторяемое чтение; * фантомное чтение. 📌 Уровни изоляции определяют, насколько транзакция защищена от влияния параллельных транзакций. Давайте поговорим о различных уровнях изоляции: 1. Read Uncommitted (самый низкий уровень изоляции): * транзакции не изолированы друг от друга; * все транзакции могут видеть эффекты других параллельных транзакций, даже если эти транзакции ещё не завершены; * данные, считанные на этом уровне изоляции, могут быть отменены позже, что приводит к грязному чтению. 2. Read Committed: * транзакция, работающая на этом уровне изоляции, не видит «грязных» данных из других транзакций; * видны только зафиксированные данные; * Read Committed обычно использует общие блокировки для считываемых данных; * этот уровень изоляции позволяет избежать грязного чтения, но всё ещё может приводить к неповторяемому чтению (он не гарантирует, что данные, которые вы читаете, останутся неизменными на протяжении всей вашей транзакции). 3. Repeatable Read: * основной принцип Repeatable Read заключается в предоставлении каждой транзакции согласованного моментального снимка базы данных в начале транзакции; * этот снимок подобен замороженной картине базы данных; * любые изменения, внесённые другими транзакциями после этого момента, не видны текущей транзакции до её фиксации. Два способа реализации: * Блокировка чтения — устанавливает общие блокировки на все строки, прочитанные транзакцией. * Управление параллелизмом с несколькими версиями (MVCC) — поддерживает несколько версий каждой строки, причём каждая версия связана с меткой времени или идентификатором транзакции. * Устраняет неповторяемое чтение. 4. Serializable: * этот уровень обеспечивает строжайшую изоляцию транзакций; * он имитирует последовательное выполнение транзакций, как если бы транзакции выполнялись одна за другой, последовательно, а не параллельно; * включает более строгие механизмы блокировки, такие как блокировки диапазона или предикатные блокировки. 📌 Уровни изоляции обеспечивают баланс между согласованностью данных и производительностью. Более высокие уровни изоляции обеспечивают более надёжные гарантии целостности данных, но могут снижать производительность из-за блокировок или сериализации транзакций.