Athena开发日记——第七日

许久不见。

Athena的开发被搁置了好久,期间也经历了不少不停的打开工程,思考怎么改,然后在一无所获后关掉的过程。经过最近两天的努力,终于又增加了新的功能。


最近闲来无事,去看了看python,中间在看大家用python做什么的时候,发现大家都在做公众号。我登上我自己的公众号,发现微信公众号的消息可以被转发到特定服务器,而且不是域名!

Athena从本质上说,在当前是一个聊天机器人。所以,即时通讯软件,其实非常适合接入。

不过当时我还没那么想,我只是想,为何不做一个后台,让我能够自己回复自己的公众号的消息呢?于是昨天我就花了一晚上的时间研究了一下,基本的验证,搞定。但是在解析post请求的时候却怎么都拿不到数据,改了多次无果,尝试了别人写的框架,无果。遂下班。

昨天夜里我翻来覆去觉得有问题,早上来了更新代码……搞定了。

一时非常开心。瞬间就想,为何不接入Athena呢?!


说干就干。

我先把基本的路由接入进去,然而,之前的测试工程是sudo起的80端口,Athena作为一个正规项目是不能随意sudo的。于是就去看网上如何用PM2接入80端口,大家的意见是生产上还是Nginx安全一点。

于是又在VPS上加了个Nginx,感谢大力。80->2333。

接着顺利的通过了微信的验证,可以正常返回消息了。然而,这,不是目的。


Athena的服务端结构是划分成了Server层(根)、dao、human、service四层。首先,之前架构是Socket.io为主的,没有router。所以不存在router文件。这次加入了一个接口的分发后,代码很难看,于是先把router的两个分发封装到service层的wechat功能里。然后把专门的router改到了index里。两行。

接着,Athena所有的对外是由human里的react来进行的,于是把wechat的两个应答器扔出来。同时把基本的text型消息,封装到了一个枚举的say方法里。

再然后,human里的interpreter模块负责AIML的应答。然而这个应答的代码……看的我难受。半个小时重写,分离出了两个方法,加入了wechat扩展。至此,interpreter模块已经可以正常的应答react给的消息了。

接下里是一部分代码优化,你们也不想听,我也不想写。

最后,搞定。结果见最后的图。


说在最后的话:

一如既往,这是个展望和回忆的环节,首先,我对前端的开发框架感到一种无力感。NG1会停止维护,NG2还不稳定,TS还没学会,React好难用。我一度想转个Python算了。

ES6将是大家的基本技能。然而拥抱ES6的过程是漫长而残酷的。就如同放弃IE6一样。我这次把Athena的编译等级调整到了ES6,但是仍有很多特性是Node不支持的。而我也不是很熟悉……只能多写一点,再多写一点。

我之前想让文焕帮我写点东西。不过最近好久没有联系了。最近我也颓废了很久。

Athena接下来,一方面会进一步横向扩展对其他应用的支持和接入。一方面,在深入上,将会继续搞一些自动化、智能的东西。

不过简单的说,我下一步会先做一个账号系统,虽然我也不知道为什么,但是有账号就会有记录。就可以积累更加准确的数据了。大概。

另外,结婚和房子以及工作的事情,其实蛮麻烦。我也在稍微的努力。

如果可以的话,希望Athena终有一天能变成我的女儿一样的存在。

以上。



Athena开发日记——第七日_第1张图片

你可能感兴趣的:(Athena开发日记——第七日)