Practical API Design: Confessions of a Java Framework Architect
D**K
Finally someone explained SUN APIs
After 15 years of writing vague, unclear and verbose "manuals" of the type "you don't have to bother thinking", someone from SUN explains why they had written their API that particular way. Why is it called "Confessions"? Did they plot to hide that information from the beginning? Or explaining their reasoning is considered to be shameful in some circles?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.
T**Y
Four Stars
Wish there were more books like this.
R**A
Great book
If you are willing to change your devlopment way of yhingking you can achieve great results in about the same time as linear development
T**M
A curious mix
I'm not sure what I was expecting. This book is part memoir about the creation and evolution of NetBeans, part list of best practices (and a few esoteric tricks), and part philosophical discussion, making analogy between the development of an API and the birth of modern physics. In the end, I was somewhat baffled.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.
R**Y
Not fun to read this book
I have started reading this book, and after a while i realized that it is definitely not a fun to read this book. You need to spend lot of time to get little knowledge.
W**_
Surprisingly Enlightening Top Notch Software Development Book for the Advanced Professional
Wow! I only wanted to brush up some of my development skills and than this rock of a book. There are problems and solutions I did not have the slightest idea of their existence. I even learned more than in the classic Effective Java (2nd Edition) by Joshua Bloch. The section about concurrency is worth this book alone.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.
V**O
Little disappointing
It's true, that this book contains some really really useful information. But the thing is, it's not fun to read. I really like Java and designing of APIs, but this book is simply quite boring to read. Author uses too many abstractions and I thought he was often kind of lost in his own words. Another problem were the examples. I understand that the author was architect of NetBeans project, but Swing like examples are not very expressive for the most programmers mostly doing stuff like business logic.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 ...
T**R
Excellent advice from an experienced API designer
Many books explain how to write programs in a given computer language, though books that describe how best to structure those programs are much less common. Practical API Design stands apart from either category in that it teaches how to create the building blocks upon which other developers will base their applications.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.
R**H
Excellent Book - A must for Java programmers
This book is up there with Joshua's book on Java. Not an easy reading I have to admit, unless you key in some of the examples in your IDE ( at least for me!) it does not condense well!. One of the core part of the programming is API design. When it is done at an industrial level, it require quite lot of 'thinking' up front. Usually it takes lots of failures (and many sleepless nights) before you can get it right ( in your n'th iteration). If you have experienced this already or about to embark on it, this book is a must read!. I wish author had given more code snippets and examples to demonstrate the theory. But even in this form this will be an excellent addition to your library
Trustpilot
2 months ago
1 day ago