对于网站或者平台,大多不可避免的要和第三方合作、或者接入第三方平台,合作的实现多是通过对对方接口的调用实现的。例如:网站用户共享、网银支付的接入、无纸化彩票投注平台的接入等等。

和第三方合作的接口开发工作,我做了没10次大概也有7,8次了吧。在这些合作的开发过程中,遇到过很多这样那样的问题,有些问题觉得还是有必要记录下来,反思一下,另外也由此延伸,想到了关于技术负责人应该担负的责任等问题。

第一:接口开发的流程问题。

接口开发的大致流程:
1.和第三方讨论需要实现哪些接口。
重点是要确定每个接口的具体功能。接口参数在开发过程中常常会有变动,所以讨论中一般不会明确定义。

2.编写详细设计文档。
文档包括接口名,参数名,参数类型,返回消息格式等,并提供给合作方。

3.编码
接口根据实际需要进行调整,同时更新详细设计文档,保持接口详细设计的可追溯性。

4.测试
包括接口内部测试、修改,和第三方的联调。

5.上线
接口正式上线,测试通过则上线成功,失败则回退,并从第4步开始新一轮的测试,直到系统上线成功。

常见问题:
1.详细设计文档应付了事,甚至不写设计文档。
实际的开发过程中,由于时间的原因,或者开发团队对设计文档的不重视,造成有的开发者忽视接口设计文档的作用,甚至不写设计文档。设计文档的缺失,往往会造成:人员流动时,系统无法顺利交接;会给接口的升级,带来重重困难。

2.不按合作双方的接口定义,私下决定不实现某些接口。
这种情况不一定每个人都会遇到,但我确实遇到过这种事情。某一次和一个比较有名的体育社区的合作过程中,由于我们的平台是类电子商务的,所以要给用户建立财务账户,如果我们系统中不保存用户的基本信息,就没法为用户创建账户。

所以我方提供的接口文档中,有一个注册接口,需要用户在体育社区的注册时,同时把信息传递到我们的平台,这样我们就会为这个用户创建财务账户,否则,用户登录时就会有问题。

合作方对接口文档没有提出异议,但双方接口上线一段时间后,一次偶然的聊天过程中,对方开发人员透露,他们根本没有调用注册接口。吓了我一大跳,多亏我们前期的设计和编码中考虑得比较完善,否则,接口上线后,不堪设想。

所以,大家一定要遵守事先的约定,不要违背事先的约定,否则会出大乱子。

第二:接口开发过程中,发现原有功能设计有不合理的地方,应该对系统重构,还是仅仅实现功能了事?
以我的经验而言,总的来说大多因为原有接口缺乏可扩展性,导致添加新功能或者接口更改后代码冗余的问题。究其原因,有下面几种情况的原因:

1.开发周期比较紧张,来不及对原有代码重构。

2.开发人员懒得去重构,或者不具备重构的能力。

个人认为,这些问题归根结底要由开发流程来约束和控制。

开发周期紧张的情况下,技术负责人一方面要争取尽量多的开发时间,另一方面要根据开发任务的难度安排水平尽量高的人员来做;如果高水平的人员有了,时间还是紧张,可以考虑在以后某个合适的时间来重构这部分代码,千万不要让这部分待重构的代码永远的等待下去。应该制定合理的重构时间表,作为正常的开发流程的一部分。

第三:技术负责人在系统构建过程中应该担负哪些责任?

无论系统对外接口,还是系统内部功能,都是整个系统的一部分,都是技术负责人的控制范围。

个人认为技术负责人应该对开发流程的建立、系统质量负主要责任。能否建立合理的开发流程,能否领导开发人员产出高质量的软件系统,是一个技术负责人是否合格的很重要的判断标准。

就算开发团队中,开发人员数量充足,水平够高,但是开发流程不完善,缺乏合理的约束,往往会导致一部分人滋生得过且过的心态,编码完了基本上就算了事。有的人争取尽量多的空闲时间来学习新技术,为将来谋划;有的人刚接了私活,人家催的比较急,需要上班时抽空做呢;这种情况并不少见,怎样在这中恶劣的情况下保证开发工作在规定的时间内、高质量的完成?没有严谨的、合理的开发流程根本不可能领导这些"各怀心腹事"的开发人员研发出高质量的系统。

个人认为,技术负责人一定要抓住软件开发过程中的三个关键点:测试、代码复查、模块重构,一定要重视再重视,程序员和老板讲解它们的重要性,他很可能不明白其重要性,但是技术负责人千万不能不重视这三个环节,如果您都不懂或者不重视,那最终产出的是什么样的系统,大家可想而知了。

