Meta начала переписать свою инфраструктуру обмена сообщениями в Rust, постепенно заменяя устаревшую кодовую базу C, которая, по словам инженеров, становится все труднее поддерживать и разочаровывающую работу. В Эпизод 76 подкаста MetatechЧлены команды Meta по инфраструктуре обмена сообщениями изложили свои мотивы для перехода, сославшись на безопасность памяти, счастье для разработчиков и долгосрочную обслуживание в качестве основных факторов.
Библиотека в центре усилий поставляется в каждом Facebook, Messenger, Instagram, Instagram Lite, VR-Hearset и носимой сборке, каждый день касаясь миллиардов пользователей.
Разработчики описывают старое время выполнения C с точки зрения функций, которые растянули сотни строк и ручной память: переменные были выделены в верхней части файла и освободили тысячу строк спустя, и даже небольшие рефактории казались опасными.
Спагетти порождает спагетти
… Мета-инженер программного обеспечения Элейн рассказал, захватив эффект разбитых видов, в котором грязный код поощрял больше беспорядка. Ошибки управления памятью иногда проскользнули в производство и превращались в труднодоступные инциденты по вызову.
Ржавовать проверки владения временем компиляции удаляют целые классы этих ошибок, но команда подчеркивает повседневное счастье так же, как и безопасность. Более чистая семантика, детерминированная форматирование с Rustfmtи отзывы в реальном времени от Анализер ржавчины Дайте более легкую итерацию и более быструю обратную связь. Производительность все еще имеет значение, однако показатель вождения перешел на скорость и уверенность разработчика.
Кривая обучения для ржавчины часто можно рассматривать как пугающийПолем Большинство инженеров, занимающихся переписыванием, прибыли с небольшим или без ржавчины – анекдоты, которые она знала только «логотип краба», а затем мечтала о ключевом словом движения. Чтобы поддержать этот переход, команда опиралась на прохождение один на один и обзоры кода пациента, чтобы ускорить адаптацию.
Культура с открытым кодом Meta также помогла: публикация вопросов для конкретных рабочих групп ржавчины принесла экспертные ответы, превратив крутой кривую обучения в общее приключение, а не в одиночное препятствие.
Улучшения инструментов перенесены на операции. Сегодня инженер может установить точку останова в смешанном стеке C/Rust и наблюдать, как отладчик плавно прыгает в рамки Rust, с полностью символическими журналами мобильных сбоев – поддерживаемым только несколько месяцев назад.
По мере того, как более счастливые рабочие процессы, более быстрые отзывы и более безопасные рефакторные рефактории охватывают, инженеры описали, что чувствуют себя более уверенно внося изменения, с инженером Buping Remarking, которые проверки времени компиляции Rust упрощали идентифицировать и исправить разбитый код.
Рабочая группа Rust привлекла инженеров по всей организации, которые мотивированы на производство ржавчины на мобильном телефоне. Хотя долгосрочная дорожная карта не записана, ранние признаки внутреннего интереса предполагают растущий аппетит к усыновлению.
Команда Meta чувствовала, что еще слишком рано, чтобы количественно оценить экономию времени от миграции, но они могут привлечь внимание других на пути. Cloudflare Сообщает более быструю, более надежную разработку и код, о котором инженеры проще рассуждать. Google пришел к аналогичному выводу в своем переходе от C ++, отметив, что участникам требуется меньше усилий для написания, просмотра и создания кода в ржавчине. Вместе эти примеры подчеркивают, как опыт разработчиков, а не только необработанная производительность, становится решающим фактором в языке и миграциях инструментов.
2025-07-10 07:01:00
1752132305
#От #до #Rust #Metas #Developer #Messaging #Migration

