1,Ruby on Rails开发效率高,到底是因为Ruby语言还是Rails框架
ROR开发效率高与二者都有关系的,不过如果说哪个占的更多一些,应该是Rails框架了,原因如下:ruby就其语法而言,语法灵活,提供的类库和方法也非常丰富,所以与其它语言相比,同样的功能,ruby的代码量更少。这也是网上经常出现如“ruby如何一条语句实现此功能”等问题,这是其它语言无法比的rails之所以在效率高中贡献大,是因为其约定大于配置和各种自动生成器及自定义模板:约定大于配置,就可以使开发者更专注于开发,所以rails中基本没有配置,即使有也非常少,相比j2ee就是0和100的关系,这无形中节省了开发者的时间各种生成器,比如scaffold,实现一个CURD只需要1分钟,对于熟练的开发者10秒搞定,所以这个速度是其它框架无法比的。所以,Ruby On Rails的开发效率就不用说了,是java和j2ee望尘莫及的。之前大家都在说ROR的开发效率高,更多的是与java的j2ee比较,而各语言发展到现在,已经借鉴了Ruby和Rails很多特性了,所以,如果你熟悉一门语言,只要使用与Rails思想相近的框架就可以了,但是像静态语言还是没有办法的。
2,如何提高 Ruby On Rails 性能
导致你的 Rails 应用变慢无非以下两个原因:
在不应该将 Ruby and Rails 作为首选的地方使用 Ruby and Rails。(用 Ruby and Rails 做了不擅长做的工作)
过度的消耗内存导致需要利用大量的时间进行垃圾回收。
Rails 是个令人愉快的框架,而且 Ruby 也是一个简洁而优雅的语言。但是如果它被滥用,那会相当的影响性能。有很多工作并不适合用 Ruby and Rails,你最好使用其它的工具,比如,数据库在大数据处理上优势明显,R 语言特别适合做统计学相关的工作。
内存问题是导致诸多 Ruby 应用变慢的首要原因。Rails 性能优化的 80-20 法则是这样的:80% 的提速是源自于对内存的优化,剩下的 20% 属于其它因素。为什么内存消耗如此重要呢?因为你分配的内存越多,Ruby GC(Ruby 的垃圾回收机制)需要做的工作也就越多。Rails 就已经占用了很大的内存了,而且平均每个应用刚刚启动后都要占用将近 100M 的内存。如果你不注意内存的控制,你的程序内存增长超过 1G 是很有可能的。需要回收这么多的内存,难怪程序执行的大部分时间都被 GC 占用了。
3,win下配置ruby on rails环境使用rubymine运行时提示错误!错误信息如下!如何解决?谢谢各位!
你应该是没有正确安装mysql2的gem包。在windows下最好将database.yml中的adapter配置由mysql2改为mysql,然后再到应用目录下面执行bundle install就好了。windows下也可以装mysql2。但是只能装一个特定版本,很不爽。
据我使用mysql2一年多的经验来看。windows下mysql2没多大效率提升。
另外,我建议你用Linux系统来学习ruby。搞个ubuntu虚拟机都可以。这个不是追求高富帅,而是linux对ruby支持更好。很多gem包可以正确安装。
4,Ruby和Ruby on Rails在2017年还有前途吗
应该这样说:Ruby提供了快速开发的能力,Rails框架将这种能力发挥到了极致。Rails本身包含了大量Web开发的最佳实践,但不意味着你不用Rails,开发效率就不高,事实上我现在已经很少用Rails了,我现在用的比较多的是Sinatra/Padrino/Grape,开发效率也非常高,从我个人使用角度来说,我觉得比Rails更好用,开发效率更高,学习成本更低。
5,Ruby on Rails 的前景如何?
我本身是rails程序员,现在Ruby On Rails也在发展吧。Rails的学习曲线,开始平坦,后来比较陡峭。未来前景呢,现在看是比较稳定吧,应该不会很快淘汰,但是大的发展也没有什么太看好。倒是,现在的ios和android等的移动设备的开发,是个前景发展比较能看到增长的行业。
当然,软件的行业,没有太平坦的路,只要选中了,坚持走下来,都不会差太多。修行在个人,没有什么行业是绝对好的,比如,什么perl C C#java java都分别有自己的市场,也都有干不下去的人。也就是说,最重要的不是选择的是什么语言,当前随便前十几的语言都可以入手,关键关键是看自己的用心情况。