创宇实习周记之壹
(文章的开头决定了整篇文章的风格- - 虽然想写得正式些,但是开头总是严肃不起来- -
创宇实习流水账
Day#1
上周结束之前,黄老师留下一个任务。回去看代码,想好要做什么。 最后决定完成周会上的任务 —— “统一API”(后来才发现这个名字真不好。
周一上午继续晚上上周的代码。
下午跟黄老师、姚总、飞飞进行了项目的讨论。
Day#2
对项目的理解还是很模糊,对实现也是没什么头绪。。 网上搜索了不少资料,看了别人怎么设计 API ,搜索各种资料(具体做了什么还真忘记了
下午和飞飞进行了实现的讨论,对项目算是有一定的了解了。
Day#3
上午将项目的理解再和姚总做了一翻确认。
下午开始写代码。。
Day#4
coding...
Day#5
coding...
统一 API 设计
前文提及了,这个名字其实不好。因为容易误解。
最开始我理解是把现有的 API 风格统一起来,而实际上是设计一个代理服务器,所有服务向它请求,然后再由它做转发。目的是将所有现有 API 共同要做的事情抽离出来放在一起。因此实际上跟设计 API 没有什么关系。
而“共同要做的事情”有(都是可选):
- 加密解密。外部请求以加密信息发送到 API 服务器,由 API 服务器负责解密,将明文信息转发到对应的后端 API,等待后端 API 的响应。响应结果加密后回发到外部。
- IP 限制。不同 API 有不同允许进入的 IP。
- ...
项目架构
分成两部分:反向代理服务器 以及 后台管理。
反向代理
- 根据请求的 URL 做解析,解析出对应的后端 API 实际 URL。
- 访问数据库,得到该 API 所需的预处理(加密解密、IP 限制等)
- 对数据做预处理。
- 请求转发,等待回应。
- 响应前处理。
- 完成一次操作。
后台管理
为了方便对不同 API 做配置,将所有相关的配置放在数据库中。 后台管理提供用户界面完成 API 的配置。
遇到的问题
需求理解
前面几天的时间其实都耗费在需求的理解上。
第三方库使用
最近开发效率一直都不高,其实是对第三方库不熟悉的原因。一直在翻代码翻文档。经验还不够- - 。。
团队合作
以往都是自己一个人开发,偶尔有合作也是跟工作流、代码风格相似的童鞋一起合作。
这个项目是跟成都一个实习生一起合作完成,两个人的风格上差异比较大。
Review 的时候- - 挺痛苦的。
不过这个问题慢慢习惯了。
吐槽
最后还要吐槽下自己。感觉还是不在状态上。
每天有些混日子的感觉,没有真正学习到多少东西(除了看文档