Ruby On Rails 网站开发感悟

news/2024/5/20 14:52:25/文章来源:https://dengbin.blog.csdn.net/article/details/1930568

独自一人花费了将近三个月的时间来做一个音乐网站(http://www.likenote.com ), 这对任何一个有过几年Web开发经验的人来说都不是件什么太难的事。虽然我也做了 4 年J2EE开发,但还是头一次使用全新技术来制作一个网站,这其中的辛苦却有点出乎我的意料之外。我大部分编程经验在 Windows 平台上,而这之前经过一番考察确定的技术方案,从操作系统,数据库,Web 服务器,到后台技术都是我不熟悉的。

只装过几次 Redhat Linux 我突然要去管理一个 Unix 服务器,还要作性能优化,编译内核,学习防火墙技术。
只使用过 Windows 版本的 Mysql 的我要去管理一个从未使用过的开源数据库。
只装过 Windows 版本的 Apache 的我要去配置一个完全陌生的 Web 服务器。
只撰写过一篇 Ruby on rails 文章的我(RoR 的经验仅仅限于那篇 Oreily 的教程),要使用它去开发一个完整网站。

虽然这并非很困难的事情,但是需要的是时间,我定下的开发时间是两个月,结果超出了一个月,实际花费在 ROR 开发上的时间只有3个多星期(RoR 的开发效率可见一斑),大部分时间在学习,学习上述的各种知识,它们对我来说都是陌生的,其中花费在学习服务器管理的时间就有一个多月,Rails 的学习花费了半个月(当然是读那本 Rails Book, 还有 Rails Recipes),还有 web 服务器和数据库也花费了一点时间。虽然网站的雏形已经出来,而且已经上线,但是我感觉真正的工作才开始。这将近三个月的学习和开发,自己总结了一些经验,对于那些打算独自开发 Web 项目的人可能有些借鉴作用。

1:首先也是最重要的一点:
做一件事情的热情远比完成它所需要的技术更加重要。
如果没有热情,就算是碰到一点小困难,你也会放弃,相反,就算是再大的困难你也能克服。

2:尽量不要到国内的任何技术论坛去提问,这既浪费自己的时间,也浪费别人的。
因为通常简单的问题搜索网络就能找到,反倒会招来嘲笑;复杂的问题也不会有人给你解决,通常论坛上也可能解决不了。最好的方式是自己从 Google 上搜索。(这是经验谈)

3:CSDN 上的这篇文章非常好,虽然是转载自国外的。
http://java.csdn.net/n/20060710/92484.html

其中我对第 6,11,15 条的感触最深。引用如下

 

15. "Build, learn, and make mistakes as you go--you'll know more about what you're doing as you're doing it, instead of before you do it." - Jason Fried, 37 Signals, advocating iterative development


“一边做,一边建造、学习和犯错误——对你正在做的事情,你只有做了才会懂得更多,而不是事前空想。”——37Signals的Jason Fried鼓吹反复前进



注解:

国内程序员之间喜欢谈论技术的人多,真正闷头做事的人太少;各种论坛上相互争吵,辩论的多,写代码的人少。我也曾经是这样的人,很多东西都是停留在想法上,开始对 RoR 的顾虑也很多,性能啊,扩展啊。在网上搜索到很多这样的辩论,曾经动摇过我使用 ROR 的决心, 但是最终开发效率这一点最终占了上风。 其实仔细想想,你如果不喜欢一个东西,会找出有很多原因,如果喜欢它,一条理由就足够了。边学习边做的确是个好的方式,应该算是 Agile 的工作方式吧。那些考察讨论再三再开始做事的方式道象是 RUP 了。


11. "I like Google the best, they're the cleanest. Others are trying to take your attention away from what you're trying to focus on so it's counter productive to go to those sites." - Sasha, age 18, explains why it's smart to adapt to your customers instead of forcing them to adapt to you


“我最喜欢Google,因为他们最干净。其他的网站则试图把你的注意力从你想要关注的东西移开。去那些网站不会有任何收获。”——18岁的Sasha指出,适应用户的习惯比起强迫用户去适应你的习惯要聪明得多

6. "Traditionally, people think more is better. More may work, but it's painful, expensive, very cold-war. Think about one-downing people, underdoing your competitors." - Fried coins some new verbs


“传统上,人们认为多就是好。多也许能行,但它是费力的和昂贵的,充斥着冷战思维。想想看,可不可以向用户少提供些功能,比竞争对手更简单一点。”——Fried创造了一些新提法 

 

这两条的理念是相同的,所以放在一起注解
注解:
这点的确很重要,我在开来始做网站的时候,界面设计选用了很复杂的页面模板,想到各种花哨的技术来堆砌它。后来觉得人家来你网站无非是推荐音乐,听音乐,评论,搜索,真正经常操作的就是这么一些简单功能,鼓捣花哨概念和技术的想法可能从最开始就是在远离你的用户。这的确是应该尽量避免的,如果不是读到这条,我可能也不会中途改版。

 
3:Ajax 看上去很美,但是它应该限制在某些特定功能的网站上(比如 Gmail, Google Map),整个网站采用它应该是不合适的。而且浏览器之间兼容的问题的确还是存在的。RoR 提供了非常简单的 Ajax 使用方式,有时候你会忍不住去采用它(Rails Recipes 这本书上充满了各种“奇技淫巧”),但是在做之前千万要考虑一下,这样做是否会给你的页面带来复杂性和服务器性能上的问题。在开发这个网站的开始,我也试验了很多 RoR 的Ajax 技术,但是后来都取消了,只保留了一个最简单的首页“最新留言”的动态显示功能。因为这个功能的确很有用。我将网站定位为一个多媒体的应用,所以采用 Flash RIA 来制作前端可能会更好, 整个网站采用 Flash 做前台比整个网站采用 Ajax 做前台更合理。原因如下:
1:Flash 比 Ajax 更成熟
2:Flash 有组件

4:如果你一个人制作整个网站,那么采用 RoR 是非常好的选择,原因当然是开发效率。整个网站从最开始有想法,到最终完成花费了三个月,其中学习时间占据了大部分,那么几个星期的开发时间就相当紧张了,如果采用 Java 可能根本无法想象。 其实搭建这么个音乐网站的想法,早在2001年就有了,我先后在论坛上推荐了四年的音乐,两年在博客上写音乐推荐。这期间我不是没有自己开发一个网站的想法,但是用 Java 实现起来太麻烦,我很多想法只是停留在脑海中,大部分时间用在考虑实现了,再加上我是个极为懒惰之人,看到那么麻烦的事情就不做了,直到 RoR 的出现,才使得这个网站得以完成。RoR 的好处在于:如果你有什么想法,你总是能很快的实现,只要你掌握了基本的技术,你就可以发挥你的想象来建设你的网站。 首页上泡泡框显示访客留言摘要的功能是我在一天早上5点醒来的时候想到的,爬起来用了两个小时就完成了它,很多人反映这个东西很好玩。

5:Web 2.0 的网站现在实在是太多,已经把整个市场搞坏了,前几天一个以前公司的朋友和几个人一起开了个公司,也是做 web 2.0 网站的,兴高采烈地把刚刚上线的网站地址给我,我一看,又是这种似曾相识的模板,似曾相识的应用。这种 Web2.0 站点的趋势就是:早期的ewb2.0国内站点抄袭国外的知名站点,后来的新进者抄袭国内已经成名的web2.0站点。如果这样的网站也有人投资那才叫怪了。 本来我也有开发网站寻找投资的想法,但是实在是想不出什么赢利模式,我也做不来这些写计划书的事情,还是自己凭兴趣做的好玩。朋友都说我的网站页面不适合商业站点,让我赶紧换了,我心里很清楚什么是他们说的商业页面模板,但是他们都说好,可我偏不喜欢。没法,还是按照我的想法来改造它吧。只要自己上班找个工作养活这个网站,或者更好的情况是,它能自己维持自己,这我就心满意足了。

6:现在的 RoR 实在是太火了,大有大家同上一条船的架式,搞 RoR 的人以它为荣,以搞 Java 为耻,估计也能写出个八荣八耻。但是它只是一种技术,众多后台技术中的一种,网站的访问者并不会因为你使用了 RoR 就给你掏钱,甚至是留下个好印象。网站的内容是主要的,掌握了它并不意为着能制作一个好网站。常言说:拥有榔头并不意为着你就是个建筑师 ,也不能让满地都是钉子。要么你去给人敲钉子为生,或者指导别人如何敲钉子,再或者找到一个好木场自己建个房子。“去 RoR 化”可能是我要做的下一个工作,把前台用 Flash 重建,采用 RoR 的 builder view 技术来传递信息。我个人感觉这个音乐网站有个好的想法,不管它是否能挣钱。首先是音乐推荐的确能给人带来快乐,做这样的网站才有趣。技术应该是实现你想法的工具,如果网站成为技术的试验品,对我来说就没有什么意思了。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_782184.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RHEL4- WEB服务(七)配置基于端口web虚拟网站

RHEL4- WEB服务(七)配置基于端口web虚拟网站前面讲述了《RHEL4- WEB服务(五)建立基于ip的多个虚拟web网站》和《RHEL4- WEB服务(六)建立基于主机名的多个虚拟web网站》,这一篇讲述一个比较特殊的…

高并发高流量网站架构

Web2.0的兴起,掀起了互联网新一轮的网络创业大潮。以用户为导向的新网站建设概念,细分了网站功能和用户群,不仅成功的造就了一大批新生的网站,也极大的方便了上网的人们。但Web2.0以用户为导向的理念,使得新生的网站有…

公司网站Silverlight版^_^

公司网站Silverlight版^_^ 网站地址:http://www.ichinagames.com/Silverlight/ 预览图: posted on 2010-01-16 13:47 nowpaper 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnblogs.com/nowpaper/archive/2010/01/16/1649131.html

pinterest视觉社交网站商业模式和崛起原因

Pinterest是一个号称"个人版猎酷工具"的美国视觉社交网站,网站创办于2011年,目前 网站用户增长速度赶上了五年前的Facebook,是继facebook、twitter、tumblr之后,又一个受世界瞩目的网站。 Pinterest名称由Pin&#xff0…

30个优秀的网站导航菜单设计案例

导航是网站最重要的组成部分之一,一个有吸引力的导航能够引导用户浏览网站中的更多内容。导航需要和网页内容完美的融合在一起,因此设计前需要设仔细分析网页结构。这篇文章收集了30个优秀的网站导航设计案例,希望这些实例能给你带来灵感。 J…

学用MVC4做网站三:3.3更新栏目

序 一、用户 二、用户组 三、栏目 3.1添加栏目 3.2浏览栏目 3.3更新栏目 上次在树形列表里面点击栏目名称后跳转到详细信息页面~/Category/ManageDetails/id。在详细页面里点修改,来完成栏目资料修改。 先打开【CategoryController】添加[ManageDetails(int id)]act…

LAMP网站架构方案分析【精辟】

LAMP(Linux- Apache-MySQL-PHP)网站架构是目前国际流行的Web框架,该框架包括:Linux操作系统,Apache网络服务器,MySQL数据库,Perl、PHP或者Python编程语言,所有组成产品均是开源软件&…

30个带给你灵感的 iPhone 应用程序网站设计

这篇文章向大家分享30个漂亮的 iPhone 应用程序网站设计作品,希望这些实例能带给你灵感,一起欣赏。 Routes Camera Decrescendo Interface Diet2Go Task This Grades Headquarters bowtie Here, File File! 2Do Lite Weight My Desk Borange TimeTurner…

Linux系统用脚本轻松搭建Apache网站服务器

您能学到什么? 明白Apache适用于哪种场景下; 源码编译安装的方式构建httpd服务器的两种方法, 一种常规安装,另一种脚本快速安装 Apache简介 编译安装httpd服务器步骤 构建httpd服务器实验

Linux系统搭建Web网站服务器之访问控制与虚拟web主机

httpd服务访问控制概述 作用 控制对网站资源的访问为特定的网站目录添加访问授权控制方式 客户机地址限制用户授权限制实验案例 要求: 1、www.bdqn1.com增加用户验证,网页目录为/bdqn/个人名 2、www.bdqn2.com 只允许192.168.10.0/24网段访问,网页目录为/个人名 提示:分…

社交网站的数据挖掘与分析

关于本书:【互动网】【卓越网】【当当网】【京东网】【豆瓣网】 《社交网站的数据挖掘与分析》前言(原书名:Mining the Social Web,2011年Jolt生产效率大奖获奖图书)与其说网络是一项技术创新,不如说它是一…

不学其他了!Apache部署了这么好玩的网站

相关术语 提示:怎么让您看起来像专业人士,先知道这些 何为HTTP协议?是超文本传输协议,Hyper Text transfer protocal(发明者:蒂姆.伯纳斯.李) 1.超文本 包含超链接(link)和各种多媒体元素的文…

面试常备知识-Linux网站架构优化

启用网站压缩deflate 提示:以Apache为例 1.查看并启用mod_deflate ,压缩传输 查看mod_deflate:提示未找到 打开网页查看:也没有压缩响应头 2.在httpd.conf配置文件末尾,添加deflate参数配置 vim /usr/local/httpd/conf/httpd.…

饿了吗?一饱眼福-不能不懂的web网站架构负载均衡群集

理论 1、web搭建网站有哪些方式实现负载均衡与高可用性能? Nginx:反向代理,适用于中小型网站服务 优点:工作在七层之上,针对HTTP做分流策略,正则规则haproxy更灵活对网络的稳定性依赖小安装配置简单高负载…

轻松搭建web网站架构服务

学习目标: 搭建lnmp网站架构,实现负载均衡、高可用,以及https,并通过NFS优化数据存储。 服务器IP地址web1192.168.2.137web2192.168.2.136mysql192.168.2.133PHP192.168.2.130lb(keepalived)1192.168.2.135lb(keepalived)2192.1…

云计算必备-企业架构网站综合项目

目录流程一、实现效果二、步骤1.实施规范2.实施流程总结流程 1.需求分析,写项目规划书(项目经理、技术总监cto) 2.画架构图,将架构分解成各种模块(架构师) 3.各模块实施和测试(运维工程师&…

Asp.NET MVC 拍卖网站,拆解【1】预览与目录

本人最近带创业团队基本做完了一个艺术品拍卖的外包项目,分为网站前台(asp.net mvc5),网站管理员管理的后台使用的9900端口(asp.net mvc5),监听拍卖状态的windows服务,为手机端提供服…

html5相关网站

2019独角兽企业重金招聘Python工程师标准>>> http://designmodo.com/ 非常非常多的下载资源 UI界面 http://www.cnblogs.com/lhb25/ 有很多好的文章 http://www.freebiesgallery.com/ 免费psd http://medialoot.com 免费模板 http://chocotemplates.com/ 模板下载 h…

如何解决国产TongWeb中间件启动之后无法访问网站管理后台界面

背景介绍:什么是国产TongWeb中间件呢? TongWeb7 是遵循 JavaEE7 Web Profile 规范的企业级应用服务器,它为企业应用提供了可靠、可伸缩、可管理和高安全的基础平台。同时具有功能完善、支持开放标准和基于组件开发、多层架构、轻量等特点&…

IIS 发布网站 ashx无法访问

IIS6 问题 1.是否安装相应的.net版本 2.查看.net版本是否一致 3.查看web 服务扩展中.net版本是否允许。 4.添加相应的MIME类型文件 在IIS中右键网站→属性→主目录→配置→添加 可执行文件路径:C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll 取消确认文件是…