Book description
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 ensure you’ll get a firm grasp of the concepts as you go. When you finish the last version of the book’s central project, you’ll be able to confidently choose the right optimizations for your code.Table of contents
- 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
-
Chapter 1. Software qualities and a problem to solve
-
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
-
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
-
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
-
Chapter 3. Need for speed: Time efficiency
- Appendix A. Code golf: Succinctness
- Appendix B. The ultimate water container class
- The programmer’s journey
- A list of the main classes from each chapter
- Index
- List of Figures
- List of Tables
- List of Listings
Product information
- Title: Seriously Good Software
- Author(s):
- Release date: March 2020
- Publisher(s): Manning Publications
- ISBN: 9781617296291
You might also like
book
Generative Deep Learning, 2nd Edition
Generative AI is the hottest topic in tech. This practical book teaches machine learning engineers and …
book
Robust Python
Does it seem like your Python projects are getting bigger and bigger? Are you feeling the …
book
Flow Architectures
Software development today is embracing events and streaming data, which optimizes not only how technology interacts …
book
Learning Modern Linux
If you use Linux in development or operations and need a structured approach to help you …