分类 学习 下的文章

使用Ruby on Rails进行Web开发的利弊

如今,许多初创企业和成熟企业都选择Ruby on Rails进行Web开发,例如Basecamp,GitHub,Dribble,Airbnb等公司均使用此框架构建网站。

那么,为什么要使用RoR呢?

Ruby on Rails简介

统计数据

首先,让我们看看关于Ruby on Rails框架的数据:

根据BuiltWith的数据,超过523339个网站是用这种技术创建的。
在GitHub上有近4000名程序员为RoR的发展做出了贡献。
Ruby on Rails拥有超过45000颗GitHub星。
Arc指出,一位Ruby on Rails高级开发人员在北美的平均时薪是121-140美元。

Rails的简短历史

David Heinemeier Hansson于2000年代初创建了Ruby on Rails,当时他在开发名为Basecamp的项目管理工具。

RoR框架以其快速、简便的web应用程序开发和部署而著称。因此,Ruby编程语言的创建者Matsuki Yukihiro Matsumoto将此工具称为“ Ruby的杀手级应用”。

Rails的基本原理

Ruby on Rails是一个广泛用于Web应用程序开发的开源框架。它在Ruby上运行,专注于简单性和完善的输出。

它的核心原则使企业家可以减少花费。同时,开发人员可以更快,更轻松地完成任务。

原理:避免重复代码(DRY)

该规则指出,每个代码段都需要在系统内进行唯一,明确且权威的提交。它使应用程序代码更清洁,错误更少。此外,开发人员可以重组代码或将其重构。

原理: 约定优于配置

这个概念假设您使用的系统、库和语言在默认情况下假定了许多逻辑情况。程序员需要指定web应用程序的一些非常规方面,而不是每次都创建新规则。因此,编程变得越来越简单高效。

使用Ruby on Rails进行Web开发的利弊

当涉及到web应用程序开发时,有各种各样的工具可供选择。为了做出正确的决定,您应该考虑学习曲线、可伸缩性、托管需求、安装的方便性、文档等因素。

Ruby on Rails的优点

1.安全性

近年来,网络安全问题已成为企业面临的一个严重问题。根据Cybint Solutions公司的数据,令人震惊的是64%的公司都面临过网络攻击。与此同时,62%的公司成为网络钓鱼和社会工程攻击的受害者。

从下图可以看出,后一类网络安全问题主要针对SaaS、金融机构和电子商务平台。

这些统计数据说明了为什么您未来的解决方案的安全性至关重要。

幸运的是,由于其内置机制,Ruby on Rails可以保证您的网页或应用程序不受常见漏洞的影响。有了这个框架,您的web产品将免受以下威胁:

跨站脚本攻击
SQL注入
跨站请求伪造
不安全的直接对象引用或强制浏览。
2.使用简单

RoR以直观,简洁和易于理解的语法而闻名,这对程序员来说意味着更高的可用性。

Ruby on Rails开发人员编写的代码更少。因此,创建web应用程序的过程变得更快。由于框架的可读性,对于开发人员来说,代码变得更容易理解了。

此外,由于项目遵循相同的规则和原则,程序员可以在任何开发阶段从一个Rails项目转移到另一个Rails项目。

3.开发速度快

该框架提供了大量名为gems的免费开源库。它们扩展或修改了Web应用程序的现有功能,并为开发人员提供了常见问题的解决方案。

今天,Ruby gems的数量已经超过了158700 +,下载量超过了480亿次。

此外,还有一些库扩展和实用程序类,它们构成了Active Support,负责开发Rails应用程序和技术本身。

快速开发是创业公司选择Ruby on Rails的关键原因之一。这个框架加快了MVP开发过程,即使在预算有限的情况下也可以创建高质量的Web产品。

4.社区

Ruby on Rails有一个充满活力的社区。它的活跃成员创建Ruby on Rails专用的网站、论坛和聊天室,帮助开发人员从遇到类似问题的其他程序员那里找到专业答案,并提出解决方案。

此外,社区成员还不断编写指南、手册、课程和其他教育材料。

社区托管了RailsConf,这是RoR开发人员的最大聚会,可以与该框架的其他粉丝分享经验。

5.轻松实现业务逻辑

使用Ruby on Rails可以很容易地在web应用程序中实现复杂的业务逻辑。假设您需要API。应用此框架的开发人员将很快创建它。你唯一要做的就是添加一个像Vue或React这样的前端框架,仅此而已。

6.与前端框架的兼容性

如今,React、Vue和Angular等前端框架越来越受欢迎。由于RoR易于集成,这些工具被广泛地与Ruby on Rails一起使用。您可以采用任何您喜欢的框架进行快速开发。

Ruby on Rails的缺点

1.运行速度和性能

应用程序的成功通常取决于这两个参数。客户通常希望Web应用程序能够快速加载。

谷歌的研究显示了每秒钟的延迟如何减少页面的访问量的。

有时候,Ruby on Rails的运行速度有很多不足之处。对于不到数百万用户的小型应用程序来说,这已经足够了,但在构建一个可靠的web项目时,这可能会成为一个问题。

然而,2019年8月发布的Ruby on Rails 6.0版本涉及了这个主题。新功能允许开发人员使用两个数据库在它们之间进行切换,从而提高了性能。

2.缺乏灵活性

由于组件和模块之间存在严格的依赖关系,因此Ruby on Rails是常规Web应用程序的理想解决方案。但是,当涉及具有特定功能的应用程序时,自定义可能会充满挑战。

配置路由,数据库迁移和其他元素会减慢Web应用程序的开发过程。

3.较低的知名度

在过去的几年里,Ruby on Rails的受欢迎程度一直在下降。谷歌Trends提供的统计数据表明,人们对这个框架缺乏兴趣。

尽管开发人员和支持社区的数量在增加,但该技术并未像PHP的Laravel或Python的Django那样广泛使用。可能的原因之一是其陡峭的学习曲线。通常,精通Ruby on Rails的开发人员都知道一种或两种编程语言。

对于企业所有者来说,这意味着与寻找PHP、Java或Python web公司相比,雇佣一个有经验的Ruby on Rails开发机构可能是一个相当具有挑战性的过程。与此同时,他们会得到更有经验和技术的专家。

Ruby on Rails在Web开发中的使用

让我们仔细看看最适合Ruby on Rails框架的项目。

初创企业

Ruby on Rails是初创公司最适合使用的技术之一。它在构建原型和开发MVP时得到了应用,这使得Rails备受推崇。

像GitHub、Twitter、Airbnb和Dribbble这样的流行平台最初都是用Ruby on Rails创建的。

电子商务

使用前面提到的gems,您基本上可以实现电子商务平台可能需要的任何功能。

Shopify、Fiverr、Groupon和Etsy最初都是基于Ruby on Rails的。

SaaS

在构建SaaS产品时,安全性是重中之重,而Ruby on Rails可确保Web产品的安全性。在此框架内,有很多预防措施来保护数据,包括使用大量gem进行身份验证和增加密码长度,多个内置加密库,跳过伪造请求以及使用强参数。

Basecamp,Zendesk和GitHub是使用RoR构建的最著名的SaaS应用程序。

最后

总之,Ruby on Rails是一个高效的、可伸缩的、安全的web开发框架,它可以帮助您构建任何类型的产品:从电子商务平台到SaaS解决方案。但是,RoR也有一些缺点,应该加以考虑。

学英语勿入此三类大坑

学英语十几年,因备考雅思误触三个大坑,特来分享亲身总结的“血泪”教训。(相关思维导图见文末)

  1. 一门心思背单词

三年前,意外发现扇贝网,设定每日50单词(其中包括10个生词)的目标。数月后,开始备战雅思,为短期提高词汇量将目标设置为每天600个。事实证明,欲速则不达,背600单词每天要耗去至少2.5小时,时而遭遇生僻词背3.5小时也是有可能的。以这样自虐(也许还有点自残)的速成法坚持了一个月,我几乎形成了打开扇贝网就犯晕的条件反射。虽然过程如此艰辛,然而收获寥寥,因为求成心切,当时记得牢固几天即忘,遗忘速率非常贴合遗忘曲线,倒是真正记住的也有,极少。

磕磕绊绊一个半月,把自己折腾够呛后,我放弃了速背单词的念头。但词汇量仍然亟待提高,怎么办呢?此时,我有幸听从了一位博士大哥的建议,读原版书报侧面提高词汇量。记得当时是从扇贝新闻开始读起的,那时距离我上一次读原版书报大概已隔六年之久,直接重拾原版书担心略微吃不消,遂决定从新闻读起。扇贝新闻有个好处,在上面读新闻看不到全文翻译,读者只能点击不认识的单词查看其或词组的中文释义,强行摒弃母语的环境让人不得不硬着头皮一行行读完。这一方法见效极快,为读懂新闻必须查生词,而语境中的词汇很容易被记住,很快我进入了原版书阅读阶段。记得当时博士大哥推荐的书是The Alchemist,此书对词汇量要求不大,语言通俗易懂,情节引人入胜,故事给人启迪,作为入门读物堪称典范。

后来我又看了些Charing Cross 84之类的小说和畅销书,此处提供个数值,以供参考。我大学时的词汇量6000左右,现在根据上次在扇贝测的结果大约12000,日常生活工作基本足够。另外,根据我近三四年与外国友人和客户打交道的经历来看,词汇量(当然前提至少要达到4000)远没有想象中的重要,口语和书面表达能力其实是检验英语水平的真金白银。如何用已知词汇表述未知事物是一门实践出真知的技术。

  1. 线上语音练口语

当时为备考雅思,一门心思找人练习口语。我本人工作时常与派驻的外方客户讨论项目情况,自认口语还可以,但苦于雅思口语考试练习无门,苦思冥想后我在扇贝小组发帖征人共练口语,招募来十几人。随后我建起一个练习专用YY频道,确立一个固定时间,每周设定一个聊天主题,每次练习2小时。

随着练习开始,问题也开始凸显。原来,来YY在线聊天练习的,大多是腼腆而怯于在人前讲英语的,其口语好坏程度可想而知。记得14年初在云南旅行,为按时主持频道活动,我在高速路上用3G网做了一期,发小边开车边说“你的口语比他们强,用不着在这种地方练习,”一语点醒梦中人。我主持该频道活动近半年,后因出国将频道事物全数移交。在此期间,仅遇过一名讲一口纯正英音的女孩,算是口语与我相当,其余众人有不同程度的发音问题。此方法就此作罢。

在江沪生活有一个好处,各类活动只要能想到的基本都能够找到圈子。经高人指点,我开始每周光顾英语角,在那里尽量与外国友人和海外侨胞交谈。这段经历,不但扩充了我的口语词汇量,改进了表达方式,而且还让我结识了不少新朋友,可谓一举多得。必须承认的是,无论线上练习,还是去英语角,你必须开口说话,否则哪种方法也不过是徒劳。李阳的话怎么说来着,“I love losing face”,就是这样。

  1. 无目标性乱刷题

除去背单词和口语练习,我还通过各类渠道收集了几本雅思真题。立志每周两套,当然计划以失败告终。失败的原因极其简单,连续无目的刷题导致我刷题测试成绩忽高忽低,心情也随之起伏,自然无心多做。

屡次失败后,我开始反思,重新定制了带着目标刷题的计划,成绩才开始有起色。可以根据自身情况,确立目标,譬如写作专项训练,一个月内与范文相较达到何种程度,而后这个月写作就作为重点训练,直至目标达成。盲目刷题不可取,还可能打击自信心。

如上三条,是我这些年趟过的英语学习大坑及经验教训,希望对各位有所帮助。
请输入图片描述

三大坑及应对方法总结

文/S_P_K(简书作者)
原文链接:http://www.jianshu.com/p/eea6ab7f09db
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

/* * @Author: your name * @Date: 2016-09-06 00:00:00 * @LastEditTime: 2020-03-17 18:29:35 * @LastEditors: Please set LastEditors * @Description: In User Settings Edit * @FilePath: \htdocs\usr\themes\default\footer.php */