Book description
If you want to push your Java skills to the next level, this book provides expert advice from Java leaders and practitioners. You’ll be encouraged to look at problems in new ways, take broader responsibility for your work, stretch yourself by learning new techniques, and become as good at the entire craft of development as you possibly can.
Edited by Kevlin Henney and Trisha Gee, 97 Things Every Java Programmer Should Know reflects lifetimes of experience writing Java software and living with the process of software development. Great programmers share their collected wisdom to help you rethink Java practices, whether working with legacy code or incorporating changes since Java 8.
A few of the 97 things you should know:
- "Behavior Is Easy, State Is Hard"—Edson Yanaga
- “Learn Java Idioms and Cache in Your Brain”—Jeanne Boyarsky
- “Java Programming from a JVM Performance Perspective”—Monica Beckwith
- "Garbage Collection Is Your Friend"—Holly K Cummins
- “Java's Unspeakable Types”—Ben Evans
- "The Rebirth of Java"—Sander Mak
- “Do You Know What Time It Is?”—Christin Gorman
Publisher resources
Table of contents
- Preface
- 1. All You Need Is Java
- 2. Approval Testing
- 3. Augment Javadoc with AsciiDoc
- 4. Be Aware of Your Container Surroundings
- 5. Behavior Is “Easy”; State Is Hard
- 6. Benchmarking Is Hard—JMH Helps
- 7. The Benefits of Codifying and Asserting Architectural Quality
- 8. Break Problems and Tasks into Small Chunks
- 9. Build Diverse Teams
- 10. Builds Don’t Have To Be Slow and Unreliable
- 11. “But It Works on My Machine!”
- 12. The Case Against Fat JARs
- 13. The Code Restorer
- 14. Concurrency on the JVM
- 15. CountDownLatch—Friend or Foe?
- 16. Declarative Expression Is the Path to Parallelism
- 17. Deliver Better Software, Faster
- 18. Do You Know What Time It Is?
- 19. Don’t hIDE Your Tools
- 20. Don’t Vary Your Variables
- 21. Embrace SQL Thinking
- 22. Events Between Java Components
- 23. Feedback Loops
- 24. Firing on All Engines
- 25. Follow the Boring Standards
- 26. Frequent Releases Reduce Risk
- 27. From Puzzles to Products
- 28. “Full-Stack Developer” Is a Mindset
- 29. Garbage Collection Is Your Friend
- 30. Get Better at Naming Things
- 31. Hey Fred, Can You Pass Me the HashMap?
- 32. How to Avoid Null
- 33. How to Crash Your JVM
- 34. Improving Repeatability and Auditability with Continuous Delivery
- 35. In the Language Wars, Java Holds Its Own
- 36. Inline Thinking
- 37. Interop with Kotlin
- 38. It’s Done, But…
- 39. Java Certifications: Touchstone in Technology
- 40. Java Is a ’90s Kid
- 41. Java Programming from a JVM Performance Perspective
- 42. Java Should Feel Fun
- 43. Java’s Unspeakable Types
- 44. The JVM Is a Multiparadigm Platform: Use This to Improve Your Programming
- 45. Keep Your Finger on the Pulse
- 46. Kinds of Comments
- 47. Know Thy flatMap
- 48. Know Your Collections
- 49. Kotlin Is a Thing
- 50. Learn Java Idioms and Cache in Your Brain
- 51. Learn to Kata and Kata to Learn
- 52. Learn to Love Your Legacy Code
- 53. Learn to Use New Java Features
- 54. Learn Your IDE to Reduce Cognitive Load
- 55. Let’s Make a Contract: The Art of Designing a Java API
- 56. Make Code Simple and Readable
- 57. Make Your Java Groovier
- 58. Minimal Constructors
- 59. Name the Date
- 60. The Necessity of Industrial-Strength Technologies
- 61. Only Build the Parts That Change and Reuse the Rest
- 62. Open Source Projects Aren’t Magic
- 63. Optional Is a Lawbreaking Monad but a Good Type
- 64. Package-by-Feature with the Default Access Modifier
- 65. Production Is the Happiest Place on Earth
- 66. Program with GUTs
- 67. Read OpenJDK Daily
- 68. Really Looking Under the Hood
- 69. The Rebirth of Java
- 70. Rediscover the JVM Through Clojure
- 71. Refactor Boolean Values to Enumerations
- 72. Refactoring Toward Speed-Reading
- 73. Simple Value Objects
- 74. Take Care of Your Module Declarations
- 75. Take Good Care of Your Dependencies
- 76. Take “Separation of Concerns” Seriously
- 77. Technical Interviewing Is a Skill Worth Developing
- 78. Test-Driven Development
- 79. There Are Great Tools in Your bin/ Directory
- 80. Think Outside the Java Sandbox
- 81. Thinking in Coroutines
- 82. Threads Are Infrastructure; Treat Them as Such
- 83. The Three Traits of Really, Really Good Developers
- 84. Trade-Offs in a Microservices Architecture
- 85. Uncheck Your Exceptions
- 86. Unlocking the Hidden Potential of Integration Testing Using Containers
- 87. The Unreasonable Effectiveness of Fuzz Testing
- 88. Use Coverage to Improve Your Unit Tests
- 89. Use Custom Identity Annotations Liberally
- 90. Use Testing to Develop Better Software Faster
- 91. Using Object-Oriented Principles in Test Code
- 92. Using the Power of Community to Enhance Your Career
- 93. What Is the JCP Program and How to Participate
- 94. Why I Don’t Hold Any Value in Certifications
- 95. Write One-Sentence Documentation Comments
- 96. Write “Readable Code”
- 97. The Young, the Old, and the Garbage
- Contributors
- Index
Product information
- Title: 97 Things Every Java Programmer Should Know
- Author(s):
- Release date: May 2020
- Publisher(s): O'Reilly Media, Inc.
- ISBN: 9781491952696
You might also like
book
The Well-Grounded Java Developer, Second Edition
Understanding Java from the JVM up gives you a solid foundation to grow your expertise and …
book
Java Coding Problems
Develop your coding skills by exploring Java concepts and techniques such as Strings, Objects and Types, …
book
97 Things Every Programmer Should Know
Tap into the wisdom of experts to learn what every programmer should know, no matter what …
book
40 Algorithms Every Programmer Should Know
Learn algorithms for solving classic computer science problems with this concise guide covering everything from fundamental …