我在自己折腾的几个练手的小应用中,使用了LeanCloud,在使用过程中还是有不少感触,总结一下,相信也代表了不少的个人开发者。

相信大部分个人开发者选择LeanCloud的第一原因,是要快速开发。表面也确实如此,lc提供了各种服务,正所谓专业的人做专业的事,开发者只需要集中精力在前端/客户端的开发,快的话,可能一两天就能利用lc搭建起了一个原型,对应用层的开发者(前端/客户端)来说,似乎一个人就能完成一整个应用,确实很有吸引力。

但接触下来,还是有一些痛点:

  • 后端服务,不能代替后端知识。所以打铁还需自身硬,虽然Leancloud对各种后端服务进行简化和抽象,直接通过提供的SDK调用方法就行了,但开发者仍需要掌握后端中的一些通用知识,才能够玩转。比如说使用最多数据存储服务,实际上对应的就是数据库的概念,开发者首先需要掌握数据库的基本概念(越深入越好),才能用好数据存储服务。
  • 学习成本。虽然LeanCloud的文档写的很好,但我感觉用起来还是很累的,一边开发另一窗口开着文档在查找相应的内容。
  • 黑盒。Leancloud对开发者可见的,只有文档了,开发者并不知道调用时发生了什么,一切顺利的情况下还好,如果报错了,就只能到文档中寻找答案,如果恰好这时候文档没找到答案,就比较悲催了,只能发工单(vip)或者到论坛提问,效率是比较低的。这也是前面说的,开发起来感觉累。这也是缺点之一,如果是自己写后端服务,碰到问题,可以到搜索引擎中寻找答案。
  • 技能的局限性。深入使用了LeanCloud之后,你可能对LeanCloud SDK中各种方法功能很了解,但如果有一天迁移了平台,或者自己写服务器,那这部分LeanCloud的知识就没什么用了。熟练掌握LeanCloud数据存储服务的价值远比不上深入熟练使用MySQL。
  • 其他一些局限和不完善之处。用LeanCloud作后端,就得接受这些限制,当然这些限制可能有LeanCloud开发团队的一些考虑在里面,但失去了一定自由度。

我觉得LeanCloud的优势,主要还是快速开发,节约开发成本,但开发体验的话,就不一定了。