METANIT.COM – Telegram
METANIT.COM
5.79K subscribers
1.64K photos
80 videos
9 files
984 links
Канал о программировании и разработке сайта metanit.com
Download Telegram
REST vs gRPC vs GraphQL в проектировании систем
(продолжение предыдущего поста)

REST (Representational State Transfer — передача репрезентативного состояния)

* Определение: Архитектурный стиль, использующий методы HTTP (GET, POST, PUT, DELETE) для коммуникации
* Формат данных: Обычно JSON
* Преимущества: Простота, широкое распространение, лёгкая отладка с помощью инструментов браузера
* Недостатки: Необходимость множества запросов для связанных данных, проблемы с избыточным или недостаточным получением данных
* Области применения: Веб- и мобильные API, приложения CRUD, публичные API

gRPC (Google Remote Procedure Call — удалённый вызов процедур Google)

* Определение: Высокопроизводительная платформа, использующая HTTP/2 и Protocol Buffers (бинарный формат)
* Преимущества: Быстрая коммуникация, поддержка потоковой передачи, строго типизированные контракты через .proto файлы
* Недостатки: Сложность отладки, необходимость генерации клиентского кода, меньшая совместимость с браузером
* Области применения: Коммуникация между микросервисами, системы реального времени, внутренние API

GraphQL

* Определение: Язык запросов, позволяющий клиентам запрашивать именно те данные, которые им нужны
* Преимущества: Избежание избыточного получения данных, единая точка входа для всех запросов, гибкость для фронтенд-разработчиков
* Недостатки: Сложная реализация на стороне сервера, усложнение кэширования, возможное снижение производительности для больших запросов
* Области применения: Приложения с интенсивным фронтендом, динамические пользовательские интерфейсы, системы, требующие гибкого получения данных

### Ключевые различия

* REST = основанный на ресурсах | gRPC = основанный на процедурах | GraphQL = основанный на запросах
* REST использует JSON через HTTP/1.1 | gRPC использует Protocol Buffers через HTTP/2 | GraphQL использует единую точку входа через HTTP
* REST = простой и универсальный | gRPC = высокопроизводительный | GraphQL = гибкий и ориентированный на клиента
* REST лучше подходит для публичных API | gRPC лучше для внутренних микросервисов | GraphQL лучше для сложных фронтендов

### Реальные примеры использования

* REST: API Twitter и GitHub следуют принципам REST для стандартных веб-интеграций
* gRPC: Google и Netflix используют gRPC для внутренней коммуникации между микросервисами благодаря скорости и эффективности
* GraphQL: Shopify и GitHub используют GraphQL, чтобы предоставить клиентам контроль над получением данных
🔥76👏1
Крик души про корпоративную разработку на .NET
(перевод в следующем посте)
💯24🔥9👍4👎2😢2🤔1🤡1
Крик души про корпоративную разработку на .NET:
(перевод картинки из предыдущего поста)

Скрытые издержки корпоративной архитектуры .NET:

Ад отладки.

Я провёл более 13 лет, работая с кодовыми базами .NET, и постоянно наблюдаю одну и ту же картину:

Команды создают абстракции уровня крепости для проблем, которых у них нет.

IUserService вызывает IUserRepository.
IUserRepository оборачивает IUserDataAccess.
IUserDataAccess вызывает IUserQueryBuilder.
IUserQueryBuilder наконец-то обращается к базе данных.

Чтобы изменить одно правило валидации, вам нужно пройти через 5 уровней.

Чтобы исправить баг, вам нужно открыть 7 файлов.

Оправдания всегда одни и те же:

«А что, если нам нужно будет заменить Entity Framework?»
«А что, если мы сменим базу данных?»
«А что, если нам понадобятся несколько реализаций?»

Что если то, что если это.

Реальность:
Эти «что если» не сбываются в 99% случаев.

Я не видел ни одного проекта, который сменил бы свой ORM.

Но я видел десятки разработчиков, которые тратили часы на навигацию по лабиринтам абстракций.

Новые разработчики не понимают, куда поместить новый фрагмент функциональности.
Старшие разработчики отлаживают код, который имеет больше уровней, чем свадебный торт.

Конечный результат?

Вы тратите больше времени на навигацию, чем на создание.

Послушайте, хорошие абстракции скрывают сложность.
Плохие абстракции создают её.

Большинство корпоративных приложений .NET имеют слишком много второго типа.
🔥50😱9😢6👍41👎1💯1
В журнале Spectator вышла большая статья про влияние ИИ на занятость и вообще на общество под названием "The AI Employment Apocalypse Is Only a Few Years Away"
("Апокалипсис в сфере занятости, вызванный искусственным интеллектом, наступит уже через несколько лет")
Ссылка на статью: https://spectator.org/the-ai-employment-apocalypse-is-only-a-few-years-away/

Некоторые моменты:

"одна опасность ИИ нависает над всеми остальными, и мы к ней совершенно не готовы: грядущая волна безработицы, вызванная ИИ, которая, вероятно, обрушится в ближайшие несколько лет."
"ИИ упростил сложную работу...Проверка документов стала бесконечно менее трудоёмкой благодаря ИИ...исследования, которые раньше отнимали много часов, тратя много времени на тупиковые пути, теперь часто занимают лишь малую часть этого времени...Благодаря всем этим возможностям ИИ многие задачи, которые раньше занимали пять часов, теперь выполняются за один или два. Темпы прогресса с 2022 года были невероятными."

"Возьмите любую отрасль, связанную с «белыми воротничками»: бухгалтерский учёт, журналистику, финансы, программную инженерию, маркетинг, образование, научные исследования, обслуживание клиентов, коммуникации и так далее. Нас ждёт такой же хаос на рынке труда во всех этих областях. Те, кто только начинает свою карьеру и не может предложить практически ничего, пострадают сильнее всего, но даже те, кто занимает более высокие должности, не застрахованы."

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

"ИИ уже превосходит многих врачей...увольнение большинства врачей не за горами"

"Какие профессии останутся после того, как грянет апокалипсис занятости? Возможно, очень престижные, те, кто находится на вершине нашей иерархии. Работы, связанные с изготовлением ручных, ремесленных, эклектичных диковинок. Работы, в которых присутствует существенная творческая составляющая. Но качественный скачок в этой области, вероятно, вопрос (не слишком большого) времени."

"В любом случае, всего через несколько лет наше разнообразное современное рабочее место будет уничтожено, и лишь горстка высококвалифицированных экспертов или руководителей ИИ будет делать то, что сейчас делает большая часть нашего взрослого населения"

Почему новые технологии, подобно прошлым промышленным революциям, не откроют новые рабочие места:
"мы достигли предела наших образовательных возможностей. С падением оценок по математике, снижением способности читать сложные тексты и даже снижением IQ мы, похоже, не способны усваивать больше знаний, не говоря уже об абсурдности необходимости тратить ещё больше лет, влезая в долги, прежде чем наконец выйти на рынок труда в возрасте около 30 лет."

О трендах:
"Недавнее исследование Стэнфордского университета отметило 13-процентное снижение занятости среди молодых специалистов в технологическом секторе, причём наиболее резкое снижение — как и следовало ожидать, если бы причиной был ИИ — наблюдалось среди сотрудников начального уровня."
"Goldman Sachs подсчитал, что премия за высшее образование снижается… Bank of America Global Research отмечает, что с 2022 года уровень безработицы среди недавних выпускников впервые за последнее время начал превышать общий уровень безработицы."

О соц последствиях:
"Помимо сурового факта массовой безработицы, первым последствием станет колоссальное неравенство. Неравенство доходов уже резко возросло с 1970-х годов, но после того, как ИИ лишит большинство из нас работы, лишь немногие высокооплачиваемые владельцы и элитные работники смогут получать огромную прибыль от компаний, которым, по сути, больше не нужно платить зарплату."
🤔11😁7🤡6🤯4😢4🤬3🥴2👎1😱1🤣1
Можете решить задачку?
🤔29👏6🥱3🖕3💅3👌1
Как работает SSO (единый вход в систему)
(продолжение в следующем посте)
👍32👏1
Как работает SSO (единый вход в систему)
(продолжение предыдущего поста)

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

Чтобы полностью понять процесс SSO, рассмотрим, как пользователь входит в LinkedIn с помощью Google в качестве поставщика удостоверений:

1. Запрос на доступ

