使用云服务解决日常需求

写在前面

近一年来生活工作中发现不少需求,希望通过程序的解决,提高效率。也想过自己购买一个 VPS(虚拟专用服务器),不管是部署还是开发都灵活许多,不过调研了几家 BaaS (后端服务平台) 平台,发现日常需求不需要通过租用 VPS 就能解决,几番对比后,选择了 LeanCloud ,到目前为止,已经使用了近两年时间,并未感觉到有哪些不便,反而在处理需求时,节省了不少时间。

LeanCloud

平台提供了数据存储,云引擎,服务器 SDK,命令行工具、文件存储和 IM 等服务。基本上涵盖完整后端服务模块,基本上免去了一些脱离业务层面的基础开发工作,这样开发者能依托基础服务,聚焦于业务层面开发。平台提供各种语言 SDK 调用其数据引擎,开发者也不需要去单独维护备份数据。

云服务我使用 Python 作为主要开发语言,考虑到其生态比较完善,有很多强大开源库,也有需求要抓取一些数据进行处理,比如用到财经数据接口 tushare ,数据框架 pandas,尽管自己主力语言是 JavaScript, Python 不是很熟练,最后决定边写边查,也算是一点点把需求实现了。总的评估下来,还是比用 Node 节省不少时间。

刚好这几天修复了几个线上 bug ,大致梳理了一下用 LeanCloud 做了些什么

抓取上市公司财报数据

其实这个需求是来自朋友的启发,他很早之前就在做公司研究,刚开始就是去找上市公司披露的财务报表,后来嫌麻烦,就用 VB 在 Excel 里写了一个抓取脚本,通过同花顺的 API 把几张财务报表 Excel 文件整合到了一起,然后用内置函数完成了公司历年财务报表统计和分析,他给这个文件起了个很酷的名字 —— X-Ray 。

后来他分享给了我,但是我主要使用 MacOS,Excel VB 脚本在机器上执行不了,只能打开虚拟机才能运行宏函数,于是就有了把 X-Ray 放到云服务器上的想法。

研究了一下同花顺提供的 API,发现这个功能可行,而且还能做的更美观,大致思路就是通过同花顺提供的接口拿到上市公司多张 Excel 财务表格,用 pandas 组合成 dataFrame 然后批量计算财务指标,最终转化为 Json 储存在数据库里,再通过 Echarts 展示整体数据,前端展示用了 React 方案,做个单页应用,后来干脆就把公司列表和行业数据一并导了进去。
数据有了,也顺手开发了同行业公司财务对比,不同公司财务数据对比功能。

最后的效果就是一家新公司,基本上能在 5 分钟之内了解其财报披露年份的财务状况,提高了不少的效率,单个公司的 X-Ray 效果

后来在网上发现了一个看财报的产品级应用看财报,由衷佩服这位仁兄的产品能力。
感兴趣的话可以试试看。

抓取报刊资讯

前段时间关注了一些资讯媒体,每天需要看期货日报,也会帮朋友抓取每周经济观察报,华尔街日报。期货日报需要订阅才提供每天整版的 PDF 文件,官网只有单页 PDF 和网页版本提供,翻了一下他们的网址,发现单页 PDF 链接很有规律,只需要每天提供当天刊号就能通过拼地址的方式抓到单张 PDF 文件,用 pyPdf 做文件整合,把期货日报每页数据抓过来组合成单个文件保存到服务器上,每天只需要找到当天编号就能下载到整版日报。后来华尔街日报和经济观察报都被我发现了相同的模式,干脆把之前抓取的方法重构了一下,实现了三个刊物的文件整合。

其他尝试

当然 LeanCloud 提供的功能远不止这些,还有很多可以尝试的新功能,比如通过 Js-sdk 可以完全放弃掉对后端服务器的维护,完全由前端处理复杂业务逻辑。一个人开发并维护好一个中后台系统也将成为一个轻松的事情。

之前也有用过亚马逊 和 linode 服务器,对于个人开发者来讲,这些服务器还是有些重,并不是所有开发者都能前后端运维完全兼顾,BaaS 服务器的优势是解放程序员的生产力,想要完成一个产品级别的应用或服务,或许一个前端工程师就够了。

2017-12-17