Skip to content
#Software

Typical design errors (Bug Patterns In Java)

#Software #SoftwareArchitecture #Patterns #Design #Architecture #SoftwareDevelopment #Engineering

This book is from the beginning of my career. She came out in English. 2002 year, and already in 2003 In the year Peter Publishing House applied creativity to translation and "Bug Patterns in Java", which could be translated as bug patterns in Java turned into typical design errors:) But despite the creativity in the title, the book seemed useful and voluminous. It's everything. 23 piece

  1. Agile Methods in a Chaotic Environment - here we talked about flexible approaches, the concept of pattern in general and bug patterns specifically, and why to study them
  2. Bugs, Specifications, and Implementations An explanation of how to understand what a bug is and what a feature is. After reading it, it becomes easy to understand the phrase "This is not a bug, this is a feature":)
  3. Debugging and the Development Process How programs are debugged, about pair programming, about sharing code and writing tests for “anything that can break”
  4. Debugging and the Testing Process How to write test programs, static type control, correct abstractions and encapsulation, good interfaces
  5. The Scientific Method of Debugging Discussion of the scientific approach to debugging - observation, hypothesizing, testing hypotheses with experiments, repeating these steps in a cycle until we fix the problem
  6. About the Bug Patterns - a story about the importance of bug patterns, an explanation of what such an anti-pattern looks like and a large guide to debugging programs
  7. The Rogue Tile It is an anti-pattern fake shingles in which the program behaves as if the bug has not been fixed. The reason may be that the problem logic is replicated inside the application and needs to be taken to a common place and fixed once there:)
  8. Null Pointers Everywhere! Standard history with Java:)
  9. The Dangling Composite dangling component, which is characteristic of recursively defined data types, where some base cases are not allocated classes, but null pointers are used.
  10. The Null Flag When the program throws a null pointer exception instead of throwing a significant exception.
  11. The Double Descent The problem with recursive bypass of the composite structure, when we jump more than one step down
  12. The Liar View Anti-pattern “false representation” in case the MVC pattern is used and the presentation and model work diverge
  13. Saboteur Data - a story about joints with validation of input data and their further use in the application
  14. The Broken Dispatch - schools with polymorphism and overloading of methods
  15. The Impostor Type Impostor type, when the program equally processes fundamentally different types of data. This problem was described by John Osterhut in his book A Philosophy of Software Design as a problem he had been trying to find for six months:)
  16. The Split Cleaner Problems with mismanagement of resources, when they are either not released or do so too early
  17. The Fictitious Implementation a problem where the implementation of the interface does not satisfy some of the invariant contained therein n
  18. The Orphaned Thread a problem in a multithreaded application where the threads stopped waiting for data from the thread that stopped working
  19. The Run-On Initialization A problem in initializing class attributes when the designer has not initialized all of them
  20. Platform-Dependent Patterns - platform-dependent errors
  21. A Diagnostic Checklist A list of questions and symptoms of inappropriate behavior that can be used for debugging
  22. Design Patterns for Debugging Design patterns that help with debugging (The first pattern in the use of static typing)
  23. References Links to resources that were useful 20 years ago:)

#Software #SoftwareArchitecture #Patterns #Design #Architecture #SoftwareDevelopment #Engineering