Сначала пользователь пытается получить доступ к поставщику услуг (LinkedIn). На этом этапе ему предлагаются варианты входа в систему, и в нашем примере он выбирает «Войти через Google».

2. Запрос на аутентификацию

Поставщик услуг (LinkedIn) перенаправляет пользователя к поставщику удостоверений (Google) с запросом на аутентификацию.

3. Проверка активной сессии

Получив запрос, поставщик удостоверений (Google) проверяет наличие активной сессии. Если она не найдена, запрашивается аутентификация.

4. Пользователь отправляет учётные данные

На этом этапе пользователь отправляет свои учётные данные (имя пользователя и пароль) поставщику удостоверений (IdP).

5. Проверка учётных данных

Поставщик удостоверений сверяет предоставленные учётные данные со своим каталогом пользователей (базой данных). Если учётные данные верны, IdP создаёт токен аутентификации или подтверждение.

6. Поставщик удостоверений отправляет токен поставщику услуг

После создания токена или подтверждения IdP отправляет его обратно поставщику услуг, подтверждая личность пользователя. Теперь пользователь аутентифицирован и может получить доступ к поставщику услуг (LinkedIn).

7. Доступ предоставлен с использованием существующей сессии

Поскольку поставщик удостоверений установил сессию, когда пользователь обращается к другому поставщику услуг (например, GitHub), ему не нужно повторно вводить свои учётные данные. Будущие поставщики услуг будут запрашивать аутентификацию у поставщика удостоверений, распознавать существующую сессию и предоставлять пользователю доступ на основе ранее подтверждённой сессии.

Рабочие процессы SSO, подобные описанному выше, работают на протоколах SSO — наборе правил, которые регулируют взаимодействие и доверие между IdP и SP. Распространённые протоколы включают язык разметки утверждений безопасности (SAML), OpenID Connect и OAuth.
6👍4👏1
Символы из терии множеств
Где ∪ - объединение, ∩ - пересечение, and ∈ - принадлежность
🤓22👍125🤗1😎1
Краткий совет по Linux:

Команда diff — полезный инструмент для поиска различий между файлами в терминале Linux. Однако icdiff предлагает ещё более удобное сравнение с цветным выводом.
$ icdiff config-dev.ini config-prod.ini

На выходе оба файла будут отображены рядом, а все различия будут выделены красным и зеленым цветом, что позволит легко обнаружить разницу.
👍20❤‍🔥5🤩21👏1🖕1
This media is not supported in your browser
VIEW IN TELEGRAM
Умножение матриц для чайников
👍43👀10❤‍🔥5🤣32🤮1💊1
This media is not supported in your browser
VIEW IN TELEGRAM
Задача трёх тел предполагает прогнозирование движения трёх объектов (например, планет), взаимодействующих посредством гравитации. В отличие от решаемой задачи двух тел, она, как правило, хаотична.

В 1890 году Анри Пуанкаре доказал, что не существует общего замкнутого решения («равномерный первый интеграл») и что результаты крайне чувствительны к начальным условиям: малейшие изменения приводят к большим различиям, лежащим в основе теории хаоса.

Однако существуют определённые устойчивые периодические орбиты, например, траектории в форме восьмёрки. Видео демонстрирует различные подобные симметричные повторяющиеся траектории, обнаруженные с помощью моделирования.
🤔27🔥1711👀51👍1🤣1🤓1
Microsoft с 14 октября прекращает поддержку Windows 10 - системы, которая в 2015 году преподносилась Майкрософтом как последняя ОС. Пользователям Майкрософт рекомендует обновить операционную систему до Windows 11, говорится в сообщении компании.

Это означает, что со вторника обновления программного обеспечения и системы безопасности, как и техническая поддержка, больше не будут предоставляться. Хотя Windows 10 не перестанет работать, но компьютеры с этой версией ОС без дальнейших обновлений ПО и системы безопасности стану более уязвимы к заражению вирусами и вредоносными программами.
https://support.microsoft.com/en-us/windows/windows-10-support-ends-on-october-14-2025-2ca8b313-1946-43d3-b55c-2b95b107f281

Тем временем согласно опросу, проведенному в канале группы, большинство выразили желанение остаться на Windows 10
🕊16😁9🔥8😢32
Чем больше учёные работают с ИИ, тем меньше они ему доверяют

