简谈“开放平台”设计中的一些感悟

  从2012年11月份实习开始,到现在2013年9月已经算是工作将近一年时间了,个人是从工作中学到了不少东西的。刚进公司的时候主要是负责平台服务器开发,后来由于我对前端的一些偏向,所有年后不久就转到公司前台业务的Web开发。因为我从公司开放平台服务的开发,然后到公司web产品的开发这2个部分都有参与,所以自己对公司的这个架构设计上和业务层面的一些设计也是有了自己比较深刻的感受。其中开发过程中发现公司开发平台设计中,由于一些不合理的设计,造成了公司之后的一些依赖开放平台服务器的项目的开发成本严重的增加,并影响了整个开放平台的生态和布局。仅此写文总结,并无他意,希望对自己之后的工作有帮助。下面让我细细讲解我的一些理解。

  • 开放平台的理解  

  开放平台简而言之即是一个可提供数据接口的服务器,什么样的数据就要根据具体的业务了。如今各大公司都有自己相应的开放平台,例如新浪微博的开放平台,百度开放平台等等。开放平台主要是给开发者提供了丰富的数据接口,让开发者在利用已有的开放平台的基础上可以轻松的开发出满足自己业务设计的程序。所有一个开放平台的设计如果不合理会直接导致开发者的开发成本直接翻倍。开放平台本身是为了简化并降低开发者的开发成本的,如果由于设计的不合理,返回会造成帮倒忙情况。

  • 公司的开放平台的现状

  公司开放平台的主要功能是为开发者和公司用户提供数据支持,其中主要存贮处理的是从远程硬件设备上面采集过来的传感器数据,并支持对相应的设备进行远程控制。当然,平台支持开发者注册接入自己的传感器和控制设备的,并提供公司项目和产品的支持。起初,这个平台包含的内容比较少,只是对简单的传感器,控制设备进行的管理和数据处理。后来由于公司在开发一些项目时候,由于业务的需求,逐渐抽象了一些新的概念,例如:场景,权限。当时平台团队为了适应更多的项目,并且为了满足公司web项目组和手机项目组的接口需求,在没有慎重考虑的情况下,决定把业务性的东西给设计到了开发平台当中,但是当时只是迎合了当前的项目,对广泛的需求欠缺了考虑。而后果是可想而知的。下面是平台对外数据支持的一个结构图:

 

   在平台为了适应项目上的一些需求的同时,由于融入了相应的业务概念后,当为了满足公司移动端和web产品更多的项目开发需要的时候,平台组不得不为了不断的需求变动对平台的设计再三的更改,同时也需要提供越来越多的接口。由于平台在业务上过多的设计,导致的一个很明显的结果就是,发现开放平台总是不能满足新项目的需求,而平台开发团队老是要重新的设计和开发。具体后遗症我总结的有下面几条:

  1. 开放平台由于不小心融入了过度的业务性设计,开放平台一点都不开放!有强烈的业务定制化性质!
  2. 平台陷入了重新设计开发的恶性循环,增加了平台团队后期的开发成本和维护成本
  3. 开发者发现开放平台并不能满足自己项目的业务需求
  4. 公司web项目组每次的开发周期并未得到缩短,反而由于每次项目上的问题,在平台接口上花费了大量的精力
  5. 开放平台丢失了为开发者提供开放接口的本质

  由于整个平台支撑着公司所有产品与项目的运营,同时目标是对外开放,所有由于这些设计上的失误,对公司的整个产品线的影响是相当大的。个人体会是前期对这种开发平台的设计时一定要慎重考虑,不然后果是相当的麻烦的。

posted @ 2013-08-28 14:21  Ziv小威  阅读(2328)  评论(12编辑  收藏  举报