METANIT.COM – Telegram
METANIT.COM
5.9K subscribers
1.68K photos
83 videos
9 files
1.04K links
Канал о программировании и разработке сайта metanit.com
Download Telegram
Представитель ЦБ РФ предложил передать на аутсорсинг в Индию часть российских IT-проектов из-за дефицита квалифицированных кадров и команд разработчиков на рынке России.
Это предложение сделал заместитель начальника Дальневосточного главного управления ЦБ РФ Денис Давыдов на Финансовом конгрессе Банка России.

«Сейчас много говорят у нас, конечно, о существенной нехватке в моменте кадров различных отраслей, особенно о дефиците инженерно‑технических специалистов в России. А вот, например, в Индии уровень безработицы выпускников в технических вузах в последние годы почти достигает 30%. При этом сложившийся на сегодня дифференциал заработных плат, тем более, если говорить о паритете покупательной способности, подталкивает к мысли о том, что здесь могли бы быть какие‑то эффекты кооперации», — рассказал Давыдов.

https://1prime.ru/20250704/indiya-859179950.html
🤡78🤣16👎10🤮6👍1👀1
Топ-15 базовых компонентов проектирования систем
11🥰1👏1
Топ-15 базовых компонентов проектирования систем:

1. Балансировщик нагрузки — распределяет входящий трафик между несколькими внутренними серверами, чтобы ни один из них не был перегружен. Повышает доступность, отказоустойчивость и скорость отклика системы.

2. API Gateway — единая точка входа для всех клиентских запросов в архитектуре микросервисов. Отвечает за маршрутизацию, аутентификацию, ограничение частоты запросов и агрегацию запросов.

3. DNS (Domain Name System) — система доменных имён, преобразующая удобочитаемые доменные имена в IP-адреса.

4. Кэш — хранит часто запрашиваемые данные в оперативной памяти. Существенно снижает задержки и нагрузку на базу данных.

5. CDN (Content Delivery Network) — сеть доставки контента, которая распространяет статический контент (изображения, CSS, JS и т. д.) через пограничные серверы, расположенные ближе к пользователям. Снижает задержки и нагрузку на полосу пропускания, особенно в глобальном масштабе.

6. База данных — основное хранилище данных. Может быть SQL или NoSQL в зависимости от потребностей. Поддерживает структурированные запросы, индексацию, транзакции и надёжность хранения.

7. API — определяет, как сервисы взаимодействуют друг с другом, обычно через HTTP или gRPC. Обеспечивает модульное проектирование и чёткое разделение обязанностей.

8. Микросервисы — разбивает монолитное приложение на независимо развёртываемые сервисы. Повышает гибкость, изоляцию сбоев и масштабируемость.

9. Ограничитель частоты запросов — контролирует количество запросов, которые пользователь или сервис может сделать за определённый промежуток времени. Защищает API от злоупотреблений и обеспечивает справедливое использование.

10. Хранилище объектов — хранит большие двоичные объекты (изображения, видео, резервные копии) с высокой доступностью и надёжностью. Примеры: AWS S3, Google Cloud Storage и др.

11. Очередь сообщений — обеспечивает асинхронную коммуникацию между сервисами через очередь (например, Kafka, RabbitMQ). Помогает разделить системы и справляться с пиковыми нагрузками.

12. Шардинг — разбивает большие наборы данных на несколько баз данных или таблиц. Помогает масштабировать хранилище и улучшать производительность запросов.

13. Репликация — копирует данные с одного узла базы данных на другой. Повышает отказоустойчивость и производительность чтения.

14. Согласованное хеширование — метод распределения данных между узлами с минимальными нарушениями при масштабировании. Широко используется в системах кэширования и распределённого хранения.

15. Система мониторинга — отслеживает состояние системы, собирает логи и метрики, отправляет оповещения о сбоях или аномалиях. Критически важна для наблюдения за системой, отладки и обеспечения бесперебойной работы.
6👍3👏1
This media is not supported in your browser
VIEW IN TELEGRAM
Вкратце о том, как происходит перемножение матриц в GPU
🤩114👍4
В руководство по языку Си добавлена статья про атрибуты и расширение attribute
https://metanit.com/c/tutorial/10.5.php
#c_ansi
👍135👏1
Запись экрана с помощью Python #python
😁20👎8👍6🤮4🔥21👏1
Упаковка и распаковка данных в пакетах при передаче информации по сети
👍10🔥4👏2🤯1💩1
24 наиболее важных математических формул в Data Science
🤔27😨17🔥4🤡3😭21
Архитектура ИИ-агентов
9🤮5🤔4🤡4👍1👎1🌚1🤨1
9 распространенных принципов проектирования программного обеспечения:

