METANIT.COM – Telegram
METANIT.COM
5.86K subscribers
1.67K photos
81 videos
9 files
1.03K links
Канал о программировании и разработке сайта metanit.com
Download Telegram
В России начинают готовить врачей с IT-навыками

Цифровая грамотность становится условием для работы врачом; некоторые вузы в мире и в России начинают готовить медицинские кадры с базовыми IT-навыками, заявил министр здравоохранения РФ Михаил Мурашко.

"Все диагностические приборы, которые мы сегодня используем, или приборы, которые используются для лечения - они совершенно иного формата. Цифровая грамотность - это условие (...). В мире уже ряд вузов и наши начинают готовить самые передовые (медицинские кадры - ИФ) с базовыми IT-навыками, которые будут привносить изменения не только как специалисты-медики, но и IT-специалисты, и у них сегодня кардинальное преимущество", - сказал Мурашко на Всероссийском форуме волонтеров-медиков в четверг.

По его словам, раньше говорили о том, что врачу необходима цифровая грамотность на уровне пользователя. "Сегодня говорить о цифровой грамотности только на уровне пользователя - это неправильно", - отметил министр. Само программирование в настоящее время становится более доступным с использованием искусственного интеллекта, добавил глава Минздрава РФ.
https://www.interfax.ru/russia/1044572

PS. А писать код врачи будут также понятно, как они пишут рецепты
😁27😱6🤡4🤣4👍1💩1
22 базовых шаблона проектирования облачных систем

Шаблоны обеспечения доступа

1. Предохранитель (Circuit Breaker)
Останавливает сервис от повторных попыток выполнения неудачной операции.

2. Повтор (Retry)
Позволяет приложению обрабатывать временные сбои при попытке подключения к сервису или сетевому ресурсу.

3. Регулирование нагрузки (Throttling)
Контролирует потребление ресурсов, используемых экземпляром приложения, отдельным клиентом или целым сервисом.

4. Мониторинг работоспособности (Health Endpoint Monitoring)
Отслеживает состояние приложения и его компонентов.

5. Выравнивание нагрузки на основе очереди (Queue-Based Load Leveling)
Использует очередь как буфер между задачей и сервисом, который она вызывает.

6. Супервизор планировщика агентов (Scheduler Agent Supervisor)
Координирует набор действий в распределённом наборе сервисов и других удалённых ресурсов.

Шаблоны управления данными

7. Кэширование по требованию (Cache-Aside)
Загружает данные по запросу из хранилища данных в кэш.

8. CQRS
Разделяет операции чтения данных от операций обновления данных с помощью отдельных интерфейсов.

9. Event Sourcing
Использует хранилище только для добавления записей, чтобы фиксировать полную серию событий, описывающих действия над данными в домене.

10. Materialized View
Создаёт предварительно заполненное представление данных в средах, где исходные данные не подходят для запросов.

11. Шардинг (Sharding)
Разделяет хранилище данных на набор горизонтальных разделов или шардов.

12. Valet Key
Использует токен или ключ, который предоставляет клиентам ограниченный прямой доступ к определённому ресурсу или сервису.

Шаблоны проектирования и реализации

13. Посредник (Ambassador)
Использует вспомогательный сервис, который отправляет сетевые запросы от имени потребительского сервиса или приложения.

14. Anti-corruption Layer
Реализует фасад между новыми и устаревшими приложениями.

15. Бэкенды для фронтендов (BFF)
Создаёт отдельные бэкенд-сервисы для использования конкретными фронтенд-приложениями или интерфейсами.

16. Консолидация вычислительных ресурсов (Compute Resource Consolidation)
Объединяет несколько задач или рабочих нагрузок на меньшее количество вычислительных ресурсов.

17. Внешнее хранилище конфигурации (External Configuration Store)
Перемещает информацию о конфигурации из пакета развёртывания приложения в централизованное хранилище.

18. Gatekeeper
Защищает бэкенд-сервисы и API от запросов из разных источников (CORS), не имеющих действительных токенов аутентификации.

19. Sidecar
Развёртывает компоненты приложения в отдельный процесс или контейнер для обеспечения изоляции и инкапсуляции.

20. Strangler Fig
Постепенно мигрирует устаревшую систему путём постепенной замены определённых функциональных элементов новыми приложениями и сервисами.

Шаблоны обмена сообщениями

21. Конкурирующие потребители (Competing Consumers)
Позволяет нескольким параллельным потребителям обрабатывать сообщения, полученные по одному каналу обмена сообщениями.

22. Очередь приоритетов (Priority Queue)
Обрабатывает сообщения на основе их приоритета.
6💘3🔥1👏1
Буферизация страниц данных MySQL и Postgres

Движок InnoDB в MySQL использует подход, обеспечивающий больший контроль: с помощью innodb_flush_method='O_DIRECT' он может обойти большую часть накладных расходов на кэш страниц ОС, предпочитая управление самостоятельно. innodb_buffer_pool_size определяет объём оперативной памяти, используемый для этого кэша. На выделенных серверах баз данных этот размер часто составляет 70 %+ от общего объёма оперативной памяти.
Он делит это пространство на несколько подэкземпляров буфера, каждый из которых поддерживает двухчастный список LRU-страниц: список новых страниц и список старых страниц. Новые страницы попадают в старый список и должны сохраняться без вытеснения в течение определённого времени (innodb_old_blocks_time), прежде чем им будет разрешено попасть в список новых страниц. Это предотвращает перегрузку при массовых операциях, таких как сканирование таблиц.

Postgres применяет подход, реализующий относительно более простой кэш, полагаясь при этом на кэш страниц ОС для управления загрузкой и извлечением страниц из оперативной памяти. Структура shared_buffers управляет размером и часто устанавливается на уровне ~30% от доступной оперативной памяти, оставляя достаточно места для кэша страниц ОС.
Postgres использует алгоритм «часовой очистки» для вытеснения. Каждая страница в shared_buffers ведёт счётчик, который увеличивается при использовании (до определённого предела) и уменьшается при заполнении. Когда счётчик ссылок достигает нуля, страница может быть заменена другой страницей.
8🔥1👏1
Иллюстрация к предыдущему посту
5🔥2🥰1
Вице-президент по безопасности компании Anchore Джош Брессерс проанализировал данные проекта ecosystems и пришёл к выводу, что большинство опенсорс-проектов поддерживается одиночными разработчиками.
ecosystems каталогизирует проекты с открытым исходным кодом. Сейчас в базе данных сайта насчитывается 11,8 млн проектов. Около 7 млн из них разработчики поддерживают в одиночку. Существуют проекты и с сотнями сопровождающих, но их число гораздо ниже.

На основе анализа проектов NPM выяснилось, что множество проектов созданы одним человеком. Если говорить о пакетах с более чем 1 млн загрузок в этом месяце, то у половины из них всего один сопровождающий. Таким образом, примерно половину из 13 тысяч самых скачиваемых пакетов NPM курируют разработчики-одиночки.
Всего в экосистеме NPM с 4 млн проектов насчитали около 900 тысяч сопровождающих.
https://opensourcesecurity.io/2025/08-oss-one-person/

На первом графике количество проектов и количетсво их поддерживающих, второй график - для пакетов с более 1 млн загрузок
❤‍🔥9👏4🐳4
Упрощенная структура ядра Linux #linux
👍10🤓4🔥2
Процесс обновления Windows в 90-х (судя по ссылке, в Windows 95)
Как по мне, раньше процесс обновления был лучше.
🔥28😁16👍7522👏1🤩1😭1
REST vs GraphQL
(продолжение в следующем посте)
🥴73👍2👏1
REST vs GraphQL
(продолжение предыдущего поста)

Что такое RESTful API?

Representational State Transfer (REST) — это архитектурный стиль для создания API. Он использует HTTP-методы, такие как GET, POST, PUT и DELETE, для взаимодействия с ресурсами, которые идентифицируются по URL-адресам.

Как работает REST

* Клиент отправляет HTTP-запрос на определённый эндпоинт (например, /users).
* Сервер обрабатывает запрос и возвращает ответ в формате JSON или XML.
* Каждый запрос является независимым и не сохраняет состояние.

Преимущества REST

* Простота и широкое распространение.
* Использование стандартных HTTP-методов.
* Лёгкость масштабирования и кэширования.
* Хорошая совместимость с веб- и мобильными приложениями.

Недостатки REST

* Избыточный запрос данных: клиенты могут получать больше данных, чем необходимо.
* Недостаточный запрос данных: может потребоваться несколько запросов для получения всех необходимых данных.

Что такое GraphQL?

GraphQL — это язык запросов для API, разработанный компанией Facebook. Он позволяет клиентам запрашивать именно те данные, которые им необходимы с сервера.

Как работает GraphQL

* Клиент отправляет запрос, указывая точные необходимые поля.
* Сервер отвечает только запрошенными данными в структурированном формате.
* Один запрос может получить данные из нескольких источников.

Преимущества GraphQL

