b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

您为什么必须阅读《 Ruby原理剖析》?

电脑杂谈  发布时间:2020-03-19 23:13:22  来源:网络整理

ruby和r语言_ruby是什么类型语言_ruby语言用途

1. 我为什么要翻译“ Ruby原理剖析”,其中包括一个小故事,值得分享.

2. 什么是“ Ruby原理剖析”,或者您可以从本书中学到什么?

3. 学习“ Ruby原则分析”有什么含义?

首先自我介绍. 我叫张汉东. 他是《 Ruby原理剖析》一书的翻译者,目前正在撰写《 Rust的编程方式》一书,该书预计将于今年12月出版. 目前,他正在开展青年心理教育领域的业务,并试图通过编程来改善心理教育.

大学是电子信息技术,但是从那时起,对编程的兴趣就一直在高中时期. 因此,在2005年大学毕业后,他开始从事软件开发工作. 最早使用的编程语言是VB和Java. 直到2006年底,我看到该国的人们都在推广Ruby on Rails框架. 我记得它仍然是2007年1月发布的Rails 1.2. 然后,我按照DHH的15分钟的Blog教程开始使用Rails. 所以我上了Rails车,开始了我的Ruby之旅.

当我第一次看Ruby时,我发现这种语言的表达与自然语言非常接近. 特别是Rails中的DSL方法使初学者可以一目了然地理解它所表达的语义. 当时,我觉得这个框架不仅仅是一个框架,更重要的是,它还包含了Web开发的最佳实践. 在学习Rails的同时,我对Web开发,和其他知识有了更深入的了解. 例如,当我看到has_many时,我会进一步考虑,为什么要这样设计DSL?通过查阅数据来解决此问题,我们对的设计有了深刻的了解.

就是这样,我对Ruby和Rails的兴趣越来越强,我决定使用它来工作. 因此,苦心经营的是当时称为国内第一家Ruby on Rails初创公司的公司,该公司现在是成都Nibilu Technology. 这样,Ruby开发一完成便完成了将近十年.

对我来说,这十年可以分为三个阶段.

第一阶段是新秀阶段. 尽管我以前有VB和Java的经验,并在Ruby上投入了大量的学习时间,但我仍然是新手程序员. 前三年的工作只是停留在移动砖头的阶段. 只要工作任务完成,每一天都是混乱的. 永远不要考虑工作的令人满意程度.

直到有一天,我开始感到自己的瓶颈日益严重,但是当我努力工作时,我不知道该去哪里. 这时候我很困惑. 在混乱时期,我还考虑过转行,自己去开一家餐厅,当然以失败告终. 因为您必须支付输入新字段的学费. 但是这种经历使我意识到了一些事情: 有时候人们不能走得太快,他们需要停下来冷静下来思考自己. 我之所以没有突破瓶颈,是因为我专注于如何突破薪水,而雄心勃勃的薪资追求使我完全忽略了自己的提高能力. 在此期间,他换了工作找工作. 他只看钱,不考虑自己的职业发展. 例如,我也做过Python,因为有一项Python工作. 解决了这个问题,我再次选择了Ruby.

我开始重新检查Ruby,并开始系统地学习Ruby. 在此期间,Ruby的父亲“ Matsumoto Yuhiro的程序世界”对我的帮助最大. 因为本书从Ruby之父的角度解释了Ruby的设计理念,所以它使我对Ruby的整个高层抽象有了新的认识. 随着研究的继续,我接触了“ Ruby Hacker Guide”. 这本书是对Ruby源代码的最早分析,但是版本有点陈旧,无法与时俱进. 系统不够. 因此,当我看到《 Ruby原理剖析》这本书时,那正是我的突破阶段.

那我为什么还要翻译《 Ruby原理剖析》一书?在听完我以前的很多旅行之后,每个人现在都应该明白,这是让我变得更好的自我.

事实上,至少有十个人问我,翻译一本书可以赚钱,但不能赚钱吗?除非它是畅销书,否则它不会赚钱. 像这样的利基技术基本上是在赚钱. 许多翻译人员,包括我在内,都不会赚钱.

