[ライフハックプログラム考] ToDo はタスクに所有者と期限を加えたものである

投稿者: | 2017/07/19

タスクは所有者と期限を持つことで”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 を扱うかで決まりそうですが。

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください