Mindmap
First Task
Inhalt der Mindmap
First Task
Test Driven Development
- Cost
- Good Testing
- Expensive but worth
- Useful over time
- Reduces chance of failure
- Useful over time
- Expensive but worth
- Bad Testing
- Extremely expensive
- Not sustainable
- Increased chance of failure
- Not sustainable
- Extremely expensive
- Impact
- Good Testing
- Testing
- Verification
- Dynamic
- Regular Test Motions
- Go Step By Step
- Run with different inputs
- New Trial every time
- Execute in runtime
- Check Behaviour
- Execute in runtime
- Make the System Fail
- New Trial every time
- Run with different inputs
- Work until done
- Run with different implement
- Many Levels
- Unit Testing Integration Testing System Testing Acceptance Testing Regression Testing
- New Items every time
- Many Levels
- Run with different implement
- Individual work for immediate use
- Go Step By Step
- Regular Test Motions
- Static
- Incremented Test Motions
- Syntax Check
- Fix as errors pop up
- Method Check
- Examine code without execution
- Tools analyze for potential issues
- Performed early in dev process
- No runtime or compilation
- Performed early in dev process
- Tools analyze for potential issues
- Examine code without execution
- Syntax Check
- Individual work for long term use
- Incremented Test Motions
- Review
- Code is mostly done
- Discussion used to test
- Group used to Manual
- Test for bugs
- Inspection: Formal Checklist + Moderator
- Reviews: Less Formal + Peers
- Walkthroughs: Informal + Author
- Discussion used to test
- Code is mostly done
- Formalization
- Use hard proofs
- Software and Math Heavy
- Complex and Difficult
- Used to guarantee
- Overkill
- Time Consuming and Expensive
- Used to guarantee
- Complex and Difficult
- Good in Practice
- Software and Math Heavy
- Use hard proofs
- Dynamic
- Validation
- Inside Organization
- Developer Testing
- Alpha Testing
- Developer Testing
- Outside Organization
- Beta Testing
- Product Release
- Beta Testing
- Inside Organization
- Verification
- Test is written before the class
- Write Test Code Write Functional Code Refactor
- Red
- Fail
- Refactor
- Improve
- Green
- Work
- Red
- Discipline Specification Reduce Error Easy Change
- Write Test Code Write Functional Code Refactor
- Cost
Code Smells
- A quick spot that indicates problems in code
- Found during refactor or examinations
- Comes from rushed design and disregard for tech debt
- Right Way: Good Practice
- Fast Way: Hacked Together
- Process of improving code into clean and simple design
- Bloaters
- Something that has grown too large
- Smells in Group: Long Method Large Class Long Param Data Clumps
- Solution: Extract Method Extract Class Replace Param Replace Object
- Something that has grown too large
- Change Preventers
- Smells that hinder changing or further development
- Smells in group: Divergent Change Shotgun Surgery
- Solution: Extract Class Extract Method Move Methods
- Smells that hinder changing or further development
- Couplers
- Measure of how close connected two routines or modules are
- Smells In Group: Feature envy Inappropriate Intimacy Middle Man
- Solution: Move Method Bidirectional Associate Inline Class
- Measure of how close connected two routines or modules are
- Dispensables
- Represents something unnecessary that should be removed from source code
- Solution: Inline Class Move Method Extract Method Encapsulation Extract Method
- Smells In Group: Lazy Class Data Class Duplicated Code
- Represents something unnecessary that should be removed from source code
- Object Orientation Abusers
- Cases where solution does not fully exploit OOD
- Solution: Use Polymorphism Extract Method Push Method Implement Interface
- Smells in Group: Switch Statements Refused Bequest
- Cases where solution does not fully exploit OOD
- Bloaters
- A quick spot that indicates problems in code
Refactoring
- Small techniques to improve program design
- Goal is to keep program maintainable
- Behavior Preserving
- Goal is to keep program maintainable
- Requirements Change
- Agile
- Makes design more Flexible
- Do not refactor when code is broken
- Do not refactor when deadline approaches
- Do not refactor when uneeded
- Makes design more Flexible
- Design Improvements
- Copy Paste for new Method
- Agile
- Types of Refactoring
- Method Rename Collapse Hierarchy Consolidate Conditional Decompose Conditional Extract Class Extract Method
- Modern IDE's can do this
- Extract Method
- Large Code reduced to method + call to method
- Consolidate Conditional
- If there are conditionals with same result, combine and extract
- Decompose Conditional
- If a conditional is complex, extract method, give name, modify then/else
- Extract Class
- If a class is doing work of 2 classes, separate
- Method Rename Collapse Hierarchy Consolidate Conditional Decompose Conditional Extract Class Extract Method
- Tools
- Refactor when approving other developers PR
- Based on many different rules for different languages covering code smells, test coverage, code security
- Automated tools are important due to lack of time to make changes manually
- Use when you have to add a feature
- Use during code review
- Use when fixing a bug
- Based on many different rules for different languages covering code smells, test coverage, code security
- Refactor when approving other developers PR
- Small techniques to improve program design
Informationen
- Beschreibung
- Computer Science Mindmap am First Task, erstellt von Aryan Bhatia am 22/07/2024.
- Erstellt von
- Aryan Bhatia
- Aufrufe
- 0
- Bewertung