微信号:infoqchina

介绍:有内容的技术社区媒体

TeamToy2的开发故事:面向移动的API设计,代码重用,快速迭代

2013-03-07 16:05 InfoQ

2013年的元旦后,一个名叫TeamToy的项目再次进入了人们的视野。跟BaseCamp、TeamBox、Asana等服务类似,TeamToy是一个面向团队的Todo类产品,目的在于促进团队沟通、提升协同做事的效率。


这是个完全开源的项目!


“你们又是免费又是开源,背后到底有什么目的!说!


这的确有些不可思议,按韩寒的算法TeamToy的开发成本得过百万了,不过TeamToy其实主要是为我们自己使用而开发的。在满足自己之余,将其开源出来,其实并不是太高的成本。当然我们也可以做一个多用户的商业托管版本,不过那样太麻烦,而且不讨人喜欢。没有理由给一个很酷的东西加上一个不讨人喜欢的特性,对吧?” ——来自TeamToy的FAQs


TeamToy的作者陈理捷(@Easy)是一名80后,现任新浪云平台产品主管,负责过SAE、新浪移动云、新浪云商店、微盘等产品。


最近,Easy对TeamToy进行了重写,并发布了移动版TeamToyPocket的源代码。


为什么要重写?


“最主要的是考虑到移动端的强烈需求,这要求提供客户端可用的API,Web页面需要进行自适应设计,而TeamToy V1写于08年,并没有面向API设计,使用的一些周边库也比较陈旧。另外就是产品设计上,TeamToy v1更多的是去追求功能,而V2更多的是希望简捷,整个前端界面的风格都需要重做。


考虑这些因素后,我觉得重写的成本虽然不低,但更利于项目的长期发展。


实际上在重写过程中,我还顺便把它所用的框架LazyPHP升级到3,换上了JQuery、Bootstrap等主流的前端库和框架,最后节省了大量的时间。”


为什么要开源?


“开源对我来讲,更多的是一种推动我们积累知识向前进步的方式。


为什么这么说呢?现在的很多协作是基于开放平台的,Facebook和新浪微博上有很多的应用,让我们的工作和生活都更加方便了。但如果Facebook倒闭了呢?如果新浪微博把你的APPKey收回了呢?我们就瞬间回到了原始时代,而第三方在这些平台上花费的精力就完全报废了。


但TeamToy不一样,因为通过开源,我释放了控制权,使得任何人都可以自行架设它。只要你能找到服务器,你就能继续你已经习惯了的高效工作环境。不会因为开发商的问题而无法继续;而你为TeamToy贡献的所有插件,都会成为整个TeamToy用户群的财富。


这就是开源对TeamToy的意义,它保证了这个项目不会退步,保证了用户得到的不会失去。”


点击“阅读原文”查看更多内容并吐槽吧。

 
InfoQ 更多文章 Facebook如何实现PB级别数据库自动化备份 学术派Google软件工程师Matt Welsh谈移动开发趋势 成都下周全城整治清理“烈性犬” 小学生该不该带手机到学校? 好消息!“扫地娃”钟杰明日成都上学!
猜您喜欢 【精选案例】赛程魔方3D旋转界面设计 Python基础教程1:Python简介 IPv6-only 的兼容性解决方案 未来,你可能不属于任何公司 支付宝离职员工自白书(跳槽须谨慎)