METANIT.COM – Telegram
METANIT.COM
5.79K subscribers
1.64K photos
80 videos
9 files
984 links
Канал о программировании и разработке сайта metanit.com
Download Telegram
Как Google Search выдаёт результаты за миллисекунды?
(описание в следующем посте)
👍5🤔3🤮3🗿3
Как Google Search выдаёт результаты за миллисекунды?
(описание к предыдущему посту)

Google Search работает на распределённой архитектуре массового масштаба, которая разбивает интернет на фрагменты и обрабатывает их параллельно на сотнях тысяч серверов.

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

Результаты затем ранжируются в мгновение ока с помощью сложных алгоритмов ранжирования (таких как BERT и MUM), которые учитывают сотни факторов — от релевантности ключевых слов и качества сайта до вашего местоположения и истории поиска, и всё это происходит ещё до полной загрузки страницы.

Основной поиск Google состоит из нескольких ключевых систем:
* Web Crawlers (Googlebot) постоянно находят и загружают новые страницы из интернета.
* Система индексирования обрабатывает эти страницы, разбивает их на термины и сохраняет в огромной распределённой базе данных индекса.
* Система обработки запросов понимает ваши намерения при поиске, исправляет опечатки и расширяет термины.
* Система ранжирования (PageRank как изначальный базовый алгоритм) использует машинное обучение для оценки и упорядочивания результатов по предполагаемому качеству и релевантности.

За кулисами Google запускает массовые пакетные и реальные процессы. Весь веб-индекс постоянно перестраивается в циклах, при этом инкрементальные обновления обрабатываются для отражения нового контента и свежих ссылок.

Эти данные хранятся в специализированных высокопроизводительных базах данных — Bigtable для веб-индекса, Spanner для транзакционных данных и колоссальных кэшах в оперативной памяти для мгновенной обработки распространённых запросов. Вся система спроектирована с учётом отказоустойчивости и низкой латентности, обеспечивая ответ даже при выходе из строя целых дата-центров.

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

## Технические характеристики Google Search

* Фронтенд: C++, Java, JavaScript
* Бэкенд: C++, Java, Go, Python, Protocol Buffers
* Базы данных и хранение: Bigtable, Spanner, Colossus (файловая система)
* Обмен данными и оркестрация: MapReduce, FlumeJava, Dataflow, Apache Beam
* Обработка данных: Borg (управление кластером), Dremel (BigQuery), Millwheel (потоковая обработка)
* Безопасность: Проприетарная аппаратная защита, TLS, непрерывное сканирование уязвимостей
* Инфраструктура: Глобальные проприетарные дата-центры, специальные чипы TPU/AI, сетевая структура Jupiter
* Девопс и мониторинг: Внутренние проприетарные инструменты (мониторинг Borgmon)
* Машинное обучение/ИИ: TensorFlow, BERT, MUM, RankBrain, LaMDA
10🤔6🤩3🤮3👏1😐1
Python ускорился

Мигель Гринбе (Miguel Grinberg), автор книг по Python, протестировал производительность CPython с 3.9 по 3.14 и сравнил с результатами тестов для Pypy 3.11 (Python с JIT), Node.js 24 и Rust 1.90. Для CPython 3.13 и 3.14 также тестировалась производительность с JIT-компилятором и режимом Free-threading без глобальной блокировки.

Для теста использовались скрипты для вычисления чисел Фибоначчи и сортировки пузырьком на Ubuntu 24.04 (Intel Core i5) и macOS Sequoia (Apple M2).

В большинстве тестов CPython 3.14 оказался быстрее 3.13 примерно на 20%. Отрыв 3.14 от 3.9 и 3.10 - примерно 2 раза. Pypy, Node.js и Rust обогнали CPython 3.14 в 1-ом тесте в 4.93, 4.88 и 69.82 раз, а во 2-ом тесте в 18.14, 6.64 и 36.15 раз.

Режим без глобальной блокировки в CPython 3.14 позволил в 2 раза ускорить многопоточное выполнение. А режим с JIT в CPython не привел к существенному росту производительности, а на macOS даже замедлил выполнение

https://blog.miguelgrinberg.com/post/python-3-14-is-here-how-fast-is-it
❤‍🔥13🤮62🌚2👏1
Slotted counters и конкуренция строк

