title: Is there a convention for memoization in a method call?
body: <p>I want to avoid reevaluation of a value in method call. Untill now, I was doing this:</p>
  
  <pre><code>def some_method
    @some_method ||= begin
      # lot's of code
    end
  end
  </code></pre>
  
  <p>But it ends up quite ugly. In some code, I saw something like the following:</p>
  
  <pre><code>def some_method
    @some_method ||= some_method!
  end
  
  private
  
  def some_method!
    # lot's of code
  end
  </code></pre>
  
  <p>I don't like the bang (<code>!</code>) at the end, so I came up with this:</p>
  
  <pre><code>def some_method
    @some_method ||= _some_method
  end
  
  private
  
  def _some_method
    # lot's of code
  end
  </code></pre>
  
  <ul>
  <li>Is prepending with an underscore a good convention?</li>
  <li>Is there some other convention for memoized/non-memoized pairs of methods?</li>
  <li>Is there some convention to memoize multi-line methods?</li>
  </ul>