请选择 进入手机版 | 继续访问电脑版

默认
打赏 发表评论 6
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
腾讯开发微信花了多少钱?技术难度真这么大?难在哪?

本文整理自知乎答主“道衍天机”的知乎问答,仅代表原作者的观点,即时通讯网引用至此供坛友参考,不代表支持原答主观点。


u=561111916,3398329495&fm=27&gp=0.jpg

先说结论


文章有点长,但是看完肯定有巨大收获,特别是针对想从事互联网行业想开发一个自己APP的人,这是我从自己多年外包和自己开发产品累计研发成本过千万的情况下得出的经验。

腾讯开发微信花的成本应该超过10个亿,真的技术难度很大,如果交给一个全栈工程师去做,可能要做1万年。下面详细的讲解和分析为什么成本这么高,都高在哪里。

本人之前就是做APP软件外包行业的,前后外包的APP开发上线过上百款,涉及领域从电商,教育,金融,物联网,医疗都有。去年开始转型,开始真正的开发了一款属于自己公司的互联网产品,期间真正的体验了一把给自己做产品跟做外包的巨大差别,也能足够说明为什么腾讯开发微信成本如此之高。

腾讯的微信开发成本高,大致可以分为这几种原因,以下会一一详细说明:

  • 1、功能的反复修改造成成本庞大,研发的过程中可能会不断的推翻之前的想法;
  • 2、不同手机不同操作系统版本号,手机型号兼容性问题调试;
  • 3、庞大用户基数情况下的高并发问题的处理;
  • 4、有些功能不是你想开发就开发(比如消息推送),还要跟第三方手机厂商洽谈才能做,简单来说可能要给第三方厂商钱。

原因一:功能的反复修改造成成本庞大,研发的过程中可能会不断的推翻之前的想法


我以前做外包公司的时候,大部分客户APP项目的开发成本都在50万以内,以二三十万之间的价格比较多,以最基本的注册登录功能为例。一般这种二三十万开发的注册登录安卓,IOS,加上后台的开发总耗时一般在2到3个工作日(3个工程师一起协同办公的情况下),包括写代码和调试bug的时间。遇到繁琐或者客户要求比较高的,可能反复改动下来总耗时一般不超过一周。

而我们真正在给自己做一个APP作为自己的互联网产品去运营的时候,我们光一个注册登录,就改了不下100次,前后总耗时保守估计超过50个工作日,花在光一个注册登录上的工程师的工资成本保守估计超过10万。

那么是什么原因造成了我们给自己做APP产品的时候,要改100次以上,前后耗时要50个工作日,同时光一个简单的注册登录工资成本要花十几万呢?

给大家简单看一下我们产品的注册登录页面,说说这里面的门道:
aaaaaaa.jpg

乍一看之下我们的注册登录页面功能,支持手机短信注册登录,邮件注册登录,微信授权登录,国际短信注册,仿佛也没什么复杂的。

但是其实这里面的门道非常非常复杂,我挑几个典型事情说一下。

现在APP很流行做QQ或者微信的授权登录,因为做了授权登录后,用户可以更低成本的跳过注册流程直接使用你APP的服务,这样提高了APP用户的使用率。

但是这么做,是不是绝对的是好事呢?

这么做或许对用户来说是好事,但是对APP平台方来说不一定是什么好事。这么做会导致一个很蛋疼的问题,就是你获取不到用户资料(用户的手机号),微信授权登录的时候,微信并不会把用户的手机号或者是微信号给你,只会给你一个用户的微信昵称。这个东西并不能联系到用户本人。

那么用户的手机号有多重要呢?拿到用户的手机号,可以很大程度上提高用户留存率!你们应该经常收到探探,王者荣耀,淘宝之类APP的短信,这些短信都是通过各种方式召回唤醒你这个暂时流失的老用户,或者是提醒你出了什么新功能新活动鼓励你去消费。

你只要一段时间不上线,探探就会给你发最近2小时又有几个美女小姐姐喜欢了你,让你过来看看。而王者荣耀会给你发什么诸葛亮新皮肤上线了之类的短信,召回和唤醒用户让用户去玩。

如果没有用户手机号,那就无法发送短信的,那就根本就做不到这一点。这是一种重要的提高用户活跃度和留存率的方式。

哪怕就是不为了提高用户的留存,如果用户反馈了什么问题和bug亟待解决,你也无法通过手机联系到用户去帮他解决问题。因为微信授权登陆你是什么有效的用户资料都拿不到的。

