見出し画像

関数プロパティの途中計算を残すべきか? #Notionコラム

#Notionコラム は、Notionの使い方を検討・提案するマガジンです。

今回は、「関数プロパティの途中計算を残すべきか?」というテーマで書いていきます。

#Notion #関数プロパティ #数式 #日付プロパティ #year関数

途中計算を残す

途中計算を残す理由

関数プロパティの数式が長くなってくると、正しい構文で入力することが難しくなります。
それによって、エラーを出したり、気づけないミスを残したりしやすくなります。
また、後日編集する際にその数式の意味を解読することも大変になり、時間の浪費に繋がってしまうかもしれません。

それらを防ぐための一つの方法として、数式を複数の関数プロパティに分割する方法があります。
つまり、途中計算を残す……ということです。

途中計算を残す例

以下のケースでは、「日付」という名前の日付プロパティと、「is 閏年」という名前の関数プロパティがあり、「is 閏年」では「日付」の西暦が閏年か否かを表示しています。

関数プロパティ「is 閏年」では、「日付」の西暦年が閏年か否かを出力している
year(prop("日付")) % 4 == 0 and (year(prop("日付")) % 400 == 0 or not (year(prop("日付")) % 100 == 0))

見て分かる通り、数式の中に「year(prop("日付"))」が3回登場しています。

そこで、「西暦」という関数プロパティを追加し、year関数を分割します。

「year(prop("日付"))」を「prop("西暦")」に変更
prop("西暦") % 4 == 0 and (prop("西暦") % 400 == 0 or not (prop("西暦") % 100 == 0))

「year(prop("日付"))」と比べて「prop("西暦")」は、丸括弧が1ペア減ります。
この例では「year(prop("日付"))」が3回登場していたので、数式全体で3ペア減りました。

丸括弧が1つ減るだけでも、数式の編集のしやすさは段違いです。

途中計算を残さない例

関数プロパティの分割は、やろうと思えば、いくらでもできます。

例えば、「prop("西暦") % 4」等を「prop("西暦 mod 4")」のように分割することもできます。

もっと分割したいんだ!!!!!!
prop("西暦 mod 4") == 0 and (prop("西暦 mod 400") == 0 or not (prop("西暦 mod 100") == 0))

しかし、「prop("西暦") % 4」と「prop("西暦 mod 4")」を見比べて、どちらの方が数式の意味を理解しやすいかといえば、大差はないように思えます。

また、丸括弧の数も変わりませんし、入力のしやすさも大差ないでしょう。
「prop("西暦 mod 4")」よりも、短いプロパティ名にすれば入力が簡単になりますが、今度は「prop("西暦") % 4」よりも数式の意味を理解しづらくなってしまうと思います。

途中計算を残すべきか?

以上より、途中計算を残すべきかは、「数式の意味の理解しやすさ」と「正しい構文で入力のしやすいか」の2つの観点から判断すべきだと考えています。

一方が改善される代わりに、もう一方が改悪されるのであれば、分割する必要はないかもしれません。
双方が改善される場合は、余程短いシンプルな数式でなければ、分割した方が良いと思います。

特に数式の中の丸括弧を減らせる場合は、数式の意味も理解しやすくなり、正しい構文で入力しやすくもなるので、分割した方が良いと判断しやすいと思います。

いいなと思ったら応援しよう!