这样总结大概率会彻底忘记 (我曾经就是这样,写过和你类似的笔记),不过我现在是按日文指南整理语法,内置库和标准库的各种 API 方法单独整理。 学几个不同类型的字面量、方法时间久了忘了,毫无意义。如果只是出于兴趣更没必要搞清楚异常、线程、网络库等等吧,不太清楚您是为了什么呢? 您表达的"通用的方法"是对象模型的理解吗?所有对象只是从类对象的数据结构中查询方法,这些方法都是因为设计自然存在的,不需要特别去记忆。 当然我也只是一个菜鸟,只是希望对你有帮助。
=begin
https://docs.ruby-lang.org/ja/3.0/doc/index.html
https://ruby-hacking-guide.github.io/
=end
我可看不懂日文,不过还是感谢你的分享,我本身就是做 Web 的,前后端都写,后端用过 PHP 和 Python,所以这种笔记也就是把我觉得入门需要的大概的东西简单记录一下,不可能每次都去翻书,书里写得太细了不好翻到,久而久之看多了应该就不需要再来查笔记了。 我看到很多地方都说,Ruby 和 ror 在走下坡 (热度不如以前?),很多 Rubyer 也在转别的语言,我倒是无所谓,打工用 Python 就行,我学 Ruby 和 Rails 就是自己好玩,所以后端要用到的东西,你说的"异常、线程、网络库等等"还是要看的,如果老天赏饭碰到了 Ruby 的机会,我会毫不犹豫去的=。= (这个社区真友好啊 :P)
不用客气喵。是的 Ruby 现在非常不适合就业。这个社区也没你想象的那么好,目前我的了解是现实中大多数人不会愿意去接受一个 Rails 新手,建议您保持原来的工作就好。我是纯粹出于语言的爱好者之间的友好交流回复您建议的。我也很少在此讨论 Rails 相关的问题。 我为什么要好为人师建议您看一下指南呢?指南可以更好地帮助你构建完整 Ruby 的知识体系,避免走一些奇奇怪怪的弯路。您可以大致用浏览器翻译看一下。它是作者本人编写的。这部分深度和细节绝对超过了 Programming_Ruby4th(2004-2013) 的前部分。Ruby 其实并没有这么多语法糖之类奇怪的东西。您的笔记有些东西初学时是有用的,例如一些"空"的强转布尔判断,您写了一些常见类的判别,但是总结起来就是<在 if 判别式中所有 nil、false 之外的值都视为真>。这种系统归纳您从零碎的笔记上是回忆不了的,这个不是说久而久之就记熟了,几乎 99% 的细节都会遗忘,这是人脑的机制,不知道您是否有相同感受呢。好了这就是我的一些学习建议,也感谢你阅读,祝你工作学习顺利~
我只是说"如果老天爷赏饭",有 ruby 的工作概率超低我也知道的,所以我基本上也没打算靠 ruby 找工作,纯粹就是想找一个语言和生态自己玩耍:) 我肯定还是保持原来的工作,毕竟现在大环境不好,有工作就算不错了 (悲)。 我并没有觉得你"好为人师",在社区上友好交流是一件让人高兴的事:) 这篇笔记确实如你所说,入门时有用,我会尝试用翻译看看你推荐的《指南》,构建完整的 Ruby 知识体系之后,这篇新人笔记可能就得被丢弃或者彻底翻修了 XD 如你所说,这种系统归纳确实不能只通过阅读来回忆巩固,肯定还是得写写写,前期写写写的时候,还是有点用的,后面肯定还会各种啃文档,各种 google,各种找 best pratice~ 最后,感谢你的友好交流和各种建议,也祝你工作学习顺利~
The Master says:
You have not yet reached enlightenment.
/Users/jimmy/workspace/koans/neo.rb:229:in `progress': undefined method `exists?' for File:Class (NoMethodError)
if File.exists?(PROGRESS_FILE_NAME)
^^^^^^^^
是不是版本太旧了,按照提示把 exists? 改成 exist? 就正常了
jimmy@JimmyMacBookAir ~/workspace/koans $ rake
/usr/local/Cellar/ruby/3.2.2/bin/ruby path_to_enlightenment.rb
AboutAsserts#test_assert_truth has damaged your karma.
The Master says:
You have not yet reached enlightenment.
Do not lose hope.
The answers you seek...
Failed assertion.
Please meditate on the following code:
/Users/jimmy/workspace/koans/about_asserts.rb:10:in `test_assert_truth'
mountains are merely mountains
your path thus far [X_________________________________________________] 0/281 (0%)
没事,不兼容就改到兼容=。=
AboutStrings#test_plus_will_concatenate_two_strings has expanded your awareness.
AboutStrings#test_plus_concatenation_will_leave_the_original_strings_unmodified has expanded your awareness.
AboutStrings#test_plus_equals_will_concatenate_to_the_end_of_a_string has expanded your awareness.
AboutStrings#test_plus_equals_also_will_leave_the_original_string_unmodified has damaged your karma.
The Master says:
You have not yet reached enlightenment.
You are progressing. Excellent. 20 completed.
The answers you seek...
Expected "FILL ME IN" to equal "Hello, "
Please meditate on the following code:
/Users/jimmy/workspace/koans/about_strings.rb:83:in `test_plus_equals_also_will_leave_the_original_string_unmodified'
mountains are merely mountains
your path thus far [...X______________________________________________] 20/281 (7%)
相比 python 相关的书满坑满谷 微信读书上就两本基础 ruby 还都是英文: The ruby workshop 还有一本 comprehensive ruby programming
我学习 Ruby 是出于执念。我在 leetcode 上用 Ruby 刷题是出于预防老年痴呆的目的,刷了 600 多道。Ruby 这种 high level 的语法很适合我这种业余爱好者,像 go 语言这种刷题时还得自己写 max 函数的对我来说太难了。尽管每次用 Ruby 解题写的代码都很 c-style,但我自己开心就行。
推荐 Elixir,文档不错哦~ https://elixirschool.com/zh-hans
还有类似 Rails 的框架 Phoenix https://www.phoenixframework.org/