ruby语言用途_ruby是什么类型语言_ruby和r语言

如何翻译这本书,实际上背后有一个小故事.

翻译这本书花了一年时间,但实际上我花了近三年的时间. 当我在2013年看到这本书的原始版本时,我发现这本书真的很不错. 当时,我大概写了最原始的译文. 因为如果我不写译文,我几乎无法保证我已经读完了. 因此,翻译的初衷是让您完成阅读.

看了大约十章之后,我想到了翻译和出版它. 因此,我联系了图灵和仁友的老师等出版人员,他们没有介绍这本书. 当时我很失望,所以我放弃了.

直到2015年,华中科技出版社的徐定祥先生通过电子邮件将豆瓣寄给我,问我是否可以翻译这本书. 那时,我感到非常惊奇,因为豆瓣帐户是刚刚注册的,几乎没有记录. 我读过的唯一一本书是《 Ruby原理剖析》. 而已. 我马上就把它翻译了,翻译也没错.

现在回过头来看,它确实证实了这句老话: 如果您不忘记ruby语言用途,您将永远记住. 机会留给有准备的人.

{6: 2: d: b: 5: 0: 2: 2: 1: 1: f: 3: 8: b: 7: 0: 6: 4: 8: 5: 4: 6: 4: 3: f: 4: e: a: e: 2: 3: 3: f: e)

那么这本书追逐了我三年有什么好处呢?

我一直坚信一种观点: 书籍不是好是坏,主要是看人. 你为什么这么说因为任何一本书都涉及一个主题,并且针对特定的目标群体. 而且,读者的水平也不同,有些人是高水平的. 我觉得他会了解本书中的所有内容,当然这本书对他没有用. 有些人水平较低. 尽管书中的内容对他有帮助,但他无法理解. 实际上,当我读这本书时,我很困惑. 我知道它的内容对我非常有用,但我不理解. 多数来这里的人会因为不懂这本书而放弃阅读,但我却相反. 我只是看了,因为我听不懂. 因为学习本身就是因为你不懂,所以为什么要学习呢?

我听不懂,但我相信我可以通过某些方法来了解自己. 这实际上涉及到如何读书的问题. 在这里,我碰巧分享了我的阅读方法.

我的阅读方法分为三个阶段.

第一阶段已通读.

经过分析,我无法理解“对Ruby原理的分析”,因为我对此知识太陌生. 这种陌生感使我感到一种抵触感. 克服它的唯一方法是先让自己通读它.

通读有三个目的.

ruby和r语言_ruby是什么类型语言_ruby语言用途

例如,如果您通读本书,您会发现它可以分为六个部分.

第一部分是解释Ruby的执行过程,分词,解析,编译等.

第二部分与对象模型和方法调用有关.

第三部分是Ruby语言中常用的哈希表的内部实现.

第四部分是闭包的工作机制.

第五部分是元编程. 实际上,在谈论这一部分时,您会发现元编程的机制没有太多的魔力,只是先前知识点的应用.

第六部分与GC有关.

最后,集中注意力. 主要是记录通读过程中发现的问题以及您不了解的知识点.

第二阶段是着眼于阅读过程的关键点,并一一突破.

第三阶段是对所学知识进行统一梳理,以形成结构化的知识. 在这一点上,阅读本书被认为是最好的用法.

那么本书包含哪些知识?只是露比吗?

不是. 这个世界上的知识并不是孤立存在的,它们之间有着千丝万缕的联系. 尤其是计算机编程领域的知识.

实际上,《 Ruby原理分析》一书至少包含三部分知识:

Ruby是一种编程语言,自然包含了编程领域的那些常识. 除了Ruby自身的原理外,它还包含有关编译原理的知识.

ruby是什么类型语言_ruby语言用途_ruby和r语言

请记住,关于知识中的编译原理有很多问题,例如: “我想如何学习一些编译原理,但又不想读像《龙虎》这样的书,理论太多了,干吗? ” “这门课很无聊,我想很好地学习它,有什么建议吗?”,“编译原理的用途是什么?”依此类推.

