摘要:程序猿小Hi入职公司不到三个月,就被老板单独叫到了办公室……
初创公司R:刚刚创立,致力于经过信息化技术,帮助中小企业数字化转型,华丽转身。java
公司成员:老板、程序猿小Hi、… …git
程序猿小Hi入职公司不到三个月,就被老板单独叫到了办公室。小Hi心情既激动又不安,激动的是老板是否是要给本身升职加薪,不安的是否是本身表现很差,老板要炒鱿鱼,毕竟疫情是一个很好的借口。程序员
来到了老板的办公室,不等小Hi说话,就单刀直入,说:小Hi啊,你来公司挺长时间了(还没到三个月,老板健忘?),你的工做作得挺好(内心开始爽歪歪),今天有个重要任务要交给你(凉了一半,升职加薪忘了吧)。github
小Hi:好的,老板你有啥就直接吩咐,保证高效完成(内心开始有点忐忑)。segmentfault
老板:昨天有个新客户,提了个需求,他们是在XX高新区,公司多切人员杂,在目前疫情状况下,想在门岗处增长门禁,识别外来人员,增强疫情管控。这是他们的需求文档,公司的其余人都出差了,这个任务就交给你了。记住,要作成模块化,方便后续客户应用。api
小Hi:是,老板,我好好看看他们的需求文档。浏览器
……网络
小Hi离开老板办公室,打开需求文档一看,六个大字映入眼帘:咱们要人脸识别(不对,是七个),内心翻滚着五味杂陈,“模块化”和“人脸识别”,这就是需求。架构
第一次接到了老板的任务,小Hi陷入了“深思”(吃鸡游戏中…)分布式
第一个需求是“模块化”,模块化就是要求封装内部细节,精简对外交互,实现高内聚低耦合。小Hi第一时间就想到了经过提供API来保障自身的独立性,以及清晰化的对外交互界面,大学里学的那点API相关的知识开始在脑海里迸发:
应用程序接口(Application Programming Interface)是一组定义、程序及协议的集合,经过 API 接口实现计算机软件之间的相互通讯。用来提供应用程序与开发人员基于某软件或硬件得以访问的一组例程,而又无需访问源码,或理解内部工做机制的细节。
1)RESTful API:基于HTTP、URI和XML等的常见的Web服务接口标准,描述了一个架构样式的网络系统,其核心是面向资源的。
2)SOAP接口:简单对象访问协议,简单对象访问协议(SOAP)是一种轻量的、简单的、基于 XML 的协议,它被设计成在 WEB 上交换结构化的和固化的信息。
3)RPC接口:远程过程调用 (RPC) 是一种协议,程序可以使用这种协议向网络中的另外一台计算机上的程序请求服务。
4)RMI接口:远程方法调用RMI是针对于java语言的, RMI 容许您使用Java编写分布式对象。
1)极简:极简的API是指对外暴露的尽量少,这样的API更易理解、记忆、调试和变动。
2)完备:完备的API是指用户指望有的功能都包含了,知足用户的需求,是完备的。
3)语义清晰简单:接口、参数、帮助等的语义清晰简单,使用经常使用语和缩略语,不适用生僻语,尽可能减小意外。
4)符合直觉:经验不很丰富的用户不用阅读API文档就能搞懂API,并且程序员不用了解API就能看明白使用API的代码。
5)易于记忆:为使API易于记忆,API的命名约定应该具备一致性和精确性。使用易于识别的模式和概念,而且避免用缩写。
6)引导API使用者写出可读代码:代码只写一次,却要屡次的阅读(还有调试和修改)。写出可读性好的代码有时候要花费更多的时间,但对于产品的整个生命周期来讲是节省了时间的。
注:源自Qt的API设计原则,_详见__https://github.com/oldratlee/translations/blob/master/api-design-principles-from-qt/README.md_
1)API网关:服务与服务之间通讯的中介或桥梁,提供服务接入和鉴权、API注册、流控、管理等API托管服务。
2)API全生命周期管理:覆盖了API的设计、开发、测试、发布、订阅、使用和分析的端到端、全流程的管理。
第二个需求是“人脸识别”,小Hi没有AI相关技术积累,开始捉急,突然灵光一闪,想起来前两天华为云专家过来交流,有提到华为云的AI能力,因而激动的打开了浏览器。
输入https://www.huaweicloud.com/,打开华为云,选择“开发者”=>“资源工具”下的API Explorer,查看华为云全部开放API:
在API Explorer上面,能够快速查看对应云服务的开放API:
在搜索框输入人脸识别,搜索相关的云服务:
打开人脸识别服务,有人脸比对、人脸检测、人脸搜索、人脸资源管理、人脸库资源管理等,挺多API的,太棒了。
火烧眉毛调试一把,登陆华为云(没注册的赶忙注册下),选择到人脸识别控制台页面(https://console.huaweicloud.c...),开通人脸比对服务:
在API Explorer上选择人脸比对API(FaceCompareByFile),查看此API详细介绍信息,包括接口说明、请求参数、示例、返回参数、错误码等,此API支持对比两张人脸图片信息,判断是否同一我的的置信度:
咱们直接能够选择要比对的图片,在API Explorer上点击调试按钮来在线调试这个API:
点击调试后,能够获得比对结果,类似度94.699%(表明同一我的的几率很大):
再调试了多个API接口,查阅了人脸识别服务介绍后,小Hi内心有着落了,一张“蓝图”在脑海中绘制:
小Hi顿时信心爆棚起来,这下能够在老板面前好好表现下了。
你觉得这就结束了吗?
图样图森破,小Hi仍是太年轻,按以往经验,蓝图和落地至少还差个银河的距离,等待小Hi的是怎么快速实现这个公共服务,未完待续 ……