How Hard Can It Be? - A refactoring battle story

download How Hard Can It Be? - A refactoring battle story

of 89

Transcript of How Hard Can It Be? - A refactoring battle story

  • 8/3/2019 How Hard Can It Be? - A refactoring battle story

    1/89

    HowHARDCan ItBE?

    A refactoring battle story.@jonleighton

  • 8/3/2019 How Hard Can It Be? - A refactoring battle story

    2/89

    has_many :tasks,

    :through => :projects

    class Account

  • 8/3/2019 How Hard Can It Be? - A refactoring battle story

    3/89

    has_many :tasks,

    :through => :projects

    has_many :comments,:through => :tasks

    class Account

  • 8/3/2019 How Hard Can It Be? - A refactoring battle story

    4/89

    has_many :tasks,

    :through => :projects

    has_many :comments,:through => :tasks

    class Account

  • 8/3/2019 How Hard Can It Be? - A refactoring battle story

    5/89

  • 8/3/2019 How Hard Can It Be? - A refactoring battle story

    6/89

  • 8/3/2019 How Hard Can It Be? - A refactoring battle story

    7/89

    Task

    comments

  • 8/3/2019 How Hard Can It Be? - A refactoring battle story

    8/89

    ProjectTask

    comments tasks

  • 8/3/2019 How Hard Can It Be? - A refactoring battle story

    9/89

    AccountProjectTask

    comments tasks projects

  • 8/3/2019 How Hard Can It Be? - A refactoring battle story

    10/89

    AccountProjectTask

    comments tasks projects

    tasks

  • 8/3/2019 How Hard Can It Be? - A refactoring battle story

    11/89

    AccountProjectTask

    comments tasks projects

    tasks

  • 8/3/2019 How Hard Can It Be? - A refactoring battle story

    12/89

    AccountProjectTask

    comments tasks

    comments

    projects

    tasks

  • 8/3/2019 How Hard Can It Be? - A refactoring battle story

    13/89

    AccountProjectTask

    comments tasks

    comments

    projects

    tasks

  • 8/3/2019 How Hard Can It Be? - A refactoring battle story

    14/89

    AccountProjectTask

    comments tasks projects

  • 8/3/2019 How Hard Can It Be? - A refactoring battle story

    15/89

    AccountProjectTask

    comments tasks

    comments

    projects

  • 8/3/2019 How Hard Can It Be? - A refactoring battle story

    16/89

    AccountProjectTask

    comments tasks

    comments

    projects

  • 8/3/2019 How Hard Can It Be? - A refactoring battle story

    17/89

    AccountProjectTask

    comments tasks

    comments

    projects

    comments

  • 8/3/2019 How Hard Can It Be? - A refactoring battle story

    18/89

    AccountProjectTask

    comments tasks

    comments

    projects

    comments

  • 8/3/2019 How Hard Can It Be? - A refactoring battle story

    19/89

    comments tasks

    comments

    projects

    comments

    comments tasks

    comments

    projects

    tasks

  • 8/3/2019 How Hard Can It Be? - A refactoring battle story

    20/89

  • 8/3/2019 How Hard Can It Be? - A refactoring battle story

    21/89

    SELECT * FROM comments

  • 8/3/2019 How Hard Can It Be? - A refactoring battle story

    22/89

    SELECT * FROM comments

    INNER JOIN tasks ON ...

  • 8/3/2019 How Hard Can It Be? - A refactoring battle story

    23/89

    SELECT * FROM comments

    INNER JOIN projects ON ...

    INNER JOIN tasks ON ...

  • 8/3/2019 How Hard Can It Be? - A refactoring battle story

    24/89

    SELECT * FROM comments

    WHERE

    projects.account_id = 1

    INNER JOIN projects ON ...

    INNER JOIN tasks ON ...

  • 8/3/2019 How Hard Can It Be? - A refactoring battle story

    25/89

  • 8/3/2019 How Hard Can It Be? - A refactoring battle story

    26/89

  • 8/3/2019 How Hard Can It Be? - A refactoring battle story

    27/89

  • 8/3/2019 How Hard Can It Be? - A refactoring battle story

    28/89

  • 8/3/2019 How Hard Can It Be? - A refactoring battle story

    29/89

  • 8/3/2019 How Hard Can It Be? - A refactoring battle story

    30/89

  • 8/3/2019 How Hard Can It Be? - A refactoring battle story

    31/89

  • 8/3/2019 How Hard Can It Be? - A refactoring battle story

    32/89

  • 8/3/2019 How Hard Can It Be? - A refactoring battle story

    33/89

  • 8/3/2019 How Hard Can It Be? - A refactoring battle story

    34/89

  • 8/3/2019 How Hard Can It Be? - A refactoring battle story

    35/89

  • 8/3/2019 How Hard Can It Be? - A refactoring battle story

    36/89

    classAssociationReflection

  • 8/3/2019 How Hard Can It Be? - A refactoring battle story

    37/89

    classAssociationReflection

    def chain

    if through?

    source_reflection.chain +

    through_reflection.chain

    else

    [self]

    end

    end

  • 8/3/2019 How Hard Can It Be? - A refactoring battle story

    38/89

    class ThroughReflection