Home  >  Article  >  Database  >  豌豆荚范怀宇:我们在豌豆荚2.0重构时遇到的坑

豌豆荚范怀宇:我们在豌豆荚2.0重构时遇到的坑

WBOY
WBOYOriginal
2016-06-07 15:36:331365browse

在豌豆荚2.0上线后,我们的装机量从8个月前的2500万,增加到现在的6000多万。豌豆荚2.0的开发周期用了漫长10个月的时间,尽管早知跟前作相比会有很大提升,但这个结果还是让我们稍微有点骄傲。 豌豆荚1.0版本出现了什么问题才促使我们决定要重做一个新版本豌

在豌豆荚2.0上线后,我们的装机量从8个月前的2500万,增加到现在的6000多万。豌豆荚2.0的开发周期用了漫长10个月的时间,尽管早知跟前作相比会有很大提升,但这个结果还是让我们稍微有点骄傲。

豌豆荚1.0版本出现了什么问题才促使我们决定要重做一个新版本豌豆荚?新版本的豌豆荚的技术构架是什么?我们遇到什么困难,又是如何解决的?我们把开发豌豆荚2.0的思路和解决方案整理成文字分享给各位,希望对大家遇到类似问题有所帮助。

豌豆荚范怀宇:我们在豌豆荚2.0重构时遇到的坑

图:豌豆荚2.0操作界面

豌豆荚1.0:快速搭建的“积木”

豌豆荚2010年4月正式对外发布第一个测试版本,此后用户在不断增加,到2011年2月份取得了100万安装量的成绩。

豌豆荚范怀宇:我们在豌豆荚2.0重构时遇到的坑

图:豌豆荚1.0操作界面

这是豌豆荚1.0的样子,我们在上面尝试了很多功能,做了很多不同的探索,同时也希望把整个操作界面做得更简单,功能匹配得更合理。不断的尝试得到了用户的认可,到2011年的10月,我们有了1000万的安装量,直到今年2月份豌豆荚2.0正式发布的时候,已经有了2500万的安装量。

豌豆荚范怀宇:我们在豌豆荚2.0重构时遇到的坑

图:豌豆荚1.0装机量曲线图

我们的用户数量一直处于高速增长状态,但为什么我们非要把整个豌豆荚停下来重做?

其实很重要的原因是:为了最早的快速试错和验证需求。豌豆荚1.0版本在我们看来就好像是乐高玩具,简易、灵活,但是终究无法成为我们希望中的高性能跑车。当我们想在上面加更多新功能时,却发现1.0有一个很严重的问题——代码耦合非常严重:由于不断尝试功能又缺少对质量的监控,导致到了去年4月份,我们再想往上面加任何新功能变得异常困难,牵一发而动全身。

另外一个问题是,早期为了快速的尝试产品想法,我们选择使用.Net平台,这确实给我们做探索和新功能带来了很大的便利,但.Net平台的一些局限性也给豌豆荚1.0版本带来了不少严重问题,比如性能问题、应用启动慢、CPU占用高以及内存大等。

记得我们在做豌豆荚1.0的时候,由于启动速度过慢,不得不在启动时加了一个splash页,上面写着:如果你数到7,豌豆荚就会启动。但是如果你在一台配置一般的机器上,你可能数到10,数到20,豌豆荚都没办法启动。基于如此种种问题,考虑到豌豆荚今后的发展,我们觉得有必要停下来,先把现有的功能做好,所以我们选择了重构。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn