Как один разработчик может поддерживать небольшую программу с более чем 100 миллионами пользователей?

Язык программирования

Эта статья была опубликована сообществом cloud+community

В декабре 2018 года совокупное количество пользователей Tencent Photos превысило1亿, Ежемесячно 12 миллионов, рейтинг Aladdin IndexTop 30, стал тяжеловесом в экологии мини-программы.

За более чем три месяца Tencent Photos быстро оптимизировала и добавила ряд социальных функций вокруг основного сценария «обмена фотографиями из альбомов в WeChat» и сотрудничала с соответствующими операциями, чтобы добиться прорыва в совокупном количестве пользователей.1亿Это намного превосходит ожидания.

Однако, кто бы подумал, что такая небольшая программа с размером 100 миллионов была фактически разработана одним человеком? Какой «трюк» он должен поддерживать небольшую программу с более чем 100 миллионами пользователей самостоятельно?

Закулисных кадров не хватает, что делать?

Когда я впервые встретил Дэвида (псевдоним), разработчика апплета фотоальбома Tencent, он выглядел обеспокоенным.

«Цель к концу года — иметь более 10 миллионов пользователей, но сейчас есть только несколько разработчиков внешнего и внутреннего интерфейса. Мало того, наша внутренняя разработка не может на 100% посвятить к этому проекту, и большую часть времени приходится уделять поддержке других проектов, рабочей силы очень мало.Кроме того, исходная бэкэнд-система имеет большой исторический багаж, и нереально разрабатывать новые социальные функции на оригинальная структура Что мне делать?

«Почему бы вам не попробовать «Разработку мини-программы в облаке», вам нужен только внешний интерфейс, чтобы запустить мини-программу, которая просто решает проблему отсутствия у нас фона».

В результате Дэвид, как костяк команды разработчиков Tencent Photo Album, взял на себя важную задачу по реализации функции социализации мини-программы Tencent Photo Album с помощью Mini Program Cloud Development.

«Когда я впервые столкнулся с «Мини-программной облачной разработкой», я почувствовал, что концепция этой вещи (Мини-программная облачная разработка) была совершенно новой — модель разработки без служб для небольших программ. три основные функции. Апплет не может обойти помощь фона, его двериЧтение данных,управление файламитак же какОбработка конфиденциальной логики (например, разрешений). Следовательно, в традиционном режиме разработки апплет должен отправить запрос в фоновый режим для аутентификации и обработки связанных файлов или данных. Даже если Node используется для создания серверных сервисов, требуется много работы для создания инфраструктуры, а также послеоперационного обслуживания и обслуживания. "

img

«Облачная разработка апплетов освобождает руки и ноги разработчиков апплетов, предоставляя им возможность безопасно и стабильно читать данные, загружать файлы и контролировать разрешения. Для других нагрузок, аварийного восстановления, мониторинга и т. д. мы разрабатываем апплеты-программы. Разработчики нужно только обратить внимание на бизнес-логику и сосредоточиться на написании бизнес-логики, и не нужно беспокоиться о других вещах!Первоначально я был в недоумении, и после понимания принципа продукта «Разработка мини-программы в облаке», я мгновенно стало известно об этом».

Двумерный код не подметает

img

Дорога всегда неровная, и на пути к тому, чтобы мини-программа Tencent Album Mini достигла более 100 миллионов пользователей, есть много трудностей.

Из-за большого объема информации, которую должен нести QR-код Tencent Album, его QR-код выглядит плотно упакованным. Такой плотный QR-код может привести к тому, что апплет не распознается некоторыми моделями Android.

Это серьезно ограничивает возможности апплета фотоальбома Tencent по обмену и привлечению клиентов.

img
(Необходимо хранить много информации, такой как имя, идентификатор владельца, страница и т. д.)

Решение этого вопроса не сложно, если фоновая разработка сначала сохраняет данные в базе данных, а затем помещает идентификатор данных в ссылку для обмена, чтобы ссылку можно было преобразовать в короткую ссылку из 32 символов, что делает QR-код выглядит уже не таким плотным.

Однако из-за нехватки рабочей силы Дэвид, разработчик внешнего интерфейса, использовал возможности хранения базы данных облачной разработки апплета для вызоваdb.collection('qr').addИнтерфейс для быстрого реализации хранения данных в базе данных.

img
(Облачная база данных разработки, формат аналогичен MongoDB)

img
(Индекс базы данных облачной разработки, который может ускорить чтение данных)

img

Кроме того, в альбоме также сохранены возможности облачного апплета Tencent для облачной разработки, генерирующие более узнаваемый код апплета (Мини-документация по программному коду) распространять и делиться в кругу друзей.

img
(логика облачной функции для генерации кода апплета)

img
(оптимизирован обмен изображениями и кодом апплета)

2 дня онлайн-комментариев и лайков

img
(комментарий и лайк)

Основным сценарием приложения Tencent Photos в WeChat является «обмен фотографиями в WeChat». Чтобы улучшить взаимодействие пользователей Tencent Photos в WeChat и улучшить привязку и удержание пользователей, Tencent Photos решила добавить комментарии и отметки «Нравится», а также добавить чат. комментарии Это реализовано непосредственно в окне чата WeChat.

Здесь Дэвид из Tencent Albums столкнулся с двумя вариантами: первый — использовать для выполнения этой функции исходную модель разработки (внешняя разработка — внутренняя разработка — совместная отладка клиентской части и серверной части). цикл разработки, отсутствие серверной части и медленная итерация.; Другой — использовать возможности облачной разработки, чтобы засучить рукава и сделать это самостоятельно.

Чтобы ускорить итерацию продукта, Дэвид решил использовать метод облачной разработки. Комментарии и лайки вставляются и запрашиваются через базу данных, разработанную в облаке, напримерdb.collection('comment').add, скоро понял.

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

img
(комментарий как логика)

Когда пользователи комментируют и лайкают, они инициируют запрос в апплете, чтобы вызвать облачную функцию и принести ее с собой.openid, для облачных функцийopenidЗапросите исходный фоновый сервис, чтобы узнать, есть ли у пользователя разрешение на работу.Если у пользователя есть разрешение, запишите данные комментариев и лайков в базу данных облачной разработки.

Таким образом, воспользовавшись небольшими возможностями программы и облачных возможностей развития, Tencent Photo Album завершила работу по разработке, которая требовала более недели работы в соответствии с традиционным режимом развития всего за 2 дня.

оригинальный режим разработки Разработка полного стека в облаке
нагрузка 1 неделя в фоновом режиме (проверка статуса входа в WeChat + разработка сервера бизнес-логики) + 1 день совместной отладки переднего и заднего плана 1 - 2 дня без совместной отладки

Эта статья была разрешена автором для публикации Tencent Cloud + Community