GoConqr hat ein neues Design! Sag uns, wie es dir gefällt.

Mindmap

Good Software Development Practices

Patcharapong Aphiwetsa Englisch

Inhalt der Mindmap

Good Software Development Practices

  1. Refactoring

    • Behavior Preserving
      • Make sure code works after each change
    • Methods
      • Rename Variables, Classes, and Atrributes
      • Collapse Hiearchy
        • Merge too similar superclass and subclass
      • Extract Methods
        • Create a method from cohesive large fragment in large method
      • Consdolidate Conditional Expression
        • Combine and Extract long Conditionals with same results
      • Decompose Conditionals
        • Create methods from complex conditionals
      • Extract Class
        • Extract class that is doing work of 2 classes
    • Benefits
      • Readability
      • Understandability
      • Maintainability
      • Rapid and easy addition of new features
    • Tools
      • Android Studio
        • Refactor Menu
      • Resharper(.NET)
      • Spring Tools Suite
      • Jetbrains Rider
      • SonarQube
        • Detect code bugs and smells automatically before peer review
    • When to Refactor
      • Add features and code not convenient structure for that
      • Before code review
      • To fix bugs
      • Code Smells
    • When not to refactor
      • Code broken
      • Deadline approaching
  2. Code Smells

    • Factors
      • Technical Debt
        • Rushing
        • Avoiding good practices
    • Taxonomy
      • Bloaters
        • Long Methods
        • Large Classes
        • Long Parameter Lists
        • Data Clumps
      • Object Oriented Abusers
        • Switch statements
        • Refused Bequest
      • Change Preventers
        • Divergent Change
        • Shotgun Surgery
      • Dispensables
        • Duplicate Codes
        • Data class
        • Lazy class
      • Couplers
        • Feature envy
        • Inappropriate envy
        • Middle man
  3. Software Testing

    • Benefits
      • $607 billion in bugs in 2020
      • Some software bugs can be life threatening to users
    • Approaches to Verification
      • Dynamic Verification
        • Test in runtime environment
        • Unit Integration
        • Integration Testing
        • System Testing
        • Acceptance Testing
        • Regression Testing
      • Static Verification
        • Check code without running
        • Does not require runtime and compiled code
        • Perform early on in development process
      • Inspection/Review/Walkthrough
        • Inspection: Formal checklist and moderator
        • Review: Less formal, peers going over the code
        • Walkthrough: Read over your code out loud.
      • Formal Verification
        • Mathematical Methods to prove your code has no errors/bugs
        • Can be time consuming and expensive
    • Testing Stages
      • Developer Testing
      • Alpha Testing
      • Beta Testing
      • Product Release
    • Testing Techniques
      • Opaque Box Testing
      • Clear Box Testing
    • TDD Cycle
      • Benefits
        • Impose developer discipline
        • Incremental specification
        • Avoid regression errors
        • Allow changing with confidence
      • Write code test, then code, then refactor
      • Cycle of 3 steps listed in some sequence

Informationen

Beschreibung
Mindmap am Good Software Development Practices, erstellt von Patcharapong Aphiwetsa am 30/07/2024.
Aufrufe
0
Bewertung

Feedback

Worum geht es?

Wie gefällt dir das neue Design?

Dein Eindruck