实际上,“ Ruby原理分析”是对“ Compilation Principles”的简要介绍. 尽管它不能达到龙虎鲸书这样的水平,但它以Ruby虚拟机为例来了解编译原理的作用,这对于全面了解编译原理还是很有帮助的. / p>

此外,“ Ruby原理分析”还包含有关程序执行方式的知识. 阅读整本书后,需要自己完善这些内容. 这些是可以转让的基本知识. 当您学习其他语言时,有了这些知识,学习效率将更加有效.

特别是,“ Ruby原理分析”一书的内容组织非常注重此级别的Ruby原理知识. 从Ruby的执行过程到Ruby的对象模型和方法查找,再到模块系统,Mixin的机制,闭包,元编程和GC. 这些内容实际上是Ruby的核心知识.

有人说Ruby太灵活,太难了,还有太多东西. 读完本书后,您会发现Ruby语言的一致性实际上很高.

Ruby的对象模型实际上非常简单. 一切都是对象,对象通过消息传递进行通信.

除了底部的三章之绕一个主题(即对象如何通信)进行描述.

从第4章,控制结构和方法调度开始. 本章的内容是让您掌握Ruby代码的结构. 除了控制结构之. 实际上,不管条件分支,循环,块和其他结构如何,在Ruby的底部,在堆栈框架之间都有一些简单的指令被调用. 然后我讨论了方法搜索和方法调度. 我了解到,不管Ruby中有多少种方法,实际上它们的底部都会用不同的类型标记,除了搜索方法和调用条件不同之外.

第5章,在底部讨论Ruby的类和对象的性能. 在底部,Ruby的类实际上是C语言结构和一组方法. Ruby对象是另一种结构. 对于简单类型,您甚至不需要结构,它仅存在于堆栈中. 通过学习这一部分,您将认识到如何使用C语言结构来构建上层抽象,以表达松本优子计划的Ruby面向对象的思想. 您可能还会想,如果要设计一种面向对象的语言,您将如何实现它们的行为?

最重要的是,您对Ruby的类,对象和继承有基本的了解,并且加深了对一切都是Ruby对象的概念的理解. 如果您不看具体的实现,则可以理解Ruby中的所有内容都是对象的概念,但这就像一种玩法. 只有深入了解执行机制,您才能更加科学. 行为的判断将更加准确.

再次看第6章,它涵盖了方法查找的原理. 实际上,这是对对象如何在面向对象的思维中进行交流的基础支持. 在Ruby方法调用中,方法接收者是一个对象,无非就是显式接收者和隐式接收者. 当您看到一段Ruby代码时,其中包含对象或消息. 消息被发送到对象,并且对象必须检索可以在内部响应此消息的方法. 如果检索失败,将抛出方法丢失错误. 本章介绍了Ruby对象检索方法的规律. 本章非常重要. 掌握掌握方法的方法基本上就是掌握Ruby.

第7章主要说明Ruby中常用的数据结构哈希表. Ruby对哈希表的依赖性绝对比任何其他语言都强. 因此,您需要了解Ruby中哈希表的实现. 以前ruby语言用途,Ruby的Hash算法被暴露为安全漏洞,攻击者可以相应地发起DoS攻击. 如果您了解哈希表中的哈希冲突原理和相关算法,则可以很好地了解此漏洞的严重性.

第8章解释了闭包的基本机制. Ruby中的闭包是通过块结构(即块)实现的. Ruby的灵魂可以说来自块. 没有块,Ruby不是Ruby. 因此,掌握它的重要性不言而喻.

