凍結タスクリスト(Frozen Task-List)
凍結タスクリスト という考え方があります。
凍結について
凍結(Freeze) とは、指定したタスクリストを Read Only なリスト にすることです。
凍結したタスクリストは 凍結タスクリスト(Frozen Task-List) と呼ばれ、変更することはできません。タスクの追加削除はもちろん、状態の変更もできません。ただし実際は単に「このタスクリストは変更できない」というルールを課して運用するだけです。
凍結タスクリストを変更できるようにするには、 凍結の解除(Unfreeze) を行います。これについても、実際は単に「このタスクリストは変更できない」というルールをやめるだけです。
凍結タスクリストの使い道
(1) チェックリスト
凍結タスクリストの最もメジャーな使い方はチェックリストです。
ただし、凍結されていると状態の更新も行えませんので、チェックリストにチェックを付けていくような運用はできません。チェックを付けるとは、いうなれば完了状態を完了にする、という状態更新ですから。
ここでいうチェックリストは、あくまで「こんなチェック項目がある」ということを確認するためのものです。
(2) テンプレート
チェックリストはいうなればタスクリストとは別に存在するリストであり、タスクリストそのものを書き換えることはありません。
一方で、書き換えるような使い方もできます。それが テンプレート です。行動としては、凍結タスクリストの内容をタスクリストに丸々コピペします。
この行為は言い換えるなら、凍結タスクリストという名のテンプレートをタスクリストに挿入している、とも言えます。
FAQ
Q: クローズドリストとは何が違う?
Ans: クローズドリストは部分的な凍結にすぎません
クローズドリストはタスクの追加や削除のみを変更不可能にした、いわば部分的な凍結です。状態変更は行なえますので、たとえばクローズドリストに並べたタスクは完了状態にすることができます。
一方、凍結タスクリストは、状態変更さえも行えません。使いたいなら別のリストにコピペするか、あるいは凍結解除をするしかありません。
Q: Read Only なリストという概念を持ち出すことの意味は?
Ans: リストの役割分担です。
「わざわざ Read Only なリストという概念を持ち込まなくても、チェックリストやテンプレートは実現できるよ」と思われたかもしれません。たしかにそのとおりです。
凍結タスクリストの意義は、「このタスクリストは変更できませんよ」という旨を 明示的に示している という点です。また、タスク管理ユーザーに対しても「変更は行わず、 Read Only(読み取り専用)として使う」という選択肢および発想を与えます。
言うなれば リストの役割分担 とも言えましょう。
リストというものは、自由に編集できる性質上、多様な機能や用途を持ってしまいがちです。しかし、多彩であればあるほど混乱や不統一のもととなります。これを防ぐために Read Only という性質を導入し、意識的に多様さを抑えていくのです。
このような 制約の追加による整然の確保 は、特にプログラミングにおいてしばしば用いられるアイデアです。