У Tencent довольно много проектов с открытым исходным кодом. На Github(https://github.com/Tencent) есть 50 проектов с открытым исходным кодом.

1. Фреймворк горячих исправлений Android Tinker
Tinker — официальное решение WeChat для горячих патчей Android. Он поддерживает динамическую доставку кода, SO-библиотек и ресурсов, позволяя приложениям обновляться без необходимости переустановки. Конечно, вы также можете использовать Tinker для обновления своих плагинов.
В основном он включает следующие части:
- Плагин компиляции Gradle: tinker-patch-gradle-plugin
- Основная библиотека SDK: tinker-android-lib
- Версия для командной строки для пользователей, не использующих Gradle: tinker-patch-cli.jar
Адрес исходного кода:https://github.com/Tencent/tinker
Адрес документации:https://github.com/Tencent/tinker/wiki

2. Кроссплатформенный компонент клиента WeChat Mars
Mars — официальный базовый компонент терминала WeChat. Это независимый от бизнес-логики и платформы базовый компонент, написанный на C++. Он интегрирован в клиенты WeChat для таких платформ, как Android, iOS, Mac, Windows, WP и UWP.Примечание: в настоящее время поддерживаются только платформы Android, iOS, Mac и Windows. Другие платформы будут поддержаны в ближайшее время в последующих версиях.
В основном он включает следующие части:
- Comm: Базовая библиотека, включающая сокеты, потоки, очереди сообщений, корутины и другие базовые инструменты.
- Xlog: Общий модуль логирования, полностью учитывающий особенности мобильных терминалов и предоставляющий функции логирования с высокой производительностью, высокой доступностью, безопасностью и отказоустойчивостью.
- SDT: Модуль диагностики сети.
- STN: Модуль сети передачи сигнализации, отвечающий за канал сигнализации для небольших данных между терминалами и серверами. Он содержит богатый опыт оптимизации и достижения клиентов WeChat в мобильных сетях и был проверен огромной пользовательской базой WeChat.
Адрес исходного кода:https://github.com/Tencent/mars
Адрес документации:https://github.com/Tencent/mars/wiki

3. Фреймворк компонентной разработки мини-программ wepy
WePY — это фреймворк, который позволяет мини-программам поддерживать компонентную разработку. Благодаря предварительной компиляции он позволяет разработчикам выбирать предпочитаемый стиль разработки для создания мини-программ. Детальные оптимизации фреймворка и внедрение Promise и Async Functions направлены на то, чтобы сделать проекты разработки мини-программ проще и эффективнее.
В процессе разработки фреймворк WePY заимствовал некоторые синтаксические стили и функциональные возможности существующих фреймворков, таких как Vue, повторно инкапсулировал нативную модель разработки мини-программ, приблизился к архитектурному шаблону MVVM и поддерживает некоторые новые возможности ES6/7.
Адрес исходного кода:https://github.com/Tencent/wepy
Домашняя страница WePY:https://tencent.github.io/wepy/
Адрес документации:https://tencent.github.io/wepy/document.html#/
Сводка ресурсов WePY:https://github.com/aben1188/awesome-wepy

4. Лёгкий высокопроизводительный гибридный фреймворк VasSonic
VasSonic назван в честь персонажа игры Sega — ежа Соника. Это лёгкий высокопроизводительный гибридный фреймворк, разработанный командой VAS (SNG Value-Added Products Department QQ Membership) компании Tencent, ориентированный на повышение скорости загрузки первого экрана страницы. Он отлично поддерживает страницы со статическим прямым выводом и страницы с динамическим прямым выводом, а также совместим с решениями на основе офлайн-пакетов.
В настоящее время его уже используют такие сервисы, как QQ Membership, QQ Game Center, QQ Personalization Mall, QQ Shopping, QQ Wallet и Penguin Esports. Ежедневный PV превышает 120 миллионов (учитываются только данные внутри Mobile QQ), а среднее время загрузки первого экрана страницы составляет менее 1 секунды.
Адрес исходного кода:https://github.com/Tencent/VasSonic
Адрес документации:https://github.com/Tencent/VasSonic/wiki
| Рисунок 1: До использования режима Sonic | Рисунок 2: После использования режима Sonic |
|---|---|
![]() |
![]() |
5. Инструмент фронтенд-разработки команды WeChat WeFlow
WeFlow — это эффективный, мощный и кроссплатформенный инструмент для рабочего процесса фронтенд-разработки.В настоящее время он поддерживает фронтенд-сборку для команд сторонних партнёров таких проектов, как WeChat Games, WeChat Moments Ads и WeChat City Services. Если вы больше привыкли к работе с командной строкой, вы можете напрямую использовать ядро WeFlow: tmt-workflow, разработанное на основе Gulp :).
Адрес исходного кода:https://github.com/Tencent/WeFlow
Официальный сайт:https://weflow.io/
6. Мобильный фреймворк для баз данных WCDB
WCDB — это эффективный, полнофункциональный и простой в использовании мобильный фреймворк для баз данных на основе SQLCipher, поддерживающий iOS, macOS и Android.Основные возможности:
- Простота использования: WCDB позволяет извлечь данные и объединить их в объект всего одной строкой кода.
- Высокая производительность: WCDB достигает более высокой производительности благодаря оптимизациям на уровне фреймворка и в исходном коде SQLCipher.
- Полнота: WCDB охватывает необходимые функции для различных сценариев, связанных с базами данных.
Адрес исходного кода:https://github.com/Tencent/wcdb
Адрес документации:https://github.com/Tencent/wcdb/wiki

