2018-08-26 工作总结

我还是想多写点代码,但现实与意愿有矛盾; 另一方面我觉得我们现在的开发模式是“小作坊”式的,渴望转型为“工业级”的模式

工作内容

  1. 阿里OCR对接,已实现js版的身份证,驾驶证,行驶证OCR识别
  2. 支持8.16后的第一次小迭代上线
  3. 打杂(筛选简历,面试,外部团队交流,开发内容分配,开发成果检验)

经历1: 沉溺代码,不可自拔

这周前两天对接OCR我很开心,终于可以沉溺代码,不可自拔。当然,我也踩了坑,走了弯路。

背景是,客户开发经理只告诉我使用阿里云的OCR接口,给了我key与secret,其他啥也没说。

那我就自己去找,结果发现,官网做得很垃圾,OCR的入口不好找。

于是找到了云市场,发现里面有好多不同公司提供的接口,光是身份证识别就有好几家,我当时没多想,选了第一家,点了进去,准备直接上手撸。因为我看了接口调用说明,不同的接口统一走API网关,所以把key与secret拿到,按照文档使用同样的方法计算出签名,即可调用不同的接口。

因为API文档里有在线调试功能,于是我先调试一波,结果发现使用客户给的key与secret调试失败,说我没有购买产品。WTF?这里一定有啥坑。我没多想,自己去了个0元体验OCR服务,可以调用几次,我再去在线调试,又成功了。怎么回事?后来注意到url的参数,我明白了,这个在线调试一定要使用购买服务的账号,登录后,从自己的阿里云控制台点进去才行,否则就算拿到key与secret,我也不可能成功的。md,这官网。

那么,接下来的重点就是签名算法的实现了。结果文档里,只提供了后端语言的SDK及签名Demo,这就让我很捉急了。难道还要我翻译一下Java代码?折腾了一下,最后还是在Github找到了别人的示例,改造一波,调用成功了。(后来才发现,阿里云有提供Node.js版本SDK)

OK,身份证对接成功,我接着对接驾驶证。这时就踩了大坑,因为我这次选择了一家深圳的公司提供的OCR驾驶证接口。这有啥区别吗?这里要说明一下阿里云的云市场提供的接口与公司的关系。

阿里云的云市场其实是提供了一个API平台,里面会有不同的公司(也包括阿里云计算有限公司)入驻,在对外提供各自的开放接口。拿OCR驾驶证接口来说,深圳某家公司有提供,阿里云计算有限公司也有提供,这其实是两个不同的接口,当然它们都可以通过统一的签名认证,但你想调用成功,必须先购买具体某个公司的接口。

所以问题就来了,客户说的,“阿里云的OCR接口”,这个“阿里云”到底是指“云市场”,还是指“阿里云计算有限公司”,并未清晰。这些也是后来才明白过来的,在对接的时候,没想到这一层,于是选了一家深圳公司提供的OCR驾驶证接口,调用500。当时已是晚上十点半,我看接口说明,24小时在线客服,于是打了电话过去,加了对方开发的钉钉,约好第二天一起调试了一波。第二天成功后,对方劝说我购买他公司的产品,因为比阿里云的更便宜实惠。这才点醒我不同公司不同API的关系。于是,我再找客户开发经理确认,才发现客户购买的API全是“阿里云计算有限公司”提供的,所以说,我花了大半天调试的API,其实是白费功夫了。。。

虽然对接外部系统踩了坑,走了弯路,但从结果来看,最终还是完成了。我是喜欢这种探索,遇到障碍之后扫除障碍的感觉。编码的感觉,让我很充实。

经历2:项目进展让我焦头烂额

调通OCR接口,两天过去了,再重新来看上线安排,发现根本完成不了啊。

这里有几点比较关键:

  1. 当初做计划,比较随意,并没有精细地去排
  2. 我们的开发周期并不支持一周两次迭代
  3. 我放眼全局的力度不够,前两天陷入局部细节当中去了

所以,这周四上线到客户环境,预定早上部署的,到了下午才部署成功,而且还只是部署了两个端,并且还搞错了配置,出了很多问题。

于是晚上的开总结会,专家们各种点评,各种指正,现场的感觉,当属少伯印象最深。

那么,除出开发层面的问题不说,就工作方式而言,我的确有待改进。

出于信誉,做出的计划,就必须地贯彻实施。所以如果不想再出现这种实现不了的情况,下次做计划时就得好好做。

另一方面,我每天必须多花点时间去统筹兼顾,检验进度,掌控全局,及时调整步伐与方向。这一点,在魅族的时候做得还比较好,每天晚上我会让大家提交代码,发个版本,检查一波进度。所以当时魅族前端情况,都在掌握之中的。而这周的前两天沉迷代码,结果丢失了全局的视野。

另外,我一直强调细腻的团队风格。注重细节,是我对代码的要求。但现在代码量太多了,太过追求细节,review的粒度太细,会让我花大量的时间,自己反而没啥时间了。所以,我应该学会抓大放小,抓住主要矛盾,有的时候,是可以睁一只眼闭一只眼的

同时,让我很纠结的地方在于:我现在除了在做开发,同时又做测试,以及项目管理,我的精力很分散。我内心还是有安安静静编码的诉求,而且我很担心,这样下去,我会丢失竞争力,废了。。。

再说回项目开发与管理,我认为我们现阶段的是“小作坊”式的,很简陋,做点小项目还好,问题不大,对于现在这种大型项目,想要快速推进的时候,做出来的功能很难闭环。或者这样说,每个人负责独立的模块,相安无事; 一旦后期想把各个模块拼接起来的时候,漏洞百出。样式,输入校验,用户体验,性能等方面的考虑就先不说,单说数据及功能的完整性就各种问题。虽然都是小问题,团队这么多人,一个人一个小问题,加起来,就让人焦头烂额了。

有问题很正常,解决它就是了; 意识不够,也可以培养。但关键是,要怎么做?说是要有规范,有流程,但怎样的规范,怎样的流程,才能让我们摆脱“小作坊”式开发,走向先进,变成更专业,更有效率的“工业级”开发?这是接下来要思考的问题。

Fork me on GitHub