56.3.5. Connascence of Meaning

<input type="checkbox" value="2" />
<input type="checkbox" value="1" />

if params[:med][id] == "1"
    mark_given(id)
elsif params[:med][id] == "2"
    mark_not_given(id)
end

Takováto situace je velmi nešťastná, protože nám uniká souvislost. Kód je křehký, citlivý na změnu hodnoty. Změna hodnoty není na první pohled vidět. Takovou situaci řešíme například použitím konstant. Tedy CoM→CoN

MED_GIVEN = "1"
MED_NOT_GIVEN = "2"

Kód pak vypadá mnohem čitelněji.

<input type="checkbox" value="<%= MED_GIVEN %>" />
<input type="checkbox" value="<%= MED_NOT_GIVEN %>" />

if params[:med][id] == MED_GIVEN
    mark_given(id)
elsif params[:med][id] == MED_NOT_GIVEN
    mark_not_given(id)
end

Uvedený příklad je příklad pravidla: „Do not use magic numbers“.

Licence Creative Commons
Tento dokument Ruby, jehož autorem je Radek Hnilica, podléhá licenci Creative Commons Uveďte autora-Nevyužívejte dílo komerčně-Zachovejte licenci 3.0 Česká republika .