Seriously Good Software /
Seriously Good Software is a handbook for any professional developer serious about improving application quality. It explores fundamental dimensions of code quality by enhancing a simple implementation into a robust, professional-quality application. Questions, exercises, and Java-based examples ens...
Autor principal: | |
---|---|
Autor Corporativo: | |
Formato: | Electrónico eBook |
Idioma: | Inglés |
Publicado: |
Manning Publications,
2020.
|
Edición: | 1st edition. |
Temas: | |
Acceso en línea: | Texto completo (Requiere registro previo con correo institucional) |
Tabla de Contenidos:
- Intro
- Copyright
- Brief Table of Contents
- Table of Contents
- Foreword
- Preface
- Acknowledgments
- About This Book
- About the Author
- About the Cover
- Part 1. Preliminaries
- Chapter 1. Software qualities and a problem to solve
- 1.1. Software qualities
- 1.2. Mostly external software qualities
- 1.3. Mostly internal software qualities
- 1.4. Interactions between software qualities
- 1.5. Special qualities
- 1.6. The recurring example: A system of water containers
- 1.7. Data model and representations
- 1.8. Hello containers! [Novice]
- Summary
- Further reading
- Chapter 2. Reference implementation
- 2.1. The code [Reference]
- 2.2. Memory requirements
- 2.3. Time complexity
- 2.4. Applying what you learned
- Summary
- Answers to quizzes and exercises
- Further reading
- Part 2. Software Qualities
- Chapter 3. Need for speed: Time efficiency
- 3.1. Adding water in constant time [Speed1]
- 3.2. Adding connections in constant time [Speed2]
- 3.3. The best balance: Union-find algorithms [Speed3]
- 3.4. Comparing implementations
- 3.5. And now for something completely different
- 3.6. Real-world use cases
- 3.7. Applying what you learned
- Summary
- Answers to quizzes and exercises
- Further reading
- Chapter 4. Precious memory: Space efficiency
- 4.1. Gently squeezing [Memory1]
- 4.2. Plain arrays [Memory2]
- 4.3. Forgoing objects [Memory3]
- 4.4. The black hole [Memory4]
- 4.5. Space-time trade-offs
- 4.6. And now for something completely different
- 4.7. Real-world use cases
- 4.8. Applying what you learned
- Summary
- Answers to quizzes and exercises
- Further reading
- Chapter 5. Self-conscious code: Reliability through monitoring
- 5.1. Design by contract
- 5.2. Designing containers by contract
- 5.3. Containers that check their contracts [Contracts].
- 5.4. Containers that check their invariants [Invariants]
- 5.5. And now for something completely different
- 5.6. Real-world use cases
- 5.7. Applying what you learned
- Summary
- Answers to quizzes and exercises
- Further reading
- Chapter 6. Lie to me: Reliability through testing
- 6.1. Basic testing notions
- 6.2. Testing containers [UnitTests]
- 6.3. Testability [Testable]
- 6.4. And now for something completely different
- 6.5. Real-world use cases
- 6.6. Applying what you learned
- Summary
- Answers to quizzes and exercises
- Further reading
- Chapter 7. Coding aloud: Readability
- 7.1. Points of view on readability
- 7.2. Structural readability features
- 7.3. Exterior readability features
- 7.4. Readable containers [Readable]
- 7.5. Final thoughts on readability
- 7.6. And now for something completely different
- 7.7. Real-world use cases
- 7.8. Applying what you learned
- Summary
- Answers to quizzes and exercises
- Further reading
- Chapter 8. Many cooks in the kitchen: Thread safety
- 8.1. Challenges to thread safety
- 8.2. Dealing with deadlocks
- 8.3. Thread-safe containers [ThreadSafe]
- 8.4. Immutability [Immutable]
- 8.5. And now for something completely different
- 8.6. Real-world use cases
- 8.7. Applying what you learned
- Summary
- Answers to quizzes and exercises
- Further reading
- Chapter 9. Please recycle: Reusability
- 9.1. Establishing boundaries
- 9.2. The general framework
- 9.3. A generic container implementation
- 9.4. General considerations
- 9.5. Recovering water containers [Generic]
- 9.6. Social network posts
- 9.7. And now for something completely different
- 9.8. Real-world use cases
- 9.9. Applying what you learned
- Summary
- Answers to quizzes and exercises
- Further reading
- Appendix A. Code golf: Succinctness
- A.1. The shortest I came up with [Golfing].
- Further reading
- Appendix B. The ultimate water container class
- B.1. Readability enhancements
- B.2. Reliability enhancements
- The programmer's journey
- A list of the main classes from each chapter
- Index
- List of Figures
- List of Tables
- List of Listings.