Classi & Moduli
Preferire i moduli alle classi con i soli metodi della classe.
Le classi dovrebbero essere usate solo quando ha senso creare istanze da esse. Preferire
extend selfamodule_function.
# bad
module SomeModule
module_function
def some_method
end
def some_other_method
end
end
# good
module SomeModule
extend self
def some_method
end
def some_other_method
end
endQuando si definiscono i metodi di una classe, utilizzare il blocco
class << selfpiuttosto chedef self. e raggrupparli in un unico blocco.
Rispettare il principio di sostituzione di Liskov quando si progettano le gerarchie di classi.
Usare
attr_accessor,attr_readereattr_writerper definire accessori e mutatori banali.
Preferire
attr_readereattr_accessoradattr.Evitare le variabili di classe (
@@).Preferire
alias_methodaalias.Indentare i metodi
public,protectedeprivatetanto quanto le definizioni dei metodi a cui si applicano. Lasciare una riga vuota sopra il modificatore di visibilità e una riga vuota sotto di esso.
Last updated
Was this helpful?