* Отсутствие избыточного или недостаточного запроса данных.
* Гибкие и эффективные запросы.
* Строго типизированная схема для валидации.
* Отлично подходит для сложных приложений.

Недостатки GraphQL

* Более сложная реализация.
* Требует настройки схемы.
* Кэширование сложнее по сравнению с REST.

REST против GraphQL

* REST: ориентирован на ресурсы, использует несколько эндпоинтов.
* GraphQL: ориентирован на запросы, использует один эндпоинт.
* REST: может требовать несколько вызовов для получения сложных данных.
* GraphQL: получает все необходимые данные за один запрос.
👍108👏1
Управление доступом в Linux

Когда пользователь входит в систему, процесс аутентификации устанавливает идентификатор пользователя (UID) и идентификатор группы (GID), а также запускает оболочку пользователя.

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

Типы идентификаторов
- Реальный: UID и GID — это пользователь и группа, владеющие процессом.
- Эффективный: EUID и EGID — используются ядром для контроля доступа к объектам, не являющимся файлами.
- Сохранённый: SUID и SGID — сохраняют исходный EUID, позволяя привилегированному процессу переключиться обратно.
- Файловая система: FSID и FSGID — используются ядром для контроля доступа к файловым объектам (обычно те же, что и EUID/EGID).
- Дополнительные GID: GID, используемые для файлового доступа.
👍7🔥3🥰1
Руководитель Nvidia Дженсен Хуанг в интервью высказал мнение, что ИИ "вероятно" приведет к четырехдневной рабочей неделе. Его логика — как и в прошлые индустриальные революции, рост производительности меняет социальные привычки, поэтому мы уже видели переход с 7 на 6, а затем на 5 дней. Благодаря автоматизации экономика и производительность вырастут.

При этом Хуанг считает, что в оставшиеся 4 рабочих дня люди станут даже более "занятыми", чем сейчас. ИИ будет брать на себя значительную часть рутины, поэтому работники смогут чаще и быстрее браться за новые идеи.

Хуанг предупреждает, что ИИ поменяет почти каждую профессию, причем некоторые исчезнут полностью, но на их место придут другие. Он уверен, что качество жизни в любом случае со временем улучшится.
https://www.foxbusiness.com/video/6377597758112
🤡27👍9🤷‍♂3🌭3🙈31
Добавлена новая статья про Локализацию приложений Android на разные языки
https://metanit.com/kotlin/jetpack/11.6.php
#kotlin #android #compose
8
В кампусе Microsoft в Кремниевой долине скончался 35-летний инженер программного обеспечения Пратик Пандей. По словам его семьи, мужчина часто работал допоздна и много перерабатывал. Судмедэксперты пока не установили причину гибели Пандея.

Microsoft отказалась комментировать сообщение о смерти своего инженера на рабочем месте и продолжает расследование кончины сотрудника.

Пандей работал над продуктом Microsoft Fabric, который используется для анализа данных. Специалист присоединился к Microsoft в 2020 году, а до этого он работал в Walmart, Apple и других компаниях.
https://www.bloomberg.com/news/articles/2025-08-28/microsoft-engineer-pratik-pandey-dies-on-silicon-valley-campus
🫡45🤯11😢83
Процесс работы Docker #docker
👍9
Задержка убивает приложение
(продолжение в следующем посте)
👍3
Задержка убивает приложение
(продолжение предыдущего поста)

5 проверенных способов для снижения задержки:

1. Оптимизируйте запросы к базе данных
Один плохо написанный запрос может добавить 500 мс задержки, и вы даже не заметите этого. Умножьте это на тысячи запросов — и получите катастрофу.

Медленные запросы = медленный продукт.
* Прекратите использовать SELECT *.
* Добавьте индексы.
* Избавьтесь от проблемы N+1.
* Измеряйте, не гадайте (EXPLAIN — ваш лучший инструмент).

2. Сократите сетевые переходы
Каждый раз, когда запрос проходит через Service A → Service B → Service C → Service D...
Вы добавляете задержку.

* Объединяйте мелкие сервисы там, где это имеет смысл.
* Проверьте подход backend-for-frontend (BFF).

3. Кешируйте часто используемые данные
Если данные не меняются, зачем запрашивать их снова?
Держите их в памяти. Подходящие инструменты: cессииа, каталоги, конфигурация. Отправляйте быстро.
Устаревший кеш — это плохо. Но чаще отсутствие кеша — ещё хуже.

