某一天,风云交加、电闪雷鸣,一个想法诞生了:RSS阅读已经有很多年了,从RSS的出生到现在,RSS 阅读器从未变过,我想做一个不同出来,所以有了www.plusyi.com(加一网)。很可能这是个伪需求,谁都知道改变用户习惯是件很难的事情,也许只有乔布斯才可以完成,但是这又能怎么样呢?
我的技术背景:学过.net,做过asp.net mvc,所以对MVC模式比较熟悉,但是不喜欢太重的工具,类C的语言,因为很烦,需要定义变量。曾经也学过几天的python,是因为看了一篇关于豆瓣创始人的文章,但是……严格的对齐方式真无聊,换个编辑器就有问题。夜色之中我发现了ruby on rails。开始疯狂的爱上ruby这种语言,尽管我学rails有一年的时间了,但是感觉还是个菜。多好用的each、if、unless、@啊。因为学过asp.net mvc,所以学rails比较容易理解。上手很快,但是提高的有点慢,中间还有很多时间要参加一些考试。但是一年多的时间来,我还是做了不少的东西,这个网站是我的第11个rails项目,看起来很多,但是说来很惭愧,大部分的东西都是数据库的增删改。
制作过程和其他的rails项目都是一样的。先new一个然后引入几个gem。Haml(这个写html简单明了), bootstrap(twitter的开源项目,做前端方便很多,但是不支持ie6,所以我放弃ie6了,用ie6的用户出门右转),nokogiri(用来抓取网页的),kaminari(分页),omniauth-qq-connect(支持QQ登陆的),activeadmin(后台管理自动生成,用法请参考说明书),whenever(可以在linux上生成crontab定时任务,每隔1个小时自动抓取一次)。
代码部分没有什么好说的,就是用scaffold自动生成Post等几个mode,然后每个网站用一个blog的模型来表示,因为我抓取的网站大部分都是博客。关键的代码有一点,因为每一个网站的结构都不一样,所以不能用同一个代码抓取全部内容,需要根据不同的结构定制,但是也不能写一个很大的if else或者when case语句吧,那样每增加一个网站就要重写部署一次。感谢脚本语言的eval方法。我在数据库里面给每一个网站保存了一个单独的抓取语句然后用eval执行,这样我就能去后台修改了。执行过程更简单了。
class GetPost
def self.get
Blog.all.each do |blog|
begin
eval(blog.get_method)
rescue
puts blog.name
end
end
end
end
这是我自己想出来的主意,不知道还有没有更好的办法。下面是我的比一个版本的截图,我用了瀑布流的方式来展示文章。我把网站发到知乎上去,引来骂声一片,最大的收获是瀑布流不适合显示内容的,那东西比较适合图片,如果你现在打开网站,看到的是昨天晚上的修改版彻底去掉了瀑布流。关于现在的网站的想法我下篇日志再说吧。
网站想要有人用,当然需要满足人的某项需求,假如我更好的排版,更好的满足人的多种多样的阅读需要,会有人保存到收藏夹吗?目前面临的问题还是内容不够多,我在努力,还在改程序。
- 大小: 213.7 KB
分享到:
相关推荐
安卓期末大作业—Android寻味之旅App源码.zip已获导师指导并通过的高分项目,95分以上不是问题,下载即可使用无需修改,确保可以直接运行!本项目是一套安卓期末大作业—Android寻味之旅App源码。 安卓期末大作业—...
C语言上机之旅代码合集.zipC语言上机之旅代码合集.zipC语言上机之旅代码合集.zipC语言上机之旅代码合集.zipC语言上机之旅代码合集.zipC语言上机之旅代码合集.zipC语言上机之旅代码合集.zipC语言上机之旅代码合集.zip
破冰之旅游戏参考.doc
51CTO下载-苍蟒--灰帽python之旅.zip.rar
中国民间艺术的奇妙之旅网课各章测试答案跟期末考试答案,自己整理的需要请下载哦,方便大家,可以不用网课烦恼哦,欢迎下载哦。
老罗的Android之旅导读PPT.rar
豪华高尔夫非凡之旅旅游资料.pptx
风光旅游网站制作.pptx
小学六年级美术上册宇宙之旅PPT教案.pptx
大理之旅简短感想.docx
环球之旅三非洲.pptx
英歌石之旅优秀作文.doc
西藏之旅作文n.pdf
新疆之旅初二作文.docx
Java学习之旅Day01.md
Versace品牌之旅PPT教案.pptx
Versace品牌之旅学习课程.pptx
鼓浪屿名人之旅讲解词.doc
MATLAB 入门之旅为matlab官方学习课程,用于matlab基础知识快速入门。本文档仅为本人学习matlab的学习笔记。