聊一点 kindle2flomo 技术相关的东西吧

 

害,聊这干啥,自己找没趣,简单记录一下吧。

整个项目其实没啥技术可言,过程中遇到的一些坑也都是自己技术能力太菜。

不过,我一个产品经理,计较技术这种事情干啥。

文件解析

最开始做的时候,其实就一个 py 文件,读一个文件,对笔记文本进行解析,返回结构化数据。

使用 Python 是因为数据处理这样的任务,没有比 Python 更适合的了。

虽然自己对 Python 的掌握程度还停留在语法层面,不过对于 Python 来说,似乎并不重要,这也是这个语言神奇的地方,只要知道实现原理,离功能实现就差不多了。

CSV 文件的解析没啥可说的,就是纯文本一行一行读,从中截取有效数据;HTML 文件的解析用好 BeautifulSoul 这个库就行了,查看下官方文档,也没啥难度。

服务端

最开始是想直接把 py 文件打包成可执行的脚本,提供下载,用户在本地运行脚本就可以了。

想了想,放弃了这种方式,作为产品经理,对用户体验还是有一些敏感的,这种使用方式太别扭了。

所以,我压根就没去了解 py 文件怎么打包的事,而是直接开始学习 Python 的 Web 框架了,针对这么简单的项目,Flask 是首选。

要实现 Web API 的服务,就需要一些技术基础了,恰好之前有做过 Web 的项目,对于传参请求这些内容还是有一些了解的。所以,使用 Flask 框架做成 Web 服务,对我来说,还是语法使用的问题,看看 Flask 的文档,照着示例代码练习一下,应该就差不多了。

对了,先实现的服务端,必须要有接口测试工具的辅助,我一直在用的是 Talend API Tester

前端界面

有了服务端,还要提供一个简单界面,对我来说,自然是首选 Web,其他的也不会啊。

Web 前端可选择的技术就太多了,由于需求很简单,不想要太复杂,一个单页就可以了,用的是 ElementUI 创建的一个单页面,页面中 CSS 和 JS 文件的引用,都使用在线 CDN UNPKG 的地址。

这样的好处是,一个 HTML 文件就可以当作独立的应用到处访问了,还不用下载安装。到时候部署到线上,也就是一个静态页面,简单方便。

即便后面有一些功能特性的更新,直接更新这个 HTML 文件就可以了。

kindle2flomo界面

线上部署

这是我历史最悠久的爱好,早在学生时代,就喜欢鼓捣电脑,给电脑安装各种操作系统,Linux 一直是玩具般的存在。

毕业之后,虽然不鼓捣电脑了,但也一直保留着一台云服务器供自己玩耍。

不过 Python 的环境也是第一次搭建,线上部署 Python 项目也是第一次,总的来说,还算顺利,找篇文档,按照步骤一步一步下来,倒也没遇到特别棘手的问题。

Python 项目的线上部署,大概就是以下几步:

  1. 安装 Python3 相关软件(服务器端一般直接是源码编译)
  2. 给项目创建虚拟环境(Python项目)
  3. 安装项目依赖包
  4. 运行项目
  5. 配置 Nginx 反向代理

我的服务器是 CentOS 7,部署的过程主要参考了这篇文章:CentOS7部署Flask项目,过程并非一帆风顺,遇到的两个问题,搜索一下,也很快就解决了。

编译过程好慢

域名配置

域名跟服务器一样,都是现成的,既然有云服务器,自然有域名与之对应。

域名的配置比服务器要简单太多了,直接在对应的域名服务商网站,设置域名解析就可以了,也就是设置用什么网址来访问该服务。

总结

对该项目技术的总结,就是一句话:麻雀虽小,五脏俱全。内容虽多,但都不深。

不过,我关心的从来都不是实现某个功能所需技术的深浅,我一直在探寻的是,做某个产品,需求质量的高低。

好了,这个项目到这就先告一段落了。

最后通知一则消息,Kindle2flomo 被收录到了 flomo 学院了,中间还有一些小故事,可以点击原文链接查看哦。

Kindle2flomo - flomo 学院