If a collection of tokens serves as a list, consider making it look like a list.
As an example I'll use Ruby's class method attr_accessor
, which accepts any number of arguments.
Unstacked:
attr_accessor :arity, :name, :original_name, :owner, :parameters, :receiver, :source_location, :super_method
Stacked:
attr_accessor \
:arity,
:name,
:original_name,
:owner,
:parameters,
:receiver,
:source_location,
:super_method
Much more readable, no?
Note: For a user-defined method that accept many arguments, stacking may not be the best option. Consider instead whether such a method should accept an object.
Nevertheless:
def initialize(
name:,
address:,
phone:,
date_of_birth:,
debit_card_number:,
debit_card_pin:,
)
end
Another stack-worthy notation:
%w/
apple
banana
orange
peach
persimmon
pineapple
scuppernong
tomato
/
And of course pretty much everyone already does this:
{
:cabbages => 0,
:cucumbers => 2,
:peas => 200,
:potatoes => 4,
:radishes => 8,
:sweet_potatoes => 0,
}
Others? In Ruby? Or in another language?
Top comments (3)
Oh yeah, stacking is great! I added it to my companies style guide for Python :). An useful tip to point out, use trailing commas! This way your Git diffs only highlight the lines you actually changed.
Thanks, Dylan.
But be careful not to put a comma on the last line of a stack of
attr_accessor
method names. Causes major problems for the code that follows.I’ll keep that in mind if I ever write in Ruby. It keeps floating around my list of languages to try but it seems to solve mostly the same problems as Python so I haven’t found a good reason to play with it yet.