我们开始先是把微信授权登录按钮做的很大很显眼,后来就发现超过90%的用户都是用微信授权登录,不用手机号或邮箱注册。于是我们觉得这样很操蛋,不行,要想办法把微信的按钮搞的不是那么显眼。那么这个按钮到底放到哪里也很讲究,太小了用户找不到的话,可能也会导致注册率降低,很多人嫌麻烦可能就不注册了。太大了呢,就全是微信授权登录的。

那么就要不断的去尝试到底放在什么位置刚好,既希望用户通过手机号或邮箱来注册,同时希望他忽略微信。但是如果他一定要找微信又能找得到。

可能这么一个东西就够你调整五六次反复去尝试。

同时很多人可能做了微信授权登录又让用户首次的时候必须要强制绑定手机,这种机制也可能会引发用户反感,繁琐的流程可能会导致用户放弃注册或卸载APP。那么如何去设计注册登录提高注册率,每个细节都成了一个很值得琢磨和尝试的问题。

同时又比如说短信注册这块,你的APP支持不支持国际短信可能难度又差了N倍。如果你有海外用户的话,那么可能你还需要国际短信注册。同时又可能有些短信通道发送短信速度过慢,或者特定条件下无法发送出去,到达率低等。那么这时候还要设计一套机制来保证短信的发送率和到达率。

比如一般的短信通道是不接召回短信的,那么你还要有路子搞到能发召回短信的通道。以我们自己的产品为例,光短信通道就对接了3家,在不同的条件下用不同的通道来发送短信,搞这么复杂的目的是为了保证短信的发送速度和到达率以及其他的一些特殊情况。

光一个注册流程诸如此类的细节问题就不低于十几种。每种解决起来背后都要经过大量的尝试和成本。每一个文案,每一个按钮摆放的位置,颜色,都是经过大量的实验得出的结果,而不是拍脑袋得出的。

那么这么做有什么用呢?

我之前跟很多其他运营APP的公司聊过,很多人的下载到注册率只能达到70到80%,低的只有60%,我们一开始的下载和注册率也只能达到75%到80%之间。而经过一系列长期的优化,现在可以达到95%左右的下载到注册率。稳步提升了15%左右的注册率。

这意味着,如果同样的100万人下载我的APP,原来只有75到80万会注册成功去尝试我后续的APP服务,并可能长期留下来成为我的用户。而现在100万用户里会多出来15万人尝试并成为我的用户。

你说我这时间和精力花得值不值?

虽然回过头来在看,如果我们在研发的过程中想法不出现偏差,直接是像素级抄袭别人的东西那成本肯定低得多,因为不同自己思考为什么,也不存在反复推翻自己的过程。好比我原来注册登录花了十几万,那如果是有现成的抄袭的话可能2万成本就能搞定。但是你要想清楚,每个产品的特点都不是不一样的,不同APP的用户特性也决定了注册登录页面设计成什么样子才合适,别人的不一定适合你。

Ps:有兴趣的人可以研究下知乎的注册登录页面,也是暗藏玄机,任何大公司的APP产品,可以说注册登录页面几乎每年都在优化。其目的都是不断的尝试进一步提高产品的下载到注册率。你们多下载几个大公司的APP就知道了。

我们作为一个小公司,光一个注册登录都做了十几万,而一个大公司可能光琢磨一个注册登录反复修改下来成本花上百万也正常。而我们之前做外包项目呢?一个注册登录撑死跟客户收个5000块,一般两三天搞完。这些细节有成本有预算去考虑吗?

而且这还只是一个注册登录,一个用户体验称得上好的软件既要平衡用户体验又要把用户引导像你需要的程度,那就需要每个功能都反复斟酌尝试。用户体验要好这六个大字,花多少钱都不为过,所以这也就是我前面说的,大公司的APP可能每个功能都是改过几百次上千次的。

别人都说,大繁至简,但是在这里我想说一句,大简也至繁。

原因二:不同手机不同操作系统版本号,手机型号兼容性问题调试


微信作为一个国民级应用,在不同手机上的兼容性是做的很好的。但是这不代表这件事简单,大家肯定经常发现各类APP在手机上出现闪退,卡死,黑屏的情况。一般越是小公司做的东西越可能会这样。

IOS还好,国内光主流的安卓机型就有几百款,如果你要你的软件在每款手机上都能完美运行,不出现太多的闪退。那光把测试机型买齐就要上百万。买齐了后任何一个功能都要在不同品牌,不同操作系统版本号的手机上去测试。

