class << self vs self.method with Ruby: what's better?

前端 未结 6 611
囚心锁ツ
囚心锁ツ 2020-11-30 21:33

This Ruby Style Guide tells that is better using self.method_name instead of class method_name. But Why?

class TestClass
  # bad
           


        
6条回答
  •  栀梦
    栀梦 (楼主)
    2020-11-30 21:44

    class << self is good at keeping all of your class methods in the same block. If methods are being added in def self.method form then there's no guarantee (other than convention and wishful thinking) that there won't be an extra class method tucked away later in the file.

    def self.method is good at explicitly stating that a method is a class method, whereas with class << self you have to go and find the container yourself.

    Which of these is more important to you is a subjective decision, and also depends on things like how many other people are working on the code and what their preferences are.

提交回复
热议问题