首页>商店

学习足够多的Ruby:用Ruby编写程序,发布宝石,开发Sinatra Web应用程序(live课程)

学习足够多的Ruby:用Ruby编写程序,发布宝石,开发Sinatra Web应用程序(live课程)

您的浏览器不支持播放此视频。请下载文件来查看它。

在线视频

描述

  • 版权2022
  • 版本:1
  • 在线视频
  • ISBN-10: 0-13-784440-9
  • ISBN-13: 978-0-13-784440-1

7小时的视频教学

学习足够多的Ruby,让它变得危险:用Ruby编写程序,发布宝石,开发Sinatra Web应用程序著名的讲师Michael Hartl教授的概念,技能和方法,你需要用Ruby专业生产通用编程和开始web应用程序开发。

概述

程序员喜欢Ruby,因为它的优雅、强大和灵活性:这就是为什么Ruby on Rails框架选择了它,推出了从Shopify到Coinbase的网站。你也会喜欢Ruby,但你不需要学习它的“一切”,只需要学习如何有效地使用它来解决实际问题。畅销书作者和领先的Rails开发人员Michael Hartl让您以最快的速度开始编写实用的现代Ruby程序,重点关注软件开发人员每天使用的真实工具。您将学习如何交互式地使用Ruby,用Ruby编写shell脚本,以及使用Ruby制作简单的动态web应用程序。

即使您是编程新手,Hartl也可以帮助您快速构建复杂的技术,因为您对面向对象和函数式编程有了坚实的理解,并开发和发布了一个自包含的Ruby包(a)宝石),并使用gem构建和部署一个使用Sinatra框架的动态web应用。集中练习可以帮助你内化重要的事情,而不会把时间浪费在专业人士不关心的细节上。很快,就会像你一样出生知道了这些,你就会突然变得严肃起来危险的

关于讲师

迈克尔·哈特尔创造者是Ruby on Rails教程是web开发的主要介绍之一,也是Learn Enough的联合创始人和主要作者。此前,他曾在加州理工学院(Caltech)担任物理讲师,并在那里获得了卓越教学终身成就奖。他毕业于哈佛大学,拥有加州理工学院物理学博士学位,是Y Combinator企业家项目的校友。

技术水平

  • 初级到中级

学习如何

  • 使用几种不同的技术创建一个简单的“hello, world”程序
  • 在web上部署一个简单的动态Ruby应用程序
  • 使用字符串、数组和其他本机对象
  • 定义函数
  • 使用Ruby进行函数式编程
  • 利用测试驱动开发并发布Ruby gem
  • 编写shell脚本
  • 开发一个完整的Ruby web应用程序来检测回文

谁应该修这门课

  • 寻找Ruby实用介绍的新手和有经验的开发人员。这门课程也可以作为受欢迎的先决条件Ruby on Rails教程或者作为它的自然后续。

课程要求

  • 唯一的先决条件是熟悉基本的开发人员工具(命令行、文本编辑器和Git)并熟悉HTML
  • 一些编程经验是有用的,但不是必需的

课程描述

第一课:你好,世界!
第1课从头开始,让您使用几种不同的技术创建四个简单的“hello, world”程序。“hello, world”的主要目的是确保您的系统被正确配置,以执行将字符串“hello, world!”打印到屏幕上的简单程序。首先编写一系列程序,在命令行终端显示问候语,首先在一个名为irb(交互式Ruby),然后从文件,然后从shell脚本。最后,使用Sinatra web框架编写并部署一个简单的概念验证web应用程序。

第二课:琴弦
第2课介绍了字符串,这可能是网络上最重要的数据结构,因为网页最终由发送到浏览器的字符串和字符组成。许多其他类型的程序也需要字符串操作。因此,字符串是开始Ruby编程之旅的好地方。本课程从什么是字符串以及如何创建字符串开始,包括单引号和双引号字符串。然后学习如何将一个字符串连接到另一个字符串。接下来,您将学习如何从终端窗口打印到屏幕。作为本文的一部分,您将看到Ruby布尔变量和控制流的第一个示例。最后,您将学习如何使用for循环遍历字符串,使您能够一次访问一个字符。