又可能你的APP在华为P8上不会闪退,但是可能华为P9就会闪退,甚至可能打都打不开。也就是说不光是跨厂商,即使是同一个厂商生产的不同机型都可能会出现不同的问题。但是用户可不管你那么多,你APP如果频繁闪退,面临的必然是被卸载的结局。

还有一点很重要的要告诉大家的是,相对于买齐各类手机来测试的硬件成本来说,这个成本只是九牛一毛,真正高昂的是测试人员和你测出来后还要修复bug的程序员的工资成本。你不可能测出来bug不修吧?

一般大公司的产品,背后可能光测试人员都几十个人,每年发工资几百万甚至上千万。

小的APP开发商无法很好的做到这点,一般也就搞个十几台手机测试就了不起了,有些甚至只在自己一个人的手机上测试一下。所以也就导致了闪退频发。并不是你把功能代码写完了,就万事大吉了。各种兼容性问题如果要解决好,绝对是够你喝一壶。

原因三:庞大用户基数情况下的高并发问题的处理


这个问题前面的人说的都很多了,我就不说太多。简单来说同样一个功能,你1万日活和1亿日活的时候,会导致功能实现方式和成本上根本的变化。

微信在例如搜索等功能的研发成本上,并不是简单的一个付出了多少人员工资成本的问题。微信作为腾讯系的核心产品,里面用到的技术并不一定仅仅来自于微信团队自身的积累。腾讯在开发其他产品上的技术完全可以支援和嫁接过来,那么之前研发别的产品上的技术研发成本在微信里相当于是不需要走弯路了。

但是不是每个公司都有技术可以拿过来嫁接的,别人有不代表你有。

完全不可同日语。当然很多小公司一般根本不会遇到这个问题,所以也不需要考虑。

原因四:有些功能不是你想开发就开发(比如消息推送),还要跟第三方手机厂商洽谈才能做


有些功能不是你想开发就开发(比如消息推送),还要跟第三方手机厂商洽谈才能做,简单来说可能要给第三方厂商钱。

大家应该都知道APP下拉框的消息推送功能。而消息推送要做好绝对是一个很坑爹的东西。基本小公司的消息推送都不是自己做,而是用环信和腾讯的一些第三方的系统来对接实现。当然你会看到腾讯和环信这些公司的官网上,会写着一些5分钟,三行代码对接之类的话。

不懂的人很容易误以为APP的消息推送功能实现起来真的只要3行代码五分钟搞定。因为这些第三方的公司只是相当于发送推送信息的通道,但是你APP具体的推送机制,在什么情况下推送还是要你自己来设计的。而设计这个东西对很多APP来说就非常复杂了。

以知乎为例吧,有人给你点赞了推送,有人关注你了推送,有人私信你了推送等等等等。这里可能就分为十几种到几十种情况,并且还不是来了消息就推送这么简单,因为如果来一条信息你就推送一条。那么遇到晚上用户睡觉了你还一直推送可能就会导致用户关闭推送功能甚至是卸载APP。同样哪怕是白天,过于频繁的推送也可能会导致用户反感,那么这时候设计一套合理的推送机制就很有挑战。

既既要用户能收到你的推送来提高APP的打开使用率,又要不导致用户反感是非常难的。这时候可能还要设计当多种推送条件都达成的时候,只推送其中部分消息。你也要考虑,你想以推送的形式告诉用户的东西是很多的,但是又不可能个个都推。那么这时候还要深入考虑如何去取舍。

最后你以为你把机制搞清楚了就万事大吉了?

这只是个开始,这么说吧,你后续还会遇到一系列更操蛋的问题。比如你会发现IOS的推送还好,用户基本都能收到。但是安卓的用户却老是根本收不到你的推送。这是为什么呢?

因为不同的安卓手机厂商可能在系统上就限定死了你必须要用他提供的推送接口,否则是推不过来的,你的程序在后台运行的时候会被系统本身杀死而导致你的推送信息发不过去。那么这时候你又要针对不同的系统去开发不同的推送功能。

最最蛋疼的是,有些厂商比如OPPO,你想做都做不了。我们之前就发现我们用户里面很活跃的一款机型OPPO R9,发现在OPPO R9这款机型上,大部分APP一安装,默认就是禁止推送的状态。只有小部分的例如微信,QQ,微博,知乎这样的APP的推送是默认开启的。而哪怕是百度贴吧,快手这样的大公司的APP的消息推送默认也是被禁止的状态。

从这点看知乎还是很牛逼的,能做到跟微信QQ微博一样让OPPO默认开启他的推送。至于这是怎么做到的,我暂时还不清楚,但是在官方并没有明确的文档来告诉你怎么搞。

我怀疑可能是这个事情要给OPPO钱,或者要去找他们谈才可以。而小公司在这点上根本是无能为力的。

我做个解释:对于有些人说注册登录是小功能,应该好好把时间用在做产品上的解释


注册登录不是小功能,是最最基本的功能,你你APP的门槛。如果连最基本的注册登录都做不好?怎么保证其他的功能可以做得好?又何来产品体验好只说?

对于一个互联网公司来说,每一分钱都是应该花在刀口上的,现在这个年代获取一个用户的平均成本已经相较于移动互联网刚起来那会比如2012年上升了几百倍。获取任何一个用户都来之不易,很多APP现在获取一个用户的成本早已高到了十几元甚至几百元一个下载,如果控制不好下载到注册的转化率。会导致你大量推广的钱白白浪费,因为在注册这步就有大量的用户流失,那相应的APP的留存率和日活跃肯定也会随之被拉低。

同样的我想说一句,现在是2017年,人不能活在过去。2012年那会你随便做个什么东西可能都能获得大量用户和大量好评,因为那会稀奇还什么都没有。你的用户体验再查,UI界面再难看,功能在不好用,可能用户都可以接受。因为那会大家都差不多这水平,都很差。

但是现在已经2017年了,大部分APP的用户体验相较于2012年那早已不可同日语,BAT这类大公司投入的天量研发投入已经把整个市场的门槛和平均水平大大提高。用户对你的要求和预期早已不是2012年那样了。

现在你再把一些2012年做的东西拿到2017年来看,那可能是一坨大便。那么越是后期去创业,市场和用户对你的要求也越高,因为基本需求已被满足,蛋糕也被分得差不多了。那么现在杀出来的,一定更有可能是各种细节都能优化的非常好的,只有细节的堆砌才能决定所谓的用户体验好。

用户体验好 这五个大字,岂是那么容易得来的?不优化打磨产品各种细节,你的日活和留存率从哪里来?指望天数掉馅饼?