接口开发及技术负责人的职责随笔相关推荐

  1. 产品经理岗位职责说明_技术负责人岗位职责,五大方面,超越岗位抓住未来才是技术大牛...

    技术负责人一般指建设领域.生产制造领域.电子商务领域,负责全过程的技术决策.技术指导. 技术负责人的岗位职责包含五个方面: 技术职责:负责具体技术方案设计思路.关键参数等技术决策,负责对所有技术人员进 ...

  2. PHP接口开发加密技术实例原理与例子

    下面例子简单讲解PHP接口开发加密技术: 如app要请求用户列表,api是"index.php?module=user&action=list" app生成token = ...

  3. java技术主管的岗位职责_【JAVA项目经理/技术负责人职责】2021年利必达电商JAVA项目经理/技术负责人岗位职责-看准网...

    本人机械方向大三学生,参加了17年5月底的大疆提前批校招,应聘机械工程师职位,经过了两轮简历筛选.一轮网测.一次电话初面和一次视频面试,因为自身能力不够,视频面试表现不好,应该拿不到最后的offer了 ...

  4. 基于HttpClient接口开发实例(一)

    前言 本系列将是本人的一些开发经验总结.由于身处金融IT因而因业务需求需要和银行接口打交道,恰巧最近公司有个项目和这有很大的关系,下面我们将着重从基于HttpClient接口开发的技术点+基本业务点说 ...

  5. PHP接口开发常规加密办法

    PHP接口开发是PHP常见的技术,可以通过接口进行一些操作,可以访问接口获取数据,给app提供数据接口等,但是如果接口没有加密解密的过程,很容易发生盗用和不安全的操作. 下面例子简单讲解PHP接口开发 ...

  6. 实战react技术栈+express前后端博客项目(8)-- 前端管理界面标签管理+后端对应接口开发...

    项目地址:https://github.com/Nealyang/R... 本想等项目做完再连载一波系列博客,随着开发的进行,也是的确遇到了不少坑,请教了不少人.遂想,何不一边记录踩坑,一边分享收获呢 ...

  7. SAP 接口开发技术和工具

    导读:在今天的互联网世界中,接口(Interface)在不同系统之间交换信息方面起着至关重要的作用,不论是在企业内部还是外部的不同环境中.接口的使用有多种原因,如将数据从遗留系统转移到SAP系统,提供 ...

  8. 某软件平台定制开发项目技术标书

    LOGO GG市xxxxx管理局   XXXXXXXXXX平台建设项目 招标编号: XXXXXXXX-XXX 技 术 文 件 单位全称(公章):浙江某某有限公司 地    址: 邮    编:3100 ...

  9. 售前技术支持工作职责和能力要求

    售前技术支持工作职责和能力要求 在IT界,成功的完成一个项目的需要销售人员.售前人员.项目实施人员(开发人员).售后服务人员等密切协作.本文从售前技术支持人员的角度,对售前技术支持工作的过程进行了描述 ...

最新文章

  1. Ubuntu下文件权限管理
  2. 干货 | 彻底弄懂 HTTP 缓存机制及原理
  3. React开发(124):ant design学习指南之form中的属性
  4. MongoDB学习笔记(一) MongoDB介绍及安装
  5. 用Python代码实现五子棋游戏
  6. 大学二年级各科的学习成绩
  7. 8岁小学生表白遭拒:被一部iPhone打败
  8. Android Studio 设置/更改 SDK 路径
  9. 知乎高赞:当update修改数据与原数据相同时会再次执行吗?
  10. machine learning之PCA、ICA
  11. java解析魔兽争霸3录像_Java解析魔兽争霸3录像W3G文件(五):Action和APM计算
  12. java jshell_Java基础教程——Jshell
  13. 安全视角下的CAN协议分析
  14. JAVA中Long与Integer踩的坑
  15. 计算机控制pwm,如何制作自制脉宽调制(PWM)电机控制电路
  16. 负载均衡器和代理服务器
  17. python3socket非阻塞在linux里无效_Linux Socket - 内核非阻塞功能
  18. ASP WebShell 后门脚本与免杀
  19. 深度学习AI美颜系列——人像静态/动态贴纸特效算法实现 | CSDN博文精选
  20. TM1637芯片使用(I2C总线协议学习),含完整程序

热门文章

  1. 基于HTML的环境网站设计 HTML+CSS环保网站项目实现 带设计说明psd
  2. Cortex-M3处理器
  3. 【ICML 2015迁移学习论文阅读】Unsupervised Domain Adaptation by Backpropagation (DANN) 无监督领域自适应
  4. commander.js之option、command、version
  5. 软件分发linux,软件分发工具 | 自动化软件分发 - ManageEngine Desktop Central
  6. oracle audit_actions,配置Oracle安全审计选项audit
  7. 下载在线阅览的pdf文件
  8. docker(1):什么是 Docker
  9. python求100内五的倍数_100一百以内5的倍数有哪些
  10. 厉害了!华为将发布国产编程语言,打破国外垄断!