WeIndex开发笔记

WeIndex是一款订阅号服务程序,使用Ruby on Rails搭建。以下是我开发过程中的一些心得体会:

关于框架

写WeIndex的初衷很简单,一是想练一下ruby,一是之前写了个简单的博客系统被CSS伤到了。作为一个对CSS感到头疼的人,我便想用微信订阅号来写博客(明明已经有了不是吗喂)。

看了一下公众号接口,我便认定这是一款偏API的服务。于是便马上确定用sinatra来开发,xml就用鋸。(这年头为什么还有人在用xml啊!)。然而在边写代码边看文档的过程中觉得sintra真是太难用了:

  1. require自己写的代码的时候各种could not load. 连config分离到单独文件都弄不好。这一点是我学艺不精,scope方面的东西还没完全弄明白。
  2. 没有滋瓷ORM,用ActiveRecord非常不便。折腾了好久,最后选用Sequal(躺
  3. rails grake能做的一切都得自己来,也就是说在不同的环境下还要进行重复的操作,太麻烦。

于是我看到了Padrino。Padrino是基于Sinatra的,能够像rails一样提供各种命令创建或修改项目。感觉一下子从冷兵器时代进入蒸汽时代了。

当我正摸拳擦掌准备开干,到处搜索Padrino相关信息的时候,找到了ruby的各大框架评测。这才知道原来sinatra在no view的时候秒杀rails,然而当需要渲染页面的时候rails就比其他框架几乎快一个数量级了。

修改原型

开发的速度缓慢进行着,微信文档让我崩溃。自动回复消息可以用MediaId来取得各种素材。然而我找了半天都找不到哪里去取得素材的MediaId,谷歌一下,居然要通过上传素材的接口才能获得MediaId。欺负人也不带这样的啊,非R用户也要基本人权啊。上传才能调用的数据你干嘛开放给未认证微信号啊!至少在文档里说清楚啊!

WeIndex开发笔记_第1张图片
坑爹呐这是!

心情落入低谷的我打开了其他订阅号,看看其他非R是怎么做的。

啊~~太机智了,他们大多是通过点击自定义菜单重定向到一个自己写的网页上,网页里都是文章链接。而用户发送文字则可以获得一条图文消息。

所以之前的直觉是错误的,订阅号服务并不重在API,更多是需要渲染页面。这样一来Padrino的优势就不复存在了,于是我删掉了项目。重新在键盘上敲下了rails new weindex

未完待续……

你可能感兴趣的:(WeIndex开发笔记)