У 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
default mode VasSonic mode

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/