Practical API Design: Confessions of a Java Framework Architect 1st ed. Edition
| Jaroslav Tulach (Author) Find all the books, read about the author, and more. See search results for this author |
Use the Amazon App to scan ISBNs and compare prices.
You might think more than enough design books exist in the programming world already. In fact, there are so many that it makes sense to ask why you would read yet another. Is there really a need for yet another design book? In fact, there is a greater need than ever before, and Practical API Design: Confessions of a Java Framework Architect fills that need!
- Teaches you how to write an API that will stand the test of time
- Written by the designer of the NetBeans API at Sun Technologies
- Based on best practices, scalability, and API design patterns
Products related to this item
Editorial Reviews
About the Author
I'd like to read this book on Kindle
Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.
Product details
- Publisher : Apress; 1st ed. edition (July 29, 2008)
- Language : English
- Hardcover : 414 pages
- ISBN-10 : 1430209739
- ISBN-13 : 978-1430209737
- Item Weight : 2.13 pounds
- Dimensions : 7.01 x 0.94 x 10 inches
- Best Sellers Rank: #2,927,462 in Books (See Top 100 in Books)
- #1,103 in Software Testing
- #1,749 in Java Programming
- #2,400 in Software Design & Engineering
- Customer Reviews:
About the author

My name is Jaroslav Tulach and I am the founder and initial architect of NetBeans, which is not just a well known IDE, but also the first modular desktop application framework written in Java. My name sounds Slavic and has a strange pronunciation (read the initial J as Y and last ch as in Scottish loch or in German Bach), because I am Czech. However, as NetBeans has been the flagship software product of Sun Microsystems/Oracle for a while now, you don't have to worry that content of my Practical API Design book might not be widely applicable and understandable.
Products related to this item
Customer reviews
Customer Reviews, including Product Star Ratings help customers to learn more about the product and decide whether it is the right product for them.
To calculate the overall star rating and percentage breakdown by star, we don’t use a simple average. Instead, our system considers things like how recent a review is and if the reviewer bought the item on Amazon. It also analyzed reviews to verify trustworthiness.
Learn more how customers reviews work on AmazonTop reviews from the United States
There was a problem filtering reviews right now. Please try again later.
Anyway, thanks to the author for finally shedding light on the way SUN designed their API. It took a great burden from my soul, because I always missed connection points in their manuals.
But then, I'm not in charge of a large, popular Java API. I would recommend this book only to that handful of programmers who fit that description.
The key part for the PRACTICAL design is part 2. So do not be discouraged from part 1. If you do not like philosophy you might be annoyed, and if you do like philosophy you will be disappointed. A condensed version of the philosophical background of his advice is helpful though: Users of your library should be effective with the maximum amount of cluelessnes. And the development of your library should stay flexible without breaking the code of your clients.
In part 2 and 3 you will find a treasure trove of hard to find advice. Highlights are a very detailed comparison between the tradeoffs of using: interfaces, abstract classes, concrete final classes, ... . You find about problems of offering callbacks to your clients. The ramifications to multithreading are especially interesting. Also of particular interest is his implementation of the visitor pattern that abstracts from the API version of the concrete used library: an example of triple dispatch.
I do strongly support Jaroslav Tulachs call for direct compiler support of versioning of APIs. This immediately helps for solving the great challenges in our open source libraries weaving world.
I do strongly recommend this great book. Thank you Jaroslav.
I would definitelly NOT compare it to Bloch's Effective Java, that one is simply so much better. I really do respect author, he is definitelly an exprienced designer. He writes about the environments of public API - something you can't change easily after it's released (for example internal APIs in various businesses can be rewritten much much easier), so it must be designed carefully.
Overally, if you want to learn something more about API design, this is probably one of the best books about the topic. But prepare yourself - there will be some stale Swingish jargon full of abstractions ...
The focus of this book is on how you can design software that evolves to meet changing requirements and technology. Although the examples are primarily in Java, the advice in the book transcends any computer language and will be valuable to any developer who creates libraries or frameworks on which others rely. The book describes how to create intuitive APIs, ideas for improving performance through API design, tools for testing compatibility and tricks for compatible evolution.
As the principal designer of the NetBeans Platform (a software framework used by hundreds of organizations, including many Fortune 500 companies), the author certainly knows the topic well. He covers the problems faced when designing APIs, then illustrates them with real-life examples of how to solve them. His thoughtful assessments of what has -- and has not -- been successful for the APIs he has designed allows the reader to benefit from his many years of experience.
In summary, this is an excellent book and I'm not aware of any other which covers these topics with the same depth and passion. I've given it four stars for only one reason: it could be more concise. It sometimes embarks on tangents which, while interesting, don't seem to reinforce the main points.
Full disclosure: I'm an active NetBeans Platform developer and I know the author personally. At his request, I served as a technical reviewer for the manuscript of this book. Although the publisher sent me a free copy of the book following publication, I received no other compensation and feel that the review I've given here is honest and unbiased.

