Ruby China
  • Topics
  • 招聘
  • Wiki
  • 酷站
  • Gems
  • Sign Up
  • Sign In
oatw
@oatw
Member
NO. 81620 / 2019-05-06

[email protected]
6 Topics / 154 Replies
4 Followers
27 Following
82 Favorites
GitHub Public Repos
  • luda 164

    A library helps to build cross-framework UI components.

  • kickoff 1

    可能是东北三省最灵活易用的任务管理组件

  • prototypes 1

    Some ugly prototypes for my stupid ideas...

  • oatw 0

  • algorithm 0

    Example implementations of data structures and algorithms in Ruby for learning.

More on GitHub
  • Overview
  • Topics
  • Replies
  • Favorites
  • Following
  • Followers
  • 大家的个人博客是定制开发还是开源系统 at July 26, 2019

    😂 😂 😂

  • 大家的个人博客是定制开发还是开源系统 at July 25, 2019

    在社区前辈的指导下租了 DigitalOcean 的服务器。

  • 非计算机专业程序员补习基础,求推荐书籍。 at July 25, 2019

    谢谢大兄弟~

    弱弱地说一下,其实我深挖的方向是 web 前端。。。挖了这些年有点挖厌倦了,毕竟前端能够创造出的价值非常有限。

  • 非计算机专业程序员补习基础,求推荐书籍。 at July 25, 2019

    都是好书。谢谢小姐姐~

  • 非计算机专业程序员补习基础,求推荐书籍。 at July 23, 2019

    嗯。受教了,等我积累一段时间可以考虑试一试,还能多拿个证,挺好。

  • 非计算机专业程序员补习基础,求推荐书籍。 at July 22, 2019

    谢谢前辈!

  • 非计算机专业程序员补习基础,求推荐书籍。 at July 22, 2019

    哈哈!这个思路挺新颖,一举两得。

    记得大学时,我们学校报考的二级都是 C 语言,当时为了考的容易一些,特意跑到隔壁一个师范学校报了一个 Access 数据库,还嘚比嗖嗖地给一起考试的小姑娘传答案(后来坑蒙拐骗取了其中一个小姑凉。。。)

    考二级的时候,内心的 OS 是,以后我可不要当程序员!结果兜兜转转还是做了程序员。。。

  • 非计算机专业程序员补习基础,求推荐书籍。 at July 22, 2019

    厉害!膜拜中🙏

  • 非计算机专业程序员补习基础,求推荐书籍。 at July 22, 2019

    谢谢推荐!

  • 非计算机专业程序员补习基础,求推荐书籍。 at July 21, 2019

    非常全面!谢谢前辈!

  • 非计算机专业程序员补习基础,求推荐书籍。 at July 21, 2019

    前辈您这指导相当生动接地气儿啦!(红黑树那段我笑出了声)

    就像前辈说的,时间和精力真的是感觉越来越不够用了,可能看一个框架一个月能基本上手干活,但是看一个月算法可能门儿都没入,大多时候迫于工作出结果就选择了前者。所以,对于坚持这个事,我真不敢夸下海口。现在被逼得每次上大号都会多上十分钟,在里面看算法书。。。

    但不管怎么说,我还是要挑战一下自己,不以面试为目标,也不以炫技为目标,就为了不给自己的程序员生涯留下遗憾。(决心表完了,嘿嘿~)

    感谢前辈愿意花时间码字指导!(敬礼~)

  • 非计算机专业程序员补习基础,求推荐书籍。 at July 20, 2019

    前辈介绍的很具体,最后的总结也很有指导性。

    算法引论这本书之前自己了解过一些,觉得很有启发性,但是一问算法,大部分人都推荐算法第四版还有算法导论这两本,前辈的分析让我肯定了对算法引论这本书的选择。谢谢!

  • 非计算机专业程序员补习基础,求推荐书籍。 at July 19, 2019

    谢谢!

  • 非计算机专业程序员补习基础,求推荐书籍。 at July 19, 2019

    很全面,多谢!

  • 非计算机专业程序员补习基础,求推荐书籍。 at July 19, 2019

    非常感谢!

  • 用 Node.js 做一个项目的后端,后悔了 at July 18, 2019

    不太明白为啥 node 圈里 express 和 koa 这么受推崇,我记得当年学习后端的时候比来比去,觉得 hapi 最完善,所以毅然从 hapi 入手,现在想想,当时幸好没从 express 入手,要不然肯定学的七零八碎的。

  • 大家的个人博客是定制开发还是开源系统 at July 15, 2019

    为了写博客特意自己搭了一个,结果搭完了一篇还没写。。。用啥写真的不重要

    https://oatw.blog

  • 在画 Ruby 对象继承关系图时没想通 Kernel singleton_methods 存在的目的还有使用场景,求指点! at July 09, 2019

    我来回答自己的问题了,忘记加 false 参数了,所以在调用 self.singleton_class.private_instance_methods 的时候把 Object 上的方法也查找了。。。

    这样就好了

    p self.singleton_class.private_instance_methods(false).grep(/^global_method/)  # => []
    

    谢谢前辈的指点!

  • 在画 Ruby 对象继承关系图时没想通 Kernel singleton_methods 存在的目的还有使用场景,求指点! at July 09, 2019

    你是对的!顶级作用域下直接定义方法是在 Object 上定义私有实例方法 (相当于打开类定义实例方法),如果明确在 self 上定义方法,才是在 self 的单件类上定义方法(相当于自定义对象上定义方法的语法 def obj.some_method; end),是我的理解不准确。

    但是我在下面的代码里又出现了一个小疑问,还麻烦指点一下,谢谢了!

    def global_method
    end
    
    p self.singleton_methods.grep(/^global_method/)  # => []
    p Object.private_instance_methods.grep(/^global_method/)  # => [:global_method]
    
    def self.global_method2
    end
    
    p self.singleton_methods.grep(/^global_method/) # => [:global_method2]
    
    
    # 这里就有个疑问了,在self单件类上咋还有global_method这个方法呢?
    p self.singleton_class.private_instance_methods.grep(/^global_method/) # => [:global_method]
    
    p self.singleton_class  # => #<Class:#<Object:0x00000000003ba290>>
    
    
  • 关于 Rails 环境变量的一个头疼的问题 at July 09, 2019

    是不是用 credentials 好一点,省去配置各种环境变量的麻烦,如果不得不用环境变量的话,请人工忽略此回复。。。

  • 在画 Ruby 对象继承关系图时没想通 Kernel singleton_methods 存在的目的还有使用场景,求指点! at July 09, 2019

    不不不,程序员都挺聪明的,我只是多了点细心,嘿嘿~

  • 在画 Ruby 对象继承关系图时没想通 Kernel singleton_methods 存在的目的还有使用场景,求指点! at July 09, 2019

    官方文档我没怎么翻,我是先看的书,一本叫做《Ruby 元编程》的书,书里给到的继承图谱是一些比较核心部分的,我在网上也没搜索到全面的(可能有,我没发现),所以上面那个图是我在 irb 里根据各个对象打印出来的祖先链画出来的。。。

  • 在画 Ruby 对象继承关系图时没想通 Kernel singleton_methods 存在的目的还有使用场景,求指点! at July 09, 2019

    大部分人还是停留在应用的层面,可能也没必要太深入的研究,但是不能否认基础好的人对技术的领悟力更强。所以我觉得如果自己需要进阶,计算机基础还是需要恶补的。

  • 在画 Ruby 对象继承关系图时没想通 Kernel singleton_methods 存在的目的还有使用场景,求指点! at July 09, 2019

    因为我不是学计算机出身的,自己的计算机基础也比较薄弱,所以只是在用一些自己觉得比较好理解的笨方法来理解和记忆,兄弟你的阐述我大致看明白了,怎么说呢,就是有一个自己最熟悉的概念模型能帮助自己最好的理解就可以了。我的计算机基础还需加强。

  • 在画 Ruby 对象继承关系图时没想通 Kernel singleton_methods 存在的目的还有使用场景,求指点! at July 09, 2019

    兄弟,我对你的问题的理解有两种。

    1.顶级作用域下的单件方法

    Ruby 顶级作用域就是在 Object 内部,self 默认指向一个 Object 的特殊实例 -> main 对象,在调用方法的时候其实调用的是 main 对象的单件方法, updated_begin: 在调用方法的时候实际上生效的是 Object 的实例方法,但是如果在 self 上显示添加了单件方法,比如像这样 def self.method_name; end, 那么在调用这个单件方法时,就是在其单件类上查找到的 updated_end,查找方法的完整祖先链是:

    self.singleton_class.ancestors # => [#<Class:#<Object:0x00000000004ea2c8>>, Object, Kernel, BasicObject]
    

    (其实整个的原理跟在 class 关键字内部定义方法和打开单件类定义方法的原理是一样的,是我一开始没理解好,这里做了修改。)

    2.所有对象的单件方法

    Ruby 中一切皆对象,按照继承链图谱,要保证所有对象都有某个可被调用的单件方法的话,那么这个单件方法可定义的地方不只一处,可以在 BasicObject 中、Kernel 中、Object 中定义为实例方法。

    另外, 如果有 java 背景更强调类的概念,@spike76 兄弟给你的回答应该是更容易理解的。

    我在学习 Ruby 的过程中感觉类和对象的界限不是绝对的,类也是对象,对象也有可能是个类,如何区分应该是看它当前扮演的角色,或者说我更倾向于用单件类的概念来理解对象的方法,在 Ruby 中对象的方法是按照其单件类继承链来查找的。

    (ps:我是初学者,如果有前辈发现有描述错误的,请指正,免得我误导了别人,谢谢!)

  • 在画 Ruby 对象继承关系图时没想通 Kernel singleton_methods 存在的目的还有使用场景,求指点! at July 08, 2019

    很有道理咧!多谢兄台!

  • 在画 Ruby 对象继承关系图时没想通 Kernel singleton_methods 存在的目的还有使用场景,求指点! at July 08, 2019

    非常感谢!看到白板类三个字不由自主地激灵了一下子,有点开窍了。

  • 在画 Ruby 对象继承关系图时没想通 Kernel singleton_methods 存在的目的还有使用场景,求指点! at July 08, 2019

    前辈,我为了证明,写了一小段代码,从输出结果来看,我的推测应该是对的呀。

    module Kernel
      def print(arg)
        p 'instance method print of Kernel'
      end
      class << self
        def print(arg)
          p 'singleton method print of Kernel'
        end
      end
    end
    
    class Foo
      print "" # => "instance method print of Kernel"
    end
    

    虽然 Kernel 的 instance method print 和 singleton method print 都是同一个 print 方法对象,但是我还是没能通过你的例子理解 Kernel 中 singleton methods 中和 instance methods 中重名方法的使用场景。我是不是有点笨。。。😟

  • 在画 Ruby 对象继承关系图时没想通 Kernel singleton_methods 存在的目的还有使用场景,求指点! at July 08, 2019

    在定义 Foo 这个 class 调用 print 的时候,self 指向 Foo,Foo 相当于一个实例,那这个 print 应该是查找它的类中的实例方法 print,祖先链走的应该是#MyClass(#Foo)这条,会在 Kernel 中找到 print 方法,但 Kernel 中找到的这个 print 是 Kernel 的 instance method 不是 singleton method 中的 print 呀。我的理解对不对呀。

  • bootstrape-sass 如何快速开发 at July 08, 2019

    大兄弟别客气,每个人都有自己擅长和不擅长的领域,我也是个 Rails 小白人,Ruby China 的绝大多数前辈都很友好,祝你学的开心,找到乐趣。

  • Prev
  • 1
  • 2
  • 3
  • 4
  • 5
  • Next
关于 / RubyConf / Ruby 镜像 / RubyGems 镜像 / 活跃会员 / 组织 / API / 贡献者
由众多爱好者共同维护的 Ruby 中文社区,本站使用 Homeland 构建,并采用 Docker 部署。
服务器由 赞助 CDN 由 赞助
iOS 客户端 / Android 客户端 简体中文 / English