「問合せている」のは手段で、目的として得たいものは別ですよね。名前は実装や手段ではなく、意味や意図、結果、目的に対して付けます。
実装じゃなくて意味に付けようって話はコードコンプリートに書いていて、たぶんリーダブルコードにも書いていて、超基本的なんですが最重要なので、すべての名前で今自分はなにに対して名前を付けたのかを自問自答する癖をつけるのをおすすめです。
意図を表現した名前をつける (Use intention revealing names)
# frozen_string_literal: true | |
require_relative "ractor_stream/version" | |
# [1,2,3,4].parallel.filter {|n| n.even?}.map {|n| n * 2}.each {|item| puts item} | |
class Enumerator | |
class RactorParallelStream | |
Consumer = Struct.new(:message, :processor, :args, :keyword_args) |
今後何度も書くことになるだろうから repo へコミットする .gitignore の使い方について書いておく。まあ、ゆるーく使って余分に ignore 書きまくってもいいんですが覚えておくと、はかどります。なお、man に書いているというつっこみを受けた。
以下の方針で運用すると扱いやすくなります。
.gitignore
ファイルへはプロジェクト固有でバージョン管理から外したいものを書く
~/.config/git/ignore
def fold(init, list, &block) | |
case list | |
in [] | |
init | |
in [x, *xs] | |
fold(block.call(init, x), xs, &block) | |
else | |
raise ArgumentError.new("Array is expected but #{list.inspect} is given") | |
end | |
end |
Ruby のコードを読んでいると
class Hoge
class << self
def hello
puts 'hello'
end
end
end