データの意味をコードに載せる
面積計算で幅と高さを混在させるのなら問題はないのですが、長方形を画面に描画したいとなると、問題になるのです! タプルの添え字0が幅で、添え字1が高さであることを肝に銘じておかなければなりません。 他人がこのコードをいじることになったら、このことを割り出し、同様に肝に銘じなければならないでしょう。 容易く、このことを忘れたり、これらの値を混ぜこぜにしたりしてエラーを発生させてしまうでしょう。 データの意味をコードに載せていないからです。
これができない人が多い
データの意味が伝わらないコードを書いて、それを延々と他人に解析させる
「コードを解析する」ことを「コードを読む」と言ってはいけない
code:rust
fn area(dimensions: (u32, u32)) -> u32 {
dimensions.0 * dimensions.1 // 解析しないと分からないコード
}
fn area(rectangle: &Rectangle) -> u32 {
rectangle.width * rectangle.height // 読めるコード
}