This is the source code and slides for the Gilded Rose Refactoring Kata talk.
- Gilded Rose Refactoring Kata — https://github.com/emilybache/GildedRose-Refactoring-Kata
- Limited WIP plugin (includes "Commit Without Dialog" action) — https://github.com/dkandalov/limited-wip (see also YOW! 2011 Joshua Kerievsky - The Limited Red Society)
- Quick Fix plugin — https://github.com/dkandalov/quick-fix
- IJKL shortcuts plugin — https://github.com/dkandalov/ijkl-shortcuts-plugin
- Refactoring book — https://martinfowler.com/books/refactoring.html
- Software Design: Tidy First? — https://tidyfirst.substack.com
- Duncan McGregor on YouTube — https://www.youtube.com/@RefactoringDuncan
- Duncan McGregor: How to Refactor Using the Open-Closed Principle — https://www.youtube.com/watch?v=sUhGbdnNil4
- Dmitry on YouTube — https://www.youtube.com/@DmitryKandalov
- Dmitry's blog — https://dmitrykandalov.com
- Replace 'until' with '..' operator
- Put parameters on one/separate lines
- Convert 'String' concatenation to template
- Convert to expression body
- Extract function
- Introduce parameter
- Convert parameter to receiver
- Replace 'for' with a 'forEach' function call
- Convert lambda to reference
- Replace with '+='
- Remove braces from 'if' statement
- Merge 'if's
- Invert 'if' condition
- Remove braces from 'else' statement
- Flip '&&'
- Split 'if' into two
- Replace 'if' with 'when'
- Remove braces from all 'when' entries
- Lift assignment out of 'if'
- Split 'if' into two
- Simplify/delete expression
- Replace '+=' with ordinary assignment
- Replace 'when' with 'if'
- Lift function call out of 'if'
- Convert function to property
- Inline function
- Lift return out of 'if'
Recorded using Activity Tracker plugin.
Alt I
– UpAlt J
– Previous wordAlt K
– DownAlt L
– Next wordAlt U
– Line startAlt O
– Line endAlt N
– LeftAlt M
– Right
Alt Shift I
– Up with selectionAlt Shift J
– Previous word with selectionAlt Shift K
– Down with selectionAlt Shift L
– Next word with selectionAlt Shift U
– Line start with selectionAlt Shift O
– Line end with selectionAlt Shift N
– Left with selectionAlt Shift M
– Right with selection
Alt ,
– Previous methodAlt .
– Next methodAlt F
– Page downAlt W
– Page upAlt B
– BackAlt Shift B
– ForwardAlt H
– Jump to source
Alt A
– Highlight usages in fileAlt S
– Show usagesAlt E
– Expand selectionAlt /
– Cycle expand wordAlt ;
– DeleteAlt R
– RenameAlt Shift 8
– Put parameters on one lineAlt Shift 9
– Put parameters on separate lines
Cmd -
– CollapseCmd =
– ExpandCmd Alt -
– Collapse recursivelyCmd Alt =
– Expand recursivelyCmd Shift -
– Collapse allCmd Shift =
– Expand all
Cmd Alt V
– Introduce variableCmd Alt P
– Introduce parameterCmd Alt M
– Extract methodCmd Alt N
– InlineCmd Alt L
– Reformat codeCtrl Shift J
– Join lines
Cmd M
– Scroll to centerCmd Alt Shift I
– Move statement upCmd Alt Shift K
– Move statement downCmd Shift 8
– Column selection modeCmd Shift A
– Find actionCmd K
– CommitCmd S
– Limited WIP | Commit without dialog
Ctrl Tab
– SwitcherCtrl G
– Add selection for next occurrenceCtrl B
– Git | BranchesCtrl Cmd H
– Notifications | Close firstCtrl V
– VCS operations popupCtrl Shift P
– Show type infoShift Enter
– Start new lineShift Escape
– Hide active tool window
Shift F10
– RunAlt Shift F10
– Run... (popup)