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

  • 开放平台的理解  

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

  • 公司的开放平台的现状

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

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

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

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

转载于:https://www.cnblogs.com/zivxiaowei/p/3286855.html

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

  1. 数字化时代 需要利用计算机辅助,浅谈计算机辅助工业设计中的人机交互

    浅谈计算机辅助工业设计中的人机交互 论文关键词:工业设计 计算机辅助工业设计 人机交互 论文摘要:计算机辅助工业设计是工业设计未来的发展方向,本文从工业设计及计算机辅助工业设计的一般含义出发,探究计算 ...

  2. 新浪微博开放平台API中page参数的使用方法

    新浪微博开放平台API中page参数的使用方法 在做项目的时候,有时候要调用新浪微博开放平台的API.说实话,新浪微博的API功能很强大,但是API文档写的不是很清楚. 我在做项目的时候,调用了很多A ...

  3. 极简主义_网页设计中功能极简主义的真实性要少得多

    极简主义 Written by Jessica Bennett 由杰西卡·贝内特 ( Jessica Bennett)撰写 介绍 (Introduction) "Less is more&q ...

  4. 简谈基于fpga设计9/7小波变换原理

    简谈基于fpga设计9/7小波变换原理 9/7小波变换包括行变换,列变换. 其中行变换包括第一步行变换,第一步行更新,第二步行变换,第二步行更新. 列变换包括第一步列变换,第一步列更新,第二步列变换, ...

  5. java接口开放平台设计,OpenApi开放平台架构实践

    WebAPI 开放平台架构实践 导读 背景 需求 场景 架构设计 总结 背景 随着业务的发展,越来越多不同系统之间需要数据往来,我们和外部系统之间产生了数据接口的对接.当然,有我们提供给外部系统(工具 ...

  6. SDCC讲师预热专访:淘宝岑文初谈开放平台架构

    CSDN年度技术盛宴 2012 SDCC中国软件开发者大会将于 2012年9月8日-9日在 北京 • 国家会议中心举行. 软件研发频道 将采访一些与会讲师,谈谈他们将在会上分享的内容. 本期我们采访的 ...

  7. 开放平台设计之接口签名认证

    目录 前言 签名认证 签名认证步骤: 下面以java代码举例: DEMO 前言 当前时代,数据是王 道!当我们自己的平台有了足够大的数据量,就有可能诞生一个开放平台供第三方分析.使用.那么我们怎么去实 ...

  8. 微信开放平台开发中遇到的问题

    errcode":-1,"errmsg":"system error, hints: [ req_id: 1qMhFA0855sns4 ]"}&quo ...

  9. 通用接口开放平台设计与实现——(2)功能架构

    前面说过,接口开放平台主要有两部分功能组成,一是处于主体地位的API接口,对外提供数据服务:二是处于辅助角色的消息服务,用于通知数据变动. 实际上,客观上还需要平台自身管理功能,来维护平台的基础数据和 ...

最新文章

  1. Palo Doris版五分钟快速入门
  2. ecs服务器内网连接_让不同地域云服务器ECS和云数据库内网互通
  3. 基于JAVA+SpringMVC+Mybatis+MYSQL的物流管理系统
  4. 关于 CSS will-change 属性你需要知道的事
  5. linux脚本定时执行,Shell脚本实现每个工作日定时执行指定程序
  6. Cobalt Strike参数详解
  7. CSS 绘制三角形原理演示(动画)
  8. php养老院管理系统论文,养老院一卡通管理
  9. 微信小程序的转发分享功能
  10. Registration based Few-Shot Anomaly Detection
  11. Ivy Book List
  12. 【Tensorrt】Tensorrt C++部署YOLO v5报错记录 Version tag does not match. Note: Current Version: xxx, Serializ
  13. 卷积总结篇(普通卷积、转置卷积、膨胀卷积、分组卷积和深度可分离卷积)
  14. 给设计师的建设性反馈
  15. Java中Calendar基本使用--Comparator.comparing比较排序
  16. filezilla提示 local: unable to open
  17. js修改对象数组⾥的对象名字
  18. 宅男福利!爬虫实战,爬取原神真人c图片并保存,谁的老婆快抱走
  19. 自走棋java代码,【自走棋】地图格子高亮效果
  20. 光猫修改上报服务器地址,怎样改光猫的ip地址!急求!!

热门文章

  1. 如何获取网站的ico图标呢?
  2. Selenium私房菜系列8 -- 玩转Selenium Server
  3. python画版图_基于mask-RCNN的版图分析,MaskRCNN,版面
  4. 分布式事务与2PC、3PC理论详解
  5. 微服务架构设计,对云原生的超越12因素了解吗,使用于所有语言!!!
  6. ubuntu用户目录安装pip(无root权限)
  7. 大学生能从计算机游戏中受益,2017年12月英语四级作文范文:大学生玩游戏
  8. php前后分离的工作写法,[前后端分离项目]thinkphp返回给前端数据为字符串
  9. mysql flask-login_Flask框架通过Flask_login实现用户登录功能示例
  10. 聚类效果评价——Calinski-Harabasz(CH指标)——内部评估标准(2)