包接口也可以做成包老师
日常的开发工作中,总有一些后端开发的同学抱怨自己的工作没有技术含量,做的大量工作就是包接口,行话叫API设计与实现,把功能进行二次包装之后,给前端提供调用服务。这样的工作年复一年、日复一日,感觉时光在敲着代码的手指间匆匆流过,悄无声息,却让人不寒而栗。这样的工作难道真的毫无意义吗?看以来这样的工作门槛非常低,但门槛低并不意味着容易做好
真正做的时候,会发现这个工作想做好并不容易,我们日常经常遇到的问题有下面几类
1. 字段定义命名混乱,很多字段无法从字面上看出是什么意思。
2. 错误码不统一,不清晰。造成前端也无法实现统一处理
3. 没有遵循正交原则,每个接口都可能涉及后端的很多资源调用和库的引用,导致服务越来越大,越来越重。一个资源的变化,都将有可能会影响到很多接口,这对回归测试和问题排查都是一个灾难。
4. 抽象不足,用户的每一个需求都会变成新的接口。一旦发布出去,就需要保持其兼容性,一次开发终身负责。
你以为只是设计一个API,但其实API到底层数据到映射和转换,已经涉及了架构设计的基础。你以为只是设计成RESTful,但其实还可以做成自动测试的框架,像Swagger,或者RAML,或者API Blueprint。
一乐给了一个很好的比喻,包接口也可以做的比别人好,变成包老师。