Cлотовые счётчики (slotted counters) представляют способ распределения операций увеличения значений на множестве строк для уменьшения конфликтов при одновременном доступе

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

Конфликты == блокировки == медленная работа!

Как это исправить? Распределить подсчёт по N строкам в специальной таблице счётчиков. На рисунке N=3, но можно установить N=100 или N=1000 в зависимости от нагрузки

При каждом увеличении случайным образом для инкремента выбирается одна из N строк. Когда нужно получить общее количество просмотров для видео, суммируются все значения счётчиков для строк с определённым v_id. Это можно делать по мере необходимости или через регулярные промежутки времени и сохранять в таблице видео
👍9👏3🏆3
Microsoft напомнила о прекращении поддержки Windows 10 с 14 октября 2025 года. Компания предложила три варианта действий по переходу с Windows 10: обновление до Windows 11, замену ПК на новый с Windows 11 и программу Extended Security Updates (ESU).

Если ПК пользователей соответствует минимальным системным требованиям Windows 11, то можно обновиться напрямую с Windows 10. Чтобы проверить, подходит ли компьютер для бесплатного обновления, нужно зайти в «Пуск» > «Параметры», «Обновление и безопасность» > «Центр обновления Windows» > «Проверить наличие обновлений».

В случае отсутствия совместимости с Windows 11 корпорация предлагает просто купить новый ПК с последней операционной системой Microsoft. Компания рекомендует воспользоваться инструментом для подбора подходящего ПК с учётом индивидуальных потребностей пользователей.

Можно продолжить получать обновления для Windows 10 после 14 октября через ESU — программу расширения поддержки устаревших операционных систем. Год обновления по ESU стоит $30 или 1000 баллов Microsoft Reward. Получение бесплатных обновлений по ESU возможно при условии включения Windows Backup для синхронизации настроек и папок с облаком.

https://support.microsoft.com/en-us/windows/windows-10-support-ends-on-october-14-2025-2ca8b313-1946-43d3-b55c-2b95b107f281
👎23🤬8😢4🤡4😁2🤮1💩1
На конференции Gemini at Work генеральный директор Google Сундар Пичаи рассказал, что примерно половина нового кода внутри компании сейчас генерируется ИИ и затем проходит ревью инженеров прежде чем попасть в продакшн.

https://www.youtube.com/watch?v=uLHF9T1SLrU

PS. Ну будем надеяться, что весь этот нагенерированный код все-таки проходит ревью...
🤪26😱5💩5🤡3💯3
Вкратце и наглядно как работает межсайтовый скриптинг (Cross-Site Scripting или XSS)
🥴5🔥32👍2
Классика CSS: центрирование блока <div>. Различные способы
👍7🔥1👏1
"
Программисты больше не в моде. ИТ теряют престиж

ИТ-отрасль резко перестала быть самой популярной среди тех, кто ищет работу или мечтает о смене сферы деятельности. Она стремительно скатилась на третье место, уступив первенство квалифицированным рабочим профессиям. Классические инженеры в России теперь тоже в гораздо большем почете, нежели программисты или системные администраторы. Столь радикальные изменения произошли всего за год.

В России радикально изменились тренды в плане престижности профессий. Если еще в 2024 г. на первом месте были все работы, связанные с ИТ-сферой, то всего год спустя на первое место вырвались рабочие специальности, сообщили представители платформы hh.ru.

Что самое важное, квалифицированные рабочие профессии еще год назад престижными считали лишь 12% опрошенных. В 2025 г. их набралось уже 45%, то есть рост оказался более чем трехкратный.

ИТ-сфера скатилась на третье место – за нее в 2024 г. проголосовал 51% респондентов, а в 2025 г. уже 32%.

"

https://www.cnews.ru/news/top/2025-10-10_it_bolshe_ne_v_trendeotrasl

PS. Вот тока конкуренция на рынке труда говорит об обратном: больше 16 человек на место для ИТ и 1-3 человека на место для рабочих специальностей....
😁20🤪13🙏10💯6👍3🤬1
Сравнение минимальных требований операционных систем
60😁18😈8👍6👎6🤡4💊4😎3🥱2
REST vs gRPC vs GraphQL в проектировании систем
(продолжение в следующем посте)
🔥4🤯32👍2
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