(原文链接:点此进入

附录1:有关微信、QQ的文章


[1] QQ、微信原创技术文章:
微信团队披露:微信界面卡死超级bug“15。。。。”的来龙去脉
QQ 18年:解密8亿月活的QQ后台服务接口隔离技术
月活8.89亿的超级IM微信是如何进行Android端兼容测试的
以手机QQ为例探讨移动端IM中的“轻应用”
一篇文章get微信开源移动端数据库组件WCDB的一切!
微信客户端团队负责人技术访谈:如何着手客户端性能监控和优化
微信后台基于时间序的海量数据冷热分级架构设计实践
微信团队原创分享:Android版微信的臃肿之困与模块化实践之路
微信后台团队:微信后台异步消息队列的优化升级实践分享
微信团队原创分享:微信客户端SQLite数据库损坏修复实践
腾讯原创分享(一):如何大幅提升移动网络下手机QQ的图片传输速度和成功率
腾讯原创分享(二):如何大幅压缩移动网络下APP的流量消耗(下篇)
腾讯原创分享(二):如何大幅压缩移动网络下APP的流量消耗(上篇)
微信Mars:微信内部正在使用的网络层封装库,即将开源
如约而至:微信自用的移动端IM网络层跨平台组件库Mars已正式开源
开源libco库:单机千万连接、支撑微信8亿用户的后台框架基石 [源码下载]
微信新一代通信安全解决方案:基于TLS1.3的MMTLS详解
微信团队原创分享:Android版微信后台保活实战分享(进程保活篇)
微信团队原创分享:Android版微信后台保活实战分享(网络保活篇)
Android版微信从300KB到30MB的技术演进(PPT讲稿) [附件下载]
微信团队原创分享:Android版微信从300KB到30MB的技术演进
微信技术总监谈架构:微信之道——大道至简(演讲全文)
微信技术总监谈架构:微信之道——大道至简(PPT讲稿) [附件下载]
如何解读《微信技术总监谈架构:微信之道——大道至简》
微信海量用户背后的后台系统存储架构(视频+PPT) [附件下载]
微信异步化改造实践:8亿月活、单机千万连接背后的后台解决方案
微信朋友圈海量技术之道PPT [附件下载]
微信对网络影响的技术试验及分析(论文全文)
一份微信后台技术架构的总结性笔记
架构之道:3个程序员成就微信朋友圈日均10亿发布量[有视频]
快速裂变:见证微信强大后台架构从0到1的演进历程(一)
快速裂变:见证微信强大后台架构从0到1的演进历程(二)
微信团队原创分享:Android内存泄漏监控和优化技巧总结
全面总结iOS版微信升级iOS9遇到的各种“坑”
微信团队原创资源混淆工具:让你的APK立减1M
微信团队原创Android资源混淆工具:AndResGuard [有源码]
Android版微信安装包“减肥”实战记录
iOS版微信安装包“减肥”实战记录
移动端IM实践:iOS版微信界面卡顿监测方案
微信“红包照片”背后的技术难题
移动端IM实践:iOS版微信小视频功能技术方案实录
移动端IM实践:Android版微信如何大幅提升交互性能(一)
移动端IM实践:Android版微信如何大幅提升交互性能(二)
移动端IM实践:实现Android版微信的智能心跳机制
移动端IM实践:WhatsApp、Line、微信的心跳策略分析
移动端IM实践:谷歌消息推送服务(GCM)研究(来自微信)
移动端IM实践:iOS版微信的多设备字体适配方案探讨
信鸽团队原创:一起走过 iOS10 上消息推送(APNS)的坑
腾讯信鸽技术分享:百亿级实时消息推送的实战经验
>> 更多同类文章 ……

[2] 有关QQ、微信的技术故事:
腾讯开发微信花了多少钱?技术难度真这么大?难在哪?
技术往事:创业初期的腾讯——16年前的冬天,谁动了马化腾的代码
技术往事:史上最全QQ图标变迁过程,追寻IM巨人的演进历史
技术往事:“QQ群”和“微信红包”是怎么来的?
开发往事:深度讲述2010到2015,微信一路风雨的背后
开发往事:微信千年不变的那张闪屏图片的由来
开发往事:记录微信3.0版背后的故事(距微信1.0发布9个月时)
一个微信实习生自述:我眼中的微信开发团队
首次揭秘:QQ实时视频聊天背后的神秘组织
>> 更多同类文章 ……

附录2:更多即时通讯/社交产品的实践总结、感悟分享


技术往事:微信估值已超5千亿,雷军曾有机会收编张小龙及其Foxmail
QQ和微信凶猛成长的背后:腾讯网络基础架构的这些年
闲话即时通讯:腾讯的成长史本质就是一部QQ成长史
腾讯开发微信花了多少钱?技术难度真这么大?难在哪?
技术往事:史上最全QQ图标变迁过程,追寻IM巨人的演进历史
开发往事:深度讲述2010到2015,微信一路风雨的背后
开发往事:记录微信3.0版背后的故事(距微信1.0发布9个月时)
微信七年回顾:历经多少质疑和差评,才配拥有今天的强大
前创始团队成员分享:盘点微信的前世今生——微信成功的必然和偶然
QQ的成功,远没有你想象的那么顺利和轻松
[技术脑洞] 如果把14亿中国人拉到一个微信群里技术上能实现吗?
QQ和微信止步不前,意味着即时通讯社交应用创业的第2春已来?
那些年微信开发过的鸡肋功能,及其带给我们的思考
为什么说即时通讯社交APP创业就是一个坑?
即时通讯创业必读:解密微信的产品定位、创新思维、设计法则等
老罗最新发布了“子弹短信”这款IM,主打熟人社交能否对标微信?
盘点和反思在微信的阴影下艰难求生的移动端IM应用
QQ现状深度剖析:你还认为QQ已经被微信打败了吗?
那些年微信开发过的鸡肋功能,及其带给我们的思考
渐行渐远的人人网:十年亲历者的互联网社交产品复盘和反思
>> 更多同类文章 ……

即时通讯网 - 即时通讯开发者社区! 来源: - 即时通讯开发者社区!

标签:微信
上一篇:微信团队披露:微信界面卡死超级bug“15。。。。”的来龙去脉下一篇:随手记APP在iPhoneX上的真机适配实践总结

本帖已收录至以下技术专辑

推荐方案
评论 6
问题永远比想到的要多
国内很多人对微信嗤之以鼻,但是,微信是真正把产品做到了一种生活方式,做到了大象无形的级别。
引用:stonelv 发表于 2017-12-22 11:55
国内很多人对微信嗤之以鼻,但是,微信是真正把产品做到了一种生活方式,做到了大象无形的级别。

从技术的角度讲,微信确实是在追求极致
签名: 《即时通讯音视频开发(十九):零基础,详解视频编码技术原理》http://www.52im.net/thread-2840-1-1.html
赞同!
赞同!
厉害!
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部