7. Фреймворк машинного обучения Angel на основе концепции Parameter Server
Angel — это высокопроизводительная распределённая платформа машинного обучения, разработанная на основе концепции Parameter Server. Она неоднократно настраивалась на основе огромных внутренних данных Tencent и обладает широкой применимостью и стабильностью. Чем выше размерность модели, тем очевиднее преимущество. Angel был совместно разработан Tencent и Пекинским университетом, сочетая высокую доступность индустрии и инновационность академической науки.
Основная концепция дизайна Angel сосредоточена вокруг моделей. Он разумно разделяет многомерные большие модели между несколькими узлами parameter server и благодаря эффективным интерфейсам обновления моделей и операционным функциям, а также гибким протоколам синхронизации легко реализует различные эффективные алгоритмы машинного обучения.
Angel разработан на основе Java и Scala, может напрямую планироваться и запускаться в YARN сообщества, а на основе PS Service поддерживает Spark on Angel. В будущем он будет поддерживать интеграцию с графовыми вычислениями и фреймворками глубокого обучения.
Адрес исходного кода:https://github.com/Tencent/angel
Адрес документации:https://github.com/Tencent/angel

8. Инструмент автоматического обнаружения утечек памяти MLeaksFinder
MLeaksFinder — это автоматический инструмент обнаружения утечек памяти для платформы iOS с открытым исходным кодом от Tencent. После внедрения MLeaksFinder вы можете автоматически обнаруживать утечки памяти и предупреждать о них во время повседневной разработки и отладки бизнес-логики.
Разработчикам не нужно открывать дополнительные инструменты, такие как Instruments, и не нужно запускать дополнительные процессы для поиска утечек памяти. Более того, поскольку разработчики могут обнаружить утечки памяти сразу после запуска соответствующей бизнес-логики после изменения кода, это позволяет им быстро понять, где в коде находится проблема. Такое своевременное обнаружение утечек памяти значительно снижает стоимость исправления утечек памяти.
Он имеет следующие возможности:
- Автоматически обнаруживает утечки памяти и ситуации, когда память не освобождается вовремя.
- Строит цепочку ссылок утекших объектов относительно ViewController, чтобы помочь разработчикам локализовать проблемы.
- Не вторгается в бизнес-логику; начинает работать сразу после подключения, без изменения какого-либо кода или импорта заголовочных файлов.
Адрес исходного кода:https://github.com/Tencent/MLeaksFinder
Блог команды WeRead:http://wereadteam.github.io/

9. UI-библиотека WeUI
WeUI — это UI-библиотека, разработанная официальной командой дизайнеров WeChat специально для мобильных Web-приложений WeChat. WeUI — это набор базовых библиотек стилей, соответствующих нативному визуальному опыту WeChat, созданных для WeChat Web-разработки, что делает восприятие пользователя более единообразным. Она включает такие элементы, как кнопка, ячейка, диалог, всплывающее уведомление, статья, иконка и другие.Адрес исходного кода:https://github.com/Tencent/weui
Адрес документации:https://github.com/Tencent/weui/wiki
Исходный код версии для мини-программ:https://github.com/Tencent/weui-wxss/
Онлайн-примеры:https://weui.io/

10. Распределённый движок серверных сервисов MSEC
Millisecond Service Engine (MSEC) — проект с открытым исходным кодом, выпущенный командой QQ компании Tencent. Это backend-движок DEV&OPS, включающий RPC, разрешение имён, балансировку нагрузки, мониторинг, релизы и управление ёмкостью. Возможности Millisecond Service Engine:
- Взаимодействие между модулями использует RPC, поэтому разработчикам не нужно заботиться о сети и форматах сообщений и можно разрабатывать распределённые сервисы так же, как писать автономные программы.
- Автоматическая балансировка нагрузки и отказоустойчивость; автоматически обрабатываются такие ситуации, как отказы одной машины и локальные колебания сети, что обеспечивает высокую доступность сервиса.
- Поддерживает языки C/C++/Java/PHP. При выборе C/C++ поддерживаются корутины, что сочетает эффективность разработки и эффективность выполнения.
- Веб-интерфейс управления.
- Простое развёртывание: серверы, требующие сложного развёртывания, устанавливаются с помощью образов Docker.
- По сравнению с решениями, собранными из других открытых компонентов, Millisecond Service Engine является более системным и обладает более тщательной стандартизацией командной работы.
Адрес исходного кода:https://github.com/Tencent/MSEC
Официальный сайт:http://msec.qq.com/


