タスクは所有者と期限を持つことで”ToDo”となる。
タスクは”誰がそれを所有するのか(owned_by)”という情報と、”いつまでにそれを行うのか(due_date, due_time)”という情報を持つことで、ToDoタスクとなる。
module TaskInterface
class Core
attr_accessor :action, :target
def initialize(action:, target:)
@action = action
@target = target
end
end
module Owner
attr_accessor :owned_by
def initialize(owned_by:)
@owned_by = owned_by
end
end
end
class Task < TaskInterface::Core
include TaskInterface::Owner
def initialize(action:, target:, owned_by: "私が")
@action = action
@target = target
@owned_by = owned_by
end
end
class ToDo
attr_accessor :task, :due_date, :due_time
def initialize(task:, due_date: "今日の", due_time: "23:59:59までに")
@task = task
@due_date = due_date
@due_time = due_time
end
end
myTask = Task.new(action: "する", target: "家を出る支度を")
myToDo = ToDo.new(task: myTask, due_time: "40秒後までに")
p "#{myToDo.due_date} #{myToDo.due_time} #{myToDo.task.owned_by} #{myToDo.task.target} #{myToDo.task.action}"
所感
@rashita2 さんの著書「タスク管理の用語集」によると、”<Todo>とは、「すべきこと」です。”とあります。
これに対する私の解釈ですが、タスクとToDo の違いは”期限(due_date, due_time)”と”行動主体(owned_by)”の有無だと考えています。
「家を出る支度を済ませる」だとタスクですが、「(40秒後までに)(私は)家を出る支度を済ませる」だとToDo なのです。
明確な”期限(いつまでに)”と”行動主体(誰が)”という情報の付与はタスクにスコープを与え、ToDo たらしめます。
ただ、ToDo が要素としてTask を持つ(has a)べきなのか、Task の一形態としてToDoTask がある(is a)べきなのかは悩ましいところです。*01まあ、これはどの様なスタンスでTask とToDo を扱うかで決まりそうですが。
脚注
| ↩01 | まあ、これはどの様なスタンスでTask とToDo を扱うかで決まりそうですが。 |
|---|