В отчёте за 2025 год о влиянии технологий на науку издатель Wiley обнародовал первые данные об отношении к ИИ: отчёт показал, что в 2025 году, несмотря на все развитие ИИ, учёные меньше доверяют ИИ, чем в 2024 году.

Так, в опросе 2024 года 51% опрошенных учёных беспокоились о потенциальных «галлюцинациях» — широко распространённой проблеме, когда большие языковые модели выдают полностью сфабрикованную информацию за правду. В 2025 году это число выросло до внушительных 64%, даже несмотря на то, что использование ИИ среди исследователей подскочило с 45% до 62%.

Беспокойство по поводу безопасности и конфиденциальности выросло на 11% по сравнению с прошлым годом, а опасения, связанные с этичностью ИИ и прозрачностью, также увеличились.

Кроме того, в 2024 году учёные заявляли, что верят в то, что ИИ уже превосходит человеческие способности более чем в половине всех случаев использования. В 2025 году эта вера рухнула, упав до менее чем трети опрошенных.
https://www.wiley.com/content/wiley-com/na/us/en/about-us/ai-resources/ai-study.html
😁18👍7🤔61
Как работает Apache Kafka

Apache Kafka появилась как решение проблемы. Инженеры LinkedIn столкнулись с трудностями при отслеживании метрик веб-сайта, потоков активности и других операционных данных.
Команда инженеров под руководством Джея Крепса (Jay Kreps), Нехи Наркхеде (Neha Narkhede) и Джун Рао (Jun Rao) начала разработку распределённой системы обмена сообщениями по принципу «публикация-подписка», способной обрабатывать потоки данных с высокой пропускной способностью и низкой задержкой.

Эта система в итоге стала Apache Kafka.

Проект был открыт для общественности в начале 2011 года. Название «Kafka» выбрал Джей Крепс. Он назвал систему в честь известного писателя Франца Кафки. 😊
Крепс был поклонником творчества Франца Кафки и посчитал это имя подходящим для системы, работающей с потоками информации.

Система написана на Java и Scala.

Позже они основали компанию Confluent в 2014 году для предоставления коммерческой поддержки и дополнительных инструментов пользователям Kafka.

📌 Давайте разберём базовый принцип работы.

[1] Отправитель отправляет сообщение
* Приложение выступает в роли отправителя, создавая сообщение с данными (полезной нагрузкой) и необязательным ключом.
* Отправитель подключается к брокеру в кластере Kafka и определяет целевую тему.
* Kafka использует партиционер для определения того, в какую партицию темы должно быть доставлено сообщение. Это обеспечивает балансировку нагрузки и параллельную обработку.
* Сообщение доставляется в ведущую реплику выбранной партиции.

[2] Хранение сообщений и репликация
* Ведущая реплика добавляет сообщение в сегмент журнала.
* Сообщение получает уникальный идентификатор (смещение), который определяет его позицию в журнале.
* Ведущая реплика копирует сообщение в последующие реплики для обеспечения отказоустойчивости.

[3] Приёмщик получает сообщения
* Приложение выступает в роли приёмщика, присоединяясь к группе приёмщиков.
* Приёмщики в одной группе совместно используют смещения и координируют потребление.
* Каждый приёмщик получает сообщения из назначенных ему партиций на основе зафиксированного смещения.
* Приёмщик получает пакеты сообщений и обрабатывает их.

[4] Подтверждение потребления
* После завершения обработки приёмщик фиксирует новое смещение.
* Это сообщает Kafka, какие сообщения были успешно потреблены.
* Kafka отслеживает зафиксированные смещения для каждого приёмщика в группе.

[*] Процесс продолжается
* Отправители продолжают отправлять сообщения, а приёмщики продолжают получать и обрабатывать их на основе последних смещений.
* Этот цикл обеспечивает упорядоченную доставку и надёжное потребление даже при сбоях или перезапусках.

Замечания:

👉 Поток сообщений является асинхронным. Отправители не ждут, пока приёмщики обработают сообщения.

👉 Приёмщики могут отставать от отправителей, если обработка идёт медленно.