1. DRY (Don't Repeat Yourself — Не повторяйтесь):
Избегайте дублирования кода. Храните логику в централизованном месте, чтобы упростить поддержку кодовой базы.

2. KISS (Keep It Simple, Stupid — Будь проще, глупыш):
Стремитесь к простоте в ваших решениях. Избегайте излишнего усложнения и добавления ненужных уровней.

3. YAGNI (You Aren't Gonna Need It — Тебе это не понадобится):
Создавайте только то, что необходимо прямо сейчас. Не тратьте время на гипотетические функции, которые могут никогда не использоваться.

4. LOD (Law of Demeter — Закон Деметры):
Взаимодействуйте только с непосредственными соседями. Не создавайте длинные цепочки вызовов.

SOLID-принципы:

5. SRP (Single Responsibility Principle — Принцип единственной ответственности):
Класс должен иметь только одну ответственность. Делайте каждый компонент сфокусированным и целостным.

6. OCP (Open/Closed Principle — Принцип открытости/закрытости):
Код должен быть открытым для расширения, но закрытым для модификации. Добавляйте новые функции, не изменяя существующую логику.

7. LSP (Liskov Substitution Principle — Принцип подстановки Лисков):
Подклассы должны быть взаимозаменяемы с родительскими классами без нарушения функциональности.

8. ISP (Interface Segregation Principle — Принцип разделения интерфейсов):
Создавайте небольшие, специализированные интерфейсы вместо больших и общих.

9. DIP (Dependency Inversion Principle — Принцип инверсии зависимостей):
Высокоуровневые модули не должны зависеть от низкоуровневых. Оба должны зависеть от абстракций.
👍32🔥135🤡1
Схема, как выбрать подходящий статусный код HTTP
👍29🔥43💩2
«Гугление» убивает креативность

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

В исследовании приняли участие 244 студента, которых случайным образом распределили по группам с доступом к Google и без. Участникам предлагалось за три минуты придумать как можно больше необычных способов использования таких предметов, как зонт и щит. Эти объекты были выбраны из-за различий в количестве доступных онлайн-ассоциаций: по запросу «umbrella» Google выдает больше разнообразных результатов, чем по слову «shield». Исследователи оценивали количество и качество идей, предложенных как индивидуально, так и в группах, которые моделировали типичную ситуацию мозгового штурма.

Оказалось, что на индивидуальном уровне доступ к Google действительно помогал генерировать больше идей, но только тогда, когда интернет предлагал широкий спектр вариантов, как в случае с зонтом. При этом, когда информации в интернете было меньше, доступ к нему не давал никакого преимущества. Но наиболее интересные результаты появились при анализе групп: группы без доступа к Google демонстрировали более разнообразные и оригинальные идеи, особенно по мере увеличения количества участников. Те же, кто использовал интернет, часто приходили к одинаковым или похожим выводам, что снижало творческое разнообразие в целом. Группы без интернета чаще генерировали уникальные, так называемые «синглетные» идеи, возникавшие только у одного участника — это, в свою очередь, способствовало повышению коллективной креативности.

Когда специалисты оценивали качество идей по критериям полезности, новизны и общей креативности, оказалось, что группы без интернета либо превосходили, либо не уступали тем, кто пользовался Google. Преимущество оффлайн-групп особенно проявлялось в эффективности и креативности, тогда как новизна идей варьировала.

https://newatlas.com/medical/internet-access-creativity-fixation-effect/
👍144😱4😁2
Специалисты Final Round подсчитали, что за первое полугодие 2025 года американские IT-компании уволили более 94 тысяч технических специалистов. Причем это произошло из-за внедрения ИИ.

Аналитики выделили три основных тренда сокращений:

- ИИ заменяет повторяющиеся задачи. В IBM внутренние инструменты, такие как AskHR, взяли на себя большинство основных функций HR, а в CrowdStrike заявили, что ИИ позволяет быстрее переходить от идеи к продукту с меньшим количеством людей;

- компании сокращают команды, чтобы финансировать рост ИИ. Salesforce, Google и др. перенаправили бюджеты с традиционных линеек продуктов на инфраструктуру ИИ, обучение моделей и найм. Microsoft публично заявляла, что меняет структуру команды, увеличивая число инженеров и сокращая менеджеров среднего звена;

- ИИ помогает людям делать больше с меньшими затратами. Например, в Microsoft такие инструменты, как Copilot, помогают генерировать код.

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

В итоге только в Кремниевой долине число рабочих мест сократилось на 11 тысяч.

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

https://www.finalroundai.com/blog/ai-tech-layoffs-mid-2025
👎15🤔4🥴3👾2👍1
Президент РФ Владимир Путин подписал закон, который обязывает при продаже в России смартфонов, планшетов и других технически сложных товаров обеспечивать возможность установки и обновления программ с использованием единого магазина приложений Rustore, сообщает официальный портал правовой информации. Инициатива внесена депутатами от всех пяти думских фракций и группой сенаторов. Она предусматривает, что при продаже смартфонов в России должна быть обеспечена возможность устанавливать и обновлять программы через единый магазин приложений. Также закон требует обеспечивать платежи при установке и использовании программ с применением механизмов единого магазина приложений.

https://sozd.duma.gov.ru/bill/654254-8
💩48🤡23👍16🤮103🔥2😁1🕊1
Балансировка нагрузки является основополагающим принципом построения высокодоступных систем

1. Что такое балансировка нагрузки?

Балансировка нагрузки — это практика распределения вычислительных нагрузок между двумя или более компьютерами.

Это делается для повышения отказоустойчивости, улучшения доступности приложений и распределения нагрузки между несколькими машинами.

Балансировка нагрузки может осуществляться на уровне 4 OSI или уровне 7 OSI в зависимости от архитектуры приложения:
* Балансировщики на уровне 4 маршрутизируют трафик на основе IP-адресов и портов
* Балансировщики на уровне 7 предоставляют гораздо больший контроль над маршрутизацией с использованием протоколов, URL-адресов и т.д.

2. Статическая vs динамическая балансировка нагрузки

Статическая балансировка работает на основе предварительно настроенных параметров и идеально подходит для сценариев, где не ожидается резкого роста трафика.

Популярные алгоритмы статической балансировки:
* Круговая система (Round robin)
* Взвешенный круговой алгоритм (Weighted round robin)
* IP-хеши

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

Популярные алгоритмы динамической балансировки:
* Наименьшее количество соединений (Least connection)
* Взвешенное наименьшее количество соединений (weighted least connection)
* Взвешенное время отклика (weighted response time)
* Балансировка на основе ресурсов (resource-based)

Уровень 4 (Сетевая балансировка нагрузки)

Балансировщик нагрузки создается с указанием IP/DNS и порта, и связывается с группой виртуальных машин, на которых запущена определенная служба на определенном порту

Задача балансировщика — принимать запросы на определенном порту и перенаправлять их на один из доступных внутренних хостов.

Балансировщик может быть настроен на выполнение периодических проверок работоспособности для обеспечения доступности внутренних хостов и приложений.

Уровень 7 (Балансировка нагрузки на уровне приложений)

Конечный пользователь устанавливает соединение с определенным URL.

Балансировщик расшифровывает запрос, анализирует запрашиваемый сервис и направляет его на внутренний сервер, на котором запущен запрошенный сервис.

Балансировка на уровне 7 предоставляет дополнительные преимущества, такие как:
* Завершение SSL-сессий
* Кэширование
* Предварительная обработка запросов
13👍3🫡3
Балансировка нагрузки (иллюстрация к предыдущему посту)
10👍2🔥2
Команды SQL для работы с таблицами и базами данных #sql
13👍8🔥2❤‍🔥1
Windows 11 стала самой популярной настольной операционной системой в мире

Windows 11 впервые обогнала Windows 10 по глобальной доле рынка настольных ОС. Согласно StatCounter, по состоянию на июль 2025 года ей принадлежит 52% рынка, тогда как у Windows 10 — 44,59%. Это произошло менее чем за четыре месяца до завершения официальной поддержки Windows 10, назначенной на 14 октября 2025 года.

Хотя Windows 11 вышла еще в 2021 году, ее распространение шло заметно медленнее: Windows 10 достигла отметки в 400 млн установок за год, тогда как Windows 11 достигла этого уровня лишь за 2 года.

В России переход проходит еще медленнее: по данным StatCounter, Windows 11 установлена лишь на 19,53% устройств, тогда как Windows 10 — на 73,98%.

https://gs.statcounter.com/windows-version-market-share/desktop/worldwide/
🤡14😁84👍4🤮3❤‍🔥2🕊2👎1