(文章的开头决定了整篇文章的风格- - 虽然想写得正式些,但是开头总是严肃不起来- -

创宇实习流水账

Day#1

上周结束之前,黄老师留下一个任务。回去看代码,想好要做什么。 最后决定完成周会上的任务 —— “统一API”(后来才发现这个名字真不好。

周一上午继续晚上上周的代码。

下午跟黄老师、姚总、飞飞进行了项目的讨论。

Day#2

对项目的理解还是很模糊,对实现也是没什么头绪。。 网上搜索了不少资料,看了别人怎么设计 API ,搜索各种资料(具体做了什么还真忘记了

下午和飞飞进行了实现的讨论,对项目算是有一定的了解了。

Day#3

上午将项目的理解再和姚总做了一翻确认。

下午开始写代码。。

Day#4

coding...

Day#5

coding...

统一 API 设计

前文提及了,这个名字其实不好。因为容易误解。

最开始我理解是把现有的 API 风格统一起来,而实际上是设计一个代理服务器,所有服务向它请求,然后再由它做转发。目的是将所有现有 API 共同要做的事情抽离出来放在一起。因此实际上跟设计 API 没有什么关系。

而“共同要做的事情”有(都是可选):

  1. 加密解密。外部请求以加密信息发送到 API 服务器,由 API 服务器负责解密,将明文信息转发到对应的后端 API,等待后端 API 的响应。响应结果加密后回发到外部。
  2. IP 限制。不同 API 有不同允许进入的 IP。
  3. ...

项目架构

分成两部分:反向代理服务器 以及 后台管理。

反向代理

  1. 根据请求的 URL 做解析,解析出对应的后端 API 实际 URL。
  2. 访问数据库,得到该 API 所需的预处理(加密解密、IP 限制等)
  3. 对数据做预处理。
  4. 请求转发,等待回应。
  5. 响应前处理。
  6. 完成一次操作。

后台管理

为了方便对不同 API 做配置,将所有相关的配置放在数据库中。 后台管理提供用户界面完成 API 的配置。

遇到的问题

需求理解

前面几天的时间其实都耗费在需求的理解上。

第三方库使用

最近开发效率一直都不高,其实是对第三方库不熟悉的原因。一直在翻代码翻文档。经验还不够- - 。。

团队合作

以往都是自己一个人开发,偶尔有合作也是跟工作流、代码风格相似的童鞋一起合作。

这个项目是跟成都一个实习生一起合作完成,两个人的风格上差异比较大。

Review 的时候- - 挺痛苦的。

不过这个问题慢慢习惯了。

吐槽

最后还要吐槽下自己。感觉还是不在状态上。

每天有些混日子的感觉,没有真正学习到多少东西(除了看文档