👉 Kafka предлагает механизмы для обработки сбоев и обеспечения доставки сообщений как минимум один раз или ровно один раз.
8👍6👏4❤‍🔥1
«Лаборатория Касперского» планирует адаптировать свою операционную систему KasperskyOS для ПК, ноутбуков и серверов. Об этом сообщил Дмитрий Лукиян, руководитель отдела по развитию KasperskyOS.

Конкретные сроки и вложения в компании не раскрывают. Однако называют этот этап следующей вехой развития своей ОС.

KasperskyOS — это микроядерная операционная система, разработанная «Лабораторией Касперского». Она предназначена для создания программно-аппаратных систем, «защищенных от любых, даже от еще неизвестных угроз, и для нее не требуются наложенные средства защиты, такие как антивирусы», утверждают в компании-разработчике.

Микроядро KasperskyOS написано полностью с нуля и не использует код ядра Linuх. На базе KasperskyOS разработаны линейка кибериммунных IoT-шлюзов, кибериммунные тонкие клиенты, защищенные автомобильные шлюзы, SDK для IoT-контроллеров, ведутся исследования по применению KasperskyOS для профессиональных мобильных устройств. ОС прошла сертификацию Федеральной службы по техническому и экспортному контролю (ФСТЭК).

https://www.cnews.ru/news/top/2025-10-14_kasperskyos_na_pksmartfonah_i
👍23🔥10🤮6😁2👏1🤡1
Визуальное руководство по выбору системы баз данных
👍14🔥32🤔1
Майкрософт выпустил второй и последний релиз-кандидат .NET 10, который поставляется с лицензией go-live и поэтому уже может использоваться в production. Этот выпуск .NET 10 добавляет главным образом улучшения ии исправления уже имеющегося функционала и поддерживается в новом выпуске Visual Studio 2026 Insiders, а также в Visual Studio Code с C# Dev Kit.
Окончательный релиз .NET 10 с C# 14 состоится 11 ноября.
https://devblogs.microsoft.com/dotnet/dotnet-10-rc-2/
🔥121👏1
This media is not supported in your browser
VIEW IN TELEGRAM
Начиная с версии 3.14 Python позволяет отключить GIL! Почему это важно? Поскольку раньше, даже если вы писали многопоточный код, Python мог выполнять только один поток за раз, не давая никакого выигрыша в производительности. Но теперь Python может выполнять многопоточный код параллельно.
👍23🔥14❤‍🔥3🤮3
В Visual Studio 2026 Community добавлен анализ кода на покрытие текстами. В VS 2022 такая возможность была доступна в платном выпуске Enterprise
По умолчанию код, покрытый тестами, выделяется светло-голубым цветом.
25👍10🔥5💩4😱3
Российские компании начали делать предложения о трудоустройстве вьетнамским программистам на зарплаты в 140 тыс. руб. в 2025 г., свидетельствуют данные hh_ru,

Российские компании начали активно нанимать программистов и разработчиков из Вьетнама, свидетельствуют данные hh_ru. В 2025 г. Вьетнам вошел в топ-3 стран Дальнего Зарубежья, откуда российские компании привлекали персонал, его обошли только Индия и Куба.

«С начала года наиболее активными соискателями, имеющими резюме на hh_ru и ищущими работы на территории России при этом будучи выходцами из стран Дальнего зарубежья стали жители Индии (более 5 тыс. резюме с начала года), на втором месте жители Кубы, на третьем — Вьетнама. Соискатели из Вьетнама чаще всего в этом году искали в России работу в качестве программистов», — сообщил hh_ru.

На резюме разработчиков ПО приходится 9% от всех резюме из этой страны. Из общего объема соискателей из Вьетнама, получивших предложения от российских компаний, 6% были программистам или разработчиками. Медианная предлагаемая зарплата для них — 140 тыс. руб. ИТ-специалистов из Вьетнама нанимали почти также активно, как вьетнамских менеджеров по продажам (на зарплату в 120 тыс. руб.) и официантов (86 тыс. руб.).

Что касается Индии, то число резюме из их общего объема, приходящееся на программистов и разработчиков, составило только 3%, а Кубы — 4%. Но число нанятых российскими компаниями программистов оказалось менее 1%.

https://www.cnews.ru/news/top/2025-10-15_na_zarplaty_raznorabochih
🤡35😐24🙈15👎4😁2🥴2