第9章介绍了元编程. 我们说过,Ruby的对象模式非常简单,即如何在对象之间传递消息. 对象使用方法查找来找到可以响应收到的消息的方法. 因此,如何定义方法决定了方法的外观,实际上决定了对象的行为. 元编程的关键点是元类,即Singleton类. 在我的书中,为了将其与单例模式区分开,我有意将其转换为单个类. 这不是单例模式. 实际上,我认为最合适的翻译是影子类,因为元类是普通类的影子,并且每个类都有这样的影子. 该影子类专门用于定义类方法,并且也从影子类中执行对类方法的搜索. 影子类遵循与常规类完全相同的方法. 所谓的元编程魔术实际上提供了一些操作,这些操作可以打开影子类或普通类以定义内部方法. 诸如class_eval,instance_eval等. 常用的method_missing是一种使用方法搜索的方法,该方法使对象在没有消息响应时使用method_missing来触发默认方法. 这里没有魔术.

最后三章主要介绍GC. 这三章的内容比《垃圾收集的算法和实现》一书要好. 因为“ Ruby原理剖析”一书仍然针对Ruby,所以如果您对Ruby有一定的了解,那么请阅读接下来三章的内容,您将对GC算法的工作原理有更深入的了解. ,因为您可以使用Ruby作为证明. 当然,如果从GC算法的角度来看,《垃圾收集的算法和实现》一书更好,那么您也可以在阅读《 Ruby原理分析》后深入该书.

ruby语言用途_ruby是什么类型语言_ruby和r语言

阅读本书后,您会发现Ruby只是讲述了一个简单的故事:

读完本书,然后自己进行梳理之后,掌握Ruby并不困难.

除了Ruby知识外,本书还为我提供了有关编译原理的另一知识. 尽管我是在大学里学习编译原理的,但是由于我对学校的任何编程语言都不熟悉,所以基本上我学到的一切都归还给了老师,只剩下一点记忆. 在研究“ Ruby原理分析”时,尤其是前三章时,会更加痛苦.

但是,在我较早介绍了学习方法之后,我度过了痛苦的时期. 前三章详细介绍了Ruby代码通过特定的Ruby代码从文本到字节码的过程. 了解什么是词法分析,解析和编译.

然后,在编译字节指令之后,堆栈虚拟机如何执行这些指令. 并学习如何使用生成的字节指令分析代码. 在此期间,我还进行了很多广泛的阅读,相当于对汇编原理进行了系统的回顾,并且学到了很多东西. 而且这部分知识可以转让,而不仅仅是Ruby. 您可以在潜入其他语言时应用它. 例如,Rust.

事实上,除了Ruby知识和编译原理外,整本书的另一层知识是程序的执行机制. 主要涉及基础堆栈和堆内存管理,函数调用堆栈帧. 实际上,Ruby的虚拟机YARV本质上是操作系统的抽象. YARV以类似于CPU的方式执行编译指令. 调用堆栈和堆栈框架类似于操作系统. 这可以帮助您根据是否在乎自己来扩展基础知识.

如果您不了解“ Ruby原则”示例的说明,那么您将不了解此知识水平. 不知道也不可怕是可怕的. 学习是因为你不懂,所以学习是因为你不懂. 因此,您可以找到其他材料并补充您的知识. 继续读这本书.

只有全面了解Ruby原理,编译原理和程序执行机制的三个层次,才可以充分利用本书的潜力.

那么我从这本书的翻译中学到了什么?

除了前面提到的三个知识水平之外,我还收获了其他更有价值的东西. 首先,翻译书籍的整个过程改善了我的翻译经验,并使我成为一名合格的翻译. 其次,引发了写书的念头. 但是当时,我不确定要写什么书.

尽管我喜欢Ruby,但是Ruby的性能始终受到批评. 我一直在寻找像Ruby这样具有高度抽象性的语言,并且具有与C相同的强大性能. 我没想到会找到它. Rust 1.0是在2015年发布的. 我立即开始关注Rust. 正是“ Ruby原理剖析”使我踏上了低级探索的旅程. 我从这本书中学到的知识也帮助我快速掌握了Rust.

只有停留在抽象的层面上才能玩哲学,探索潜在的实现就是拥抱科学. 我希望每个人都能勇于突破自己的瓶颈,成为更好的程序员. 如果您还没有购买《 Ruby原理分析》,那还不算太晚!欢迎大家过来与我交谈.

感谢收看.


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-145348-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...