Introduction
                                    
                                        Refactoring for better code
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        What you need to know
                                            
                                                ()
                                            
                                            
                                    
                             
                            
                                1. Refactoring with New Code
                                    
                                        What is refactoring?
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Test-driven development (TDD)
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Code kata
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Setting up the new code kata
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Setting up the TDD environment
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Refactoring: Rename Variable
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Micro-refactoring
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Refactoring: Inline Code
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Code kata: Continue solving the problem
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Refactoring: Extract Method
                                            
                                                ()
                                            
                                            
                                    
                             
                            
                                2. Stabilizing Legacy Code
                                    
                                        Technical debt: Why it’s a problem
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Setting up the legacy code kata
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Methodology
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Start writing pin-down tests
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Complete writing pin-down tests
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Refactoring pin-down tests
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Refactoring: Change Signature
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Code coverage
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Branch coverage
                                            
                                                ()
                                            
                                            
                                    
                             
                            
                                3. Refactoring Legacy Code
                                    
                                        Refactoring: Extract Constant strings
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Refactoring: Extract Constant numbers
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Refactoring: Extract Variable/Extract Method
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Refactoring: Simplify Arithmetic
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Refactoring: Simplify Booleans
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Refactoring: Group-Related Logic
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Refactoring: Final steps
                                            
                                                ()
                                            
                                            
                                    
                                    
                                        Add new behavior to refactored code
                                            
                                                ()
                                            
                                            
                                    
                             
                            
                     
                        
                                
                                    Ex_Files_Agile_Software_Dev_Refactor.zip
                                    
                                        (1.0 MB)