`
heaven0sky
  • 浏览: 1699 次
  • 来自: ...
最近访客 更多访客>>
社区版块
存档分类
最新评论

我的网站制作之旅(一)plusyi.com诞生记

阅读更多

 

某一天,风云交加、电闪雷鸣,一个想法诞生了:RSS阅读已经有很多年了,从RSS的出生到现在,RSS 阅读器从未变过,我想做一个不同出来,所以有了www.plusyi.com(加一网)。很可能这是个伪需求,谁都知道改变用户习惯是件很难的事情,也许只有乔布斯才可以完成,但是这又能怎么样呢?

我的技术背景:学过.net,做过asp.net mvc,所以对MVC模式比较熟悉,但是不喜欢太重的工具,类C的语言,因为很烦,需要定义变量。曾经也学过几天的python,是因为看了一篇关于豆瓣创始人的文章,但是……严格的对齐方式真无聊,换个编辑器就有问题。夜色之中我发现了ruby on rails。开始疯狂的爱上ruby这种语言,尽管我学rails有一年的时间了,但是感觉还是个菜。多好用的eachifunless@啊。因为学过asp.net mvc,所以学rails比较容易理解。上手很快,但是提高的有点慢,中间还有很多时间要参加一些考试。但是一年多的时间来,我还是做了不少的东西,这个网站是我的第11rails项目,看起来很多,但是说来很惭愧,大部分的东西都是数据库的增删改。

 

制作过程和其他的rails项目都是一样的。先new一个然后引入几个gemHaml(这个写html简单明了), bootstraptwitter的开源项目,做前端方便很多,但是不支持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
分享到:
评论
1 楼 Ghost_Good 2012-07-15  
和你的经历有点像,www.openjquery.com站长,也是新站,会一直做下去,与君共勉,有时间可以沟通沟通,可以加我Q 471427500

相关推荐

Global site tag (gtag.js) - Google Analytics