4. Группируйте и параллелизуйте запросы
Задержка накапливается, когда вы отправляете несколько маленьких запросов последовательно.
Не делайте 10 запросов для 10 элементов.
Группируйте их.
Или используйте параллельные запросы.
Меньше запросов. Быстрые результаты.

5. Сократите передачу данных
Отправка избыточных данных — это как доставка грузовика, когда нужен только рюкзак.
* Удалите неиспользуемые поля.
* Сжимайте ответы.
* Используйте пагинацию.
* Оптимизируйте изображения.
👏13👍7🔥432😁1🤓1
Сравнение трех ключевых компонента в архитектуре веб-приложений: Load Balancer (балансировщик нагрузки), Reverse Proxy (обратный прокси) и API Gateway (шлюз API).
(продолжение в следующем посте)
👍2🔥1👏1
Сравнение трех ключевых компонента в архитектуре веб-приложений: Load Balancer (балансировщик нагрузки), Reverse Proxy (обратный прокси) и API Gateway (шлюз API).
(продолжение предыдущего поста)
Их основные характеристики:

### Load Balancer (Балансировщик нагрузки)
- Назначение: Распределяет трафик равномерно между серверами для повышения эффективности.
- Уровень работы: Работает на уровне 4 (TCP) или 7 (HTTP/HTTPS).
- Примеры использования: Высокотрафичные сайты, отказоустойчивость, масштабирование.
- Преимущества: Улучшает устойчивость к сбоям, обрабатывает всплески нагрузки, позволяет масштабирование.
- Недостатки: Может стать единой точкой отказа.
- Примеры: HAProxy, AWS ELB, Nginx.

### Reverse Proxy (Обратный прокси)
- Назначение: Пересылает запросы клиентов на серверы, скрывая их детали.
- Уровень работы: Часто работает на уровне 7 (HTTP/HTTPS).
- Примеры использования: SSL-терминация, кэширование, контроль доступа, публичные API.
- Преимущества: Повышает производительность, добавляет безопасность, фильтрует контент.
- Недостатки: Добавляет задержку сети.
- Примеры: Nginx, Apache HTTP Server.

### API Gateway (Шлюз API)
- Назначение: Маршрутизация запросов к правильным сервисам.
- Уровень работы: Работает на уровне 7 (HTTP/HTTPS).
- Примеры использования: Микросервисы, мобильные API.
- Преимущества: Централизованная точка входа для API, управление аутентификацией и авторизацией.
- Недостатки: Добавляет сложность и может стать узким местом.
- Примеры: Kong, AWS API Gateway, Apigee, Tyk.
9🔥1👏1
Шпаргалка по формату команды cron в Linux #linux
👍3🔥1👏1
Разработчики старшего возраста в восторге от программирования с использованием ИИ

Согласно июльскому опросу 791 разработчика из США, проведённому платформой облачных сервисов Fastly, около трети разработчиков старшего возраста с опытом работы более 10 лет используют инструменты генерации кода с использованием ИИ для создания более половины программного кода, по сравнению с 13% разработчиков с опытом менее двух лет.

Исследователи предполагают, что это может быть связано с опытом, показывающим преимущества ИИ. Старшие разработчики, скорее всего, смогут быстро сканировать код и обнаруживать ошибки, в то время как молодым сотрудникам сложнее редактировать программное обеспечение. Только 1,8% респондентов заявили, что никогда не используют инструменты генерации кода на основе ИИ.

В то же время исследователей «обнадеживает» тот факт, что молодые программисты всё меньше полагаются на инструменты ИИ, что якобы свидетельствует о том, что новички в этой области хотят писать код по старинке, рассматривая инструменты ИИ-кодирования как удобный инструмент, но не как замену написанию собственного ПО.

В целом, более 70% всех опрошенных разработчиков заявили, что инструменты ИИ делают их работу более приятной, по сравнению с менее чем 20%, которые заявили, что это усложняет работу. Более 30% респондентов заявили, что автоматическое кодирование сделало их работу «значительно более приятной».

Ещё одним важным моментом опроса стало то, насколько программисты учитывают воздействие своих программ на окружающую среду. Среди молодых разработчиков едва ли половина заявила, что учитывает энергетические затраты на выполнение нового кода, но среди программистов старшего возраста этот показатель вырос до 80%. Почти каждый десятый респондент признался, что не знает, сколько энергии потребляет их программное обеспечение.
https://www.theregister.com/2025/08/28/older_developers_ai_code/

PS. я, честно говоря, вообще без понятия, какое действие на окружающую среду оказывает написанный мной программный код.
🤡11👍6😁4🤔2🔥1👨‍💻1