第3课:数组
在第2课中,您了解了字符串可以被认为是按特定顺序排列的字符序列。在第3课中,您将学习数组数据类型,它是按特定顺序存放任意元素的通用Ruby容器。首先通过字符串分割方法显式地连接字符串和数组,然后在本课的其余部分中学习各种数组方法。在学习了拆分字符串之后,您将学习如何访问结果数组中的元素,发现相同的语法也适用于字符串,从而进一步加深了两种数据类型之间的联系。接下来,您将学习各种其他数组方法,从使用数组切片同时选择单个元素和多个元素开始,包括有用的范围数据类型,以及使用范围索引选择数组中最后一个元素的聪明技术。然后学习如何对数组进行排序,如果您曾经手工编写过排序算法,那么您会发现Ruby使排序变得非常简单。您还将学习如何反转数组,在本教程后面学习检测回文时,您将很好地使用该功能。接下来,您将学习如何使用push和pop添加和删除数组元素,包括介绍重要的shovel操作符。然后学习如何使用数组和连接撤销字符串分割。最后,您将学习如何使用第2课中介绍的相同类型的for循环遍历数组,这是第5和第6课中介绍的更高级技术的有价值的准备。

第4课:其他原生对象
既然我们已经了解了字符串和数组,第4课将继续介绍其他一些重要的Ruby对象,这将使您有机会了解数学、日期、正则表达式和散列。与大多数编程语言一样,Ruby支持大量开箱即用的数学运算,例如加法、减法、乘法和除法。它还包括一个数学库,其中包含更高级的运算,如对数和三角函数。您还将学习如何在Ruby中处理时间和日期,例如获取年、日或确切的时间。这使您第一次有机会使用新函数,即所谓的构造函数,它是创建新对象的标准Ruby方法。本课包括对正则表达式这个强大主题的介绍,正则表达式在文本编辑器和grep命令的上下文中有过简要的讨论。通常被称为regex简而言之,正则表达式是一种强大的迷你语言,用于匹配文本中的模式。您将学习如何使用正则表达式快速搜索字符串,以查找一行中的5位数字,从而匹配标准的美国邮政编码。本课程以介绍Ruby中的散列结束。您可以使用这些对象来创建键值对的集合,有时称为关联数组,它类似于常规数组,但使用字符串而不是整数作为索引。您将应用这个重要的对象类型来编写第一个实质性的Ruby程序,一个shell脚本,用于计算文本中唯一的单词。

第5课:函数和块
到目前为止,在本教程中已经多次提到Ruby函数,在第5课中,您将最终学习如何定义自己的函数。由此产生的能力为程序员提供了更大的灵活性,并启用了强大的技术,如每一个方法,这是本课的内容,以及函数式编程,这是第6课的主题。首先学习read-eval-print循环中的函数,即REPL,然后学习如何将函数定义放入文件中,以便在简单的Sinatra web应用程序中使用。本课还介绍了如何在一行中使用多个函数,这种技术称为方法链接。方法链用于对回文函数进行第一次定义,以查看字符串前后是否相同。这节课以对……的讨论结束每一个这种方法通常提供了一种比第2课中介绍的for循环更方便的处理数组元素的方法。这是您对块的第一次介绍,这是Ruby与少数其他语言共享的特性,也是Ruby异常灵活和强大的主要来源。

第六课:函数式编程
学习了如何定义函数并在不同的上下文中应用它们。在第6课中,通过学习函数式编程的基础知识,将编程提升到一个新的水平,函数式编程是一种强调函数的编程风格。这是一个具有挑战性的课程,你可能需要看几次才能吸收所有内容,但回报确实很丰富。它着重于函数式编程中常用的三组函数,即映射、选择和减少。我们的第一个示例是map函数,它允许您在元素数组上映射函数。它通常是循环的强大替代方案。第二个函数是select,它使您能够根据布尔标准选择数据。例如,您可以获取一个整数数组,并只选择可被2整除的数字,这为您提供了一种仅选择数组中偶数的快速方法。第三个函数是强大的reduce,它确实是一种强大的技术,可以使用大量示例来真正理解,但使您能够编写非常干净和简洁的代码。因为即使对于有经验的开发人员来说,理解reduce以及所有的功能技术也是具有挑战性的,所以当与测试驱动的开发相结合时,它特别强大,这将在第8课中介绍。

第七课:对象和类
在第7课中,您将学习如何创建自己的Ruby对象,这些对象可以同时具有属性(即数据)和方法(即函数)。在Ruby中定义对象的方法是使用class方法,它产生一个对象构造函数,该函数可用于创建或实例化一个名为an的新对象实例使用你在第四课第一次看到的新方法。这为您提供了理解Ruby对象系统所需的背景知识,Ruby对象系统在该语言中无处不在。的确,人们常说Ruby中的一切都是对象。在这节课中,你将学习到这个描述的确切技术含义。从一个短语对象的具体例子开始,该对象知道该短语是否为回文。然后添加一个已翻译的短语对象,该对象覆盖主palindrome方法并替换已翻译的短语。这些示例使您能够理解继承和派生类,这是面向对象编程中的关键理念。这节课甚至讨论了修改原生Ruby对象的强大甚至危险的实践。这使我们能够修改字符串类本身,使每个字符串都能够判断它是否是回文。最后,我们学习Ruby模块,也称为mixin。Ruby模块为我们提供了一种提取公共功能的方法,然后将其混合到多个类中,这是避免重复和重用代码的好方法。

第8课:测试和测试驱动开发
尽管在介绍性编程教程中很少涉及,自动化测试是现代软件开发中最重要的主题之一。因此,第8课向您介绍了Ruby中的测试,包括对测试驱动开发(TDD)的初步了解。第6课简要介绍了测试驱动开发,我们承诺您将使用测试技术来添加查找回文的重要功能,即能够检测复杂的回文,例如“一个人计划一条运河——巴拿马!”或“女士,我是亚当”。这一课实现了这一承诺。首先使用最小的框架设置我们的测试系统。测试当前回文代码并将其扩展到更复杂的短语的策略如下。第一,为自动化测试设置系统。第二,为现有的回文功能编写自动化测试。第三,为被称为red的增强回文探测器编写一个失败测试。这是TDD循环的第一步,被称为红、绿、重构。 Four, write possibly ugly code to get the test passing, also known as green, which is the second step in red, green, refactor. Five, refactor the code, which involves changing its form without changing its function. Because the code should accomplish the same results the entire time, the test suite should remain green even after refactoring, thereby completing the red, green, refactor cycle. As it turns out, learning how to write Ruby tests also gives you a chance to learn how to create and use self-contained software packages called红宝石的宝石对于更长的Ruby编程来说,这是另一项有价值的技能。

第9课:Shell脚本
在第8课中,您在前几课奠定的基础上编写了三个越来越复杂的shell脚本。虽然现在web开发可能是Ruby编程最常见的应用,但shell脚本是Ruby的原生栖息地,因此它是Ruby擅长的任务。实际上,在JavaScript上下文中研究过类似材料的读者可能会对Ruby版本更加优雅和精致留下深刻印象。在前两个程序中,您将使用在第8课中开发的Ruby gem,并将其用于检测来自两个不同来源的回文:文件和web。在这个过程中,您将学习如何使用Ruby读取和写入文件,以及如何读取实时web URL。(后一个例子对作者来说尤其具有个人意义,因为他清楚地记得自己第一次编写一个自动程序来读取和处理来自网络的文本,这在当时看起来真的很神奇。)最后,您编写一个现实生活中的实用程序,该程序改编自作者曾经为自己编写的程序。它包括在web浏览器之外的上下文中对文档对象模型或DOM的操作的介绍。这是像JavaScript这样以浏览器为中心的语言可能会做的事情,但事实证明,Ruby也可以做到这一点。

第10课:实时Web应用程序
作为新发现的Ruby功能的最后一个应用程序,在这最后一课中,您将构建一个动态web应用程序。该应用程序通过开发基于web的回文检测器,很好地利用了第8课中开发的自定义Ruby gem。在此过程中,您将学习如何使用嵌入式Ruby或ERB创建动态内容。从web中检测回文需要使用后端web应用程序来处理表单提交,我们选择的工具是Sinatra,这是您在第1课中遇到的微框架,并在第5课中进一步应用。虽然简单,但辛纳屈并不是一个玩具。它是一个生产就绪的web框架,被Stripe、苹果和迪士尼等公司使用。我们的回文地图还有另外两个页面,home和about,这让您有机会学习如何使用基于ruby的站点布局。作为其中的一部分,您应用并扩展了第8课中的工作,为您的应用程序编写自动化测试。与第1课一样,您的最后一步是将回文图部署到实时web。本课程以指向Ruby、Sinatra和其他主题(如JavaScript和Ruby on Rails)的进一步资源的指针结束。

关于培生视频培训188号金宝搏网页

培生出版专家主导的视频教程,涵盖广泛的技术主题,旨在教你成功所需的技能。这些专业和个人技术视频具有世界领先的作者讲师,由您信赖的技术品牌出版:Addison-Wesley, Cisco Press, Pearson IT Certification, Sams和Que。主题包括:IT认证、网络安全、思科技术、编程、Web开发、移动开发等。了解更多关于培生视频培训的信息188号金宝搏网页金宝搏188亚洲体育真人始乐informit.com/video

视频课程可供下载,以流媒体格式离线观看。在每节课中寻找绿色箭头。

示例内容

目录表

介绍

第一课:你好,世界!
主题
1.1 Ruby简介
1.2 REPL中的Ruby
1.3文件中的Ruby
1.4 shell脚本中的Ruby
1.5 web浏览器中的Ruby

第二课:琴弦
主题
2.1字符串基础知识
2.2串联和插值
2.3印刷
2.4属性、布尔值和控制流
2.5方法
2.6字符串迭代

第3课:数组
主题
3.1分
3.2阵列访问
3.3阵列切片
3.4更多数组方法
3.5数组迭代

第4课:其他原生对象
主题
4.1数学
4.2时间
4.3正则表达式
4.4散列
4.5应用:独特的文字

第5课:函数和块
主题
5.1函数定义
5.2文件中的函数
5.3方法链
5.4个盖帽

第六课:函数式编程
主题
6.1地图
6.2选择
6.3减少

第七课:对象和类
主题
7.1定义类
7.2继承
7.3派生类
7.4修改本地对象
7.5模块

第8课:测试和测试驱动开发
主题
8.1测试和Ruby gem设置
8.2初始测试覆盖率
8.3红
8.4绿色
8.5重构

第9课:Shell脚本
主题
9.1从文件中读取
9.2从url读取
9.3命令行DOM操作

第10课:实时Web应用程序
主题
10.1设置
10.2站点页面
10.3布局
10.4嵌入式Ruby
10.5回文检测器
10.6结论

总结

更多的信息

金宝搏188亚洲体育真人始乐InformIT促销邮件和特别优惠

我希望收到独家报价,并听到有关InformIT及其品牌家族的产品。金宝搏188亚洲体育真人始乐我可以随时退订。

概述


培生教育有限公司(Pearson Education, Inc., 221 River Street, Hoboken, New Jersey 07030)提供本网站,提供可通过本网站购买的产品和服务的信息。

本隐私声明概述了我们对隐私的承诺,并描述了我们如何收集、保护、使用和共享通过本网站收集的个人信息。请注意,培生的其他网站和在线产品及服务有其单独的隐私政策。

信息的收集和使用


为了开展业务并提供产品和服务,培生通过与本网站相关的几种方式收集和使用个人信息,包括:

问题及查询

对于查询和问题,我们会收集查询或问题,以及姓名、联系方式(电子邮件地址、电话号码和邮寄地址)以及通过“联系我们”表格或电子邮件自愿提交给我们的任何其他附加信息。我们使用这些信息来解决询问和回答问题。

在线商店

对于通过本网站上的在线商店下达的订单和购买,我们会收集订单详细信息、名称、机构名称和地址(如适用)、电子邮件地址、电话号码、送货和账单地址、信用卡/借记卡信息、送货选项和任何指示。我们使用这些信息来完成交易、履行订单、与下订单或访问在线商店的个人沟通,以及用于相关目的。

调查

培生可能提供提供反馈或参与调查的机会,包括评估培生产品、服务或网站的调查。参与是自愿的。培生收集调查问题中要求的信息,并使用这些信息来评估、支持、维护和改进产品、服务或网站,开发新产品和服务,进行教育研究以及调查中指定的其他目的。

比赛及绘图

偶尔,我们可能会赞助比赛或绘画。参与是可选的。培生收集参赛者姓名、联系方式和其他填写在参赛表格上的信息,以进行比赛或抽奖。培生可能会根据法律要求,从竞赛或抽奖的获胜者那里收集额外的个人信息,以便颁发奖品和用于税务报告目的。

时事通讯

如果您已选择接收电子邮件通讯或促销邮件和特别优惠,但想取消订阅,只需电子邮件information@金宝搏188亚洲体育真人始乐informit.com

服务公告

在极少数情况下,有必要发布严格与服务相关的公告。例如,如果我们的服务因维护而暂时停止,我们可能会向用户发送电子邮件。一般来说,用户不能选择退出这些通信,但他们可以停用他们的帐户信息。然而,这些通信在本质上不是促销。

客户服务

我们定期与用户沟通,以提供所要求的服务,并且当用户通过我们的网站提交信息时,我们会根据用户的意愿通过电子邮件或电话回复与他们的帐户有关的问题联络表格

其他信息的收集和使用


应用和系统日志

培生自动收集日志数据,以帮助确保本网站的交付、可用性和安全性。日志数据可能包括有关用户或访问者如何连接到本网站的技术信息,例如浏览器类型、计算机/设备类型、操作系统、互联网服务提供商和IP地址。我们将此信息用于支持目的和监控站点的运行状况、识别问题、改进服务、检测未经授权的访问和欺诈活动、预防和响应安全事件以及适当地扩展计算资源。

网络分析

培生可能会使用第三方网络趋势分析服务(包括Google Analytics)来收集访问者信息,如IP地址、浏览器类型、参考页面、访问过的页面以及在特定网站上花费的时间。虽然这些分析服务以匿名方式收集和报告信息,但它们可能会使用cookie来收集网络趋势信息。收集的信息可能使Pearson(但不是第三方web趋势服务)能够将信息与应用程序和系统日志数据链接起来。培生将这些信息用于系统管理、识别问题、改进服务、检测未经授权的访问和欺诈活动、预防和响应安全事件、适当扩展计算资源以及支持和提供本网站及其服务。

Cookies及相关技术

本网站使用cookie和类似的技术来个性化内容,测量流量模式,控制安全性,跟踪本网站信息的使用和访问,并提供基于兴趣的消息和广告。用户可以通过浏览器管理和阻止cookie的使用。禁用或阻止某些cookie可能会限制本网站的功能。

不要跟踪

本网站目前不响应禁止跟踪信号。

安全


培生采用适当的物理、管理和技术安全措施来保护个人信息免遭未经授权的访问、使用和披露。

孩子们


本网站不面向13岁以下儿童。

市场营销


培生可以向用户发送或直接发送营销信息,前提是

  • 培生不会将作为K-12学校服务提供商收集或处理的个人信息用于定向或有针对性的广告。
  • 这种营销符合适用法律和培生的法律义务。
  • 培生不会故意直接或发送营销通信给个人谁表示了偏好不接受营销。
  • 在适用法律要求的情况下,对营销的明示或默示同意存在且未撤销。

培生可以在有限的基础上向第三方服务提供商提供个人信息,仅代表培生或培生作为其服务提供商的关联公司或客户进行营销。营销偏好可能随时发生变化。

更正/更新个人资料


如果用户的个人身份信息发生变化(例如您的邮寄地址或电子邮件地址),我们将提供一种方法来更正或更新用户提供给我们的个人数据。这可以在帐户页面。如果用户不再需要我们的服务,并希望删除他或她的帐户,请联系我们customer-service@金宝搏188亚洲体育真人始乐informit.com我们将处理用户帐户的删除。

选择/退出


用户可以在知情的情况下选择是否继续使用InformIT提供的某些服务。金宝搏188亚洲体育真人始乐如果您选择从我们的邮件列表中删除自己,只需访问以下页面并取消您不再希望接收的任何通信:www.金宝搏188亚洲体育真人始乐informit.com/u.aspx

出售个人资料


培生不会出租或出售个人信息以换取任何金钱。

虽然皮尔逊不出售个人信息,根据内华达州法律的定义,内华达州居民可以通过电子邮件请求不出售他们的个人信息NevadaDesignatedRequest@pearson.com

加州居民补充隐私声明


加州居民应该读读我们的加州居民补充隐私声明连同本私隐声明一并提交。的加州居民补充隐私声明解释培生遵守加州法律的承诺,并适用于通过本网站和服务收集的加州居民的个人信息。

分享与披露


培生可能会在以下情况下披露个人信息:

  • 这是法律规定的。
  • 经个人同意(或其父母同意,如果个人是未成年人)
  • 在法律允许或要求的范围内响应传票、法院命令或法律程序
  • 根据适用法律保护个人、数据、资产和系统的安全
  • 与出售、合资或以其他方式转让部分或全部公司或资产有关,但须遵守本隐私声明的规定
  • 调查或处理实际的或涉嫌的欺诈或其他非法活动
  • 行使其合法权利,包括执行本网站的使用条款或其他合同
  • 培生的附属公司以及为培生工作的其他公司和组织,他们有义务按照本隐私声明保护个人信息的隐私
  • 对于学校、组织、公司或政府机构,培生在学校或代表这些组织、公司或政府机构收集或处理个人信息。

链接


本网站包含到其他网站的链接。请注意,我们不负责此类其他网站的隐私做法。我们鼓励我们的用户在离开我们的网站时保持警惕,并阅读每个收集个人信息的网站的隐私声明。本隐私声明仅适用于本网站收集的信息。

请求及联络


联系我们查阅本私隐声明,或对您的个人资料私隐有任何要求或疑问。

本隐私声明的变更


我们可能会通过更新发布来修改本隐私声明。我们将在公告中注明修订的生效日期。通常,进行更新是为了提供更大的清晰度或符合法规要求的变化。如果更新涉及个人信息的收集、保护、使用或披露的重大变化,培生将通过本网站的显著通知或其他适当方式提供变更通知。在已发布的修改证明生效日期后继续使用本网站。如果您对本隐私声明有任何疑问或疑虑,或对任何修订有任何异议,请与我们联系。

最后更新:2020年11月17日