Practical API Design and over one million other books are available for Amazon Kindle. Learn more



or
Sign in to turn on 1-Click ordering
More Buying Choices
Have one to sell? Sell yours here
Start reading Practical API Design on your Kindle in under a minute.

Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.
Sorry, this item is not available in
Image not available for
Color:
Image not available

To view this video download Flash Player

 

Practical API Design: Confessions of a Java Framework Architect [Hardcover]

Jaroslav Tulach
4.5 out of 5 stars  See all reviews (10 customer reviews)

List Price: $79.99
Price: $59.91 & FREE Shipping. Details
You Save: $20.08 (25%)
o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o
Only 8 left in stock (more on the way).
Ships from and sold by Amazon.com. Gift-wrap available.
Want it tomorrow, May 24? Choose One-Day Shipping at checkout. Details
Free Two-Day Shipping for College Students with Amazon Student

Formats

Amazon Price New from Used from
Kindle Edition $49.30  
Hardcover $59.91  
Paperback $51.89  
Shop the new tech.book(store)
New! Introducing the tech.book(store), a hub for Software Developers and Architects, Networking Administrators, TPMs, and other technology professionals to find highly-rated and highly-relevant career resources. Shop books on programming and big data, or read this week's blog posts by authors and thought-leaders in the tech industry. > Shop now

Book Description

July 29, 2008 1430209739 978-1430209737 1

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

What you’ll learn

  • What an API is and what the theories are behind good API design
  • When and why to build an API
  • API design patterns applicable to all programming languages, especially modern, object–oriented languages
  • How to optimize and test APIs

Who this book is for

This book is recommended to every API architect who prefers a bit more engineering design over a purely artistic one.

Table of Contents

  1. The Art of Building Modern Software
  2. The Motivation to Create an API
  3. Determining What Makes a Good API
  4. Ever-Changing Targets
  5. Do Not Expose More Than You Want
  6. Code Against Interfaces, Not Implementations
  7. Use Modular Architecture
  8. Separate APIs for Clients and Providers
  9. Keep Testability in Mind
  10. Cooperating with Other APIs
  11. Runtime Aspects of APIs
  12. Declarative Programming
  13. Extreme Advice Considered Harmful
  14. Paradoxes of API Design
  15. Evolving the API Universe
  16. Teamwork
  17. Using Games to Improve API Design Skills
  18. Extensible Visitor Pattern Case Study
  19. End-of-Life Procedures

 


Frequently Bought Together

Practical API Design: Confessions of a Java Framework Architect + Effective Java (2nd Edition) + Java Concurrency in Practice
Price for all three: $137.42

Buy the selected items together


Editorial Reviews

About the Author

Jaroslav Tulach is the founder and initial architect of NetBeans, later acquired by Sun Technologies. As creator of the technology behind NetBeans, he is still with the project to find ways to improve the design skills among all the programmers who contribute to the success of NetBeans open source project.

Product Details

  • Hardcover: 416 pages
  • Publisher: Apress; 1 edition (July 29, 2008)
  • Language: English
  • ISBN-10: 1430209739
  • ISBN-13: 978-1430209737
  • Product Dimensions: 7 x 0.9 x 10 inches
  • Shipping Weight: 1.9 pounds (View shipping rates and policies)
  • Average Customer Review: 4.5 out of 5 stars  See all reviews (10 customer reviews)
  • Amazon Best Sellers Rank: #907,828 in Books (See Top 100 in Books)

More 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.

Customer Reviews

4.5 out of 5 stars
(10)
4.5 out of 5 stars
The book is placed between Effective Java and Java Concurrency in Practice books in my bookshelf. Subhash Chandran  |  2 reviewers made a similar statement
Obviously I was quite enthused about this book. Robert D. Glover Jr.  |  2 reviewers made a similar statement
The rest is the real work. David Linsin  |  1 reviewer made a similar statement
Most Helpful Customer Reviews
6 of 6 people found the following review helpful
5.0 out of 5 stars The book I've always been waiting for March 2, 2009
Format:Hardcover
Practical API Design: Confessions of a Java Framework Architect is the book I've always been waiting for. Jaroslav Tulach, the founder and architect of NetBeans, created a highly recommend read for everyone in charge of developing APIs.

But even if it's not your job to define interfaces, you are somewhat alway on the other side consuming them and it's good to know what drives evolution of the APIs you work with.

The book consists of 3 parts:

Part 1 is called "Theory and Justification". It defines the terminology and background which gives you the necessary foundation to explain and justify API design.

Let me give you and example: Have you ever had problems explaining your design to a colleague? You couldn't find the right words to reasonably highlight your decision, but you know it was right? The only justification was your intuition and the feeling that your design was the right choice. Does that sound familiar?

That's where Part 1 of this book comes in and tries to give you a tool to justify and even measure the quality of your design decisions: Selective Cluelessness. It's a principle which is based on the assumption that you can achieve more by knowing less:

"The more good APIs we have, the bigger the systems we'll be able to build without understanding all their details."

"Practical Design" is Part 2 and basically puts the theory highlighted in the first part to practice. Using Java, the author provides a set of what he calls API design patterns. They are design patterns in the traditional sense, but with a focus on evolution. Most of them accompanied by an examples the the NetBeans APIs. It doesn't matter if you are not familiar with NetBeans. Due to the author's years of experience with NetBeans, he does a great job explaining the problems it was facing and how they came with a solution, which evolved into an API design pattern.

..., it's slightly more complicated to design a universe than building a house. As a result, we need an enhanced version of the design patters. We need patterns that help us building a "universe".

Part 3 of the book, "Daily Life", is a collection of advices on how to bugfix, evolve and maintain an API. The author points out how important versioning is and how NetBeans solves such a problem. He highlights the importance of compatibility and how to keep the promises to the users of your APIs.

The theory and initial design are just the tip of the iceberg. The rest is the real work.

I'm really glad I read this book, although it took me quite a while. The reason is not the 365 pages. It was all the moments I had during reading it. So many times I was reminded of mistakes I made in APIs I previously designed. I often pondered on whether a solution suggested in the book was better than the one I came up with. I think that's what makes a book interesting, if it makes you think and critically review your own solutions.

I enjoyed taking the journey through the API universe and learning how to design an API in a selective cluelessness way. As for the reasons why you should read this book:

... when you understand the API world, its needs and its laws of evolution, you can shape it into a form containing all that the creators of the oldest and most perfect science always searched for - beauty, truth and elegance. A properly API universe ain't a bad place to be.
Comment | 
Was this review helpful to you?
3 of 3 people found the following review helpful
4.0 out of 5 stars Excellent advice from an experienced API designer December 26, 2009
Format:Hardcover
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.
Comment | 
Was this review helpful to you?
3 of 3 people found the following review helpful
By ws__
Format:Hardcover
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.
Comment | 
Was this review helpful to you?
Most Recent Customer Reviews
5.0 out of 5 stars 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... Read more
Published 2 months ago by Dimitri K
5.0 out of 5 stars 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
Published 4 months ago by Remo Loaiza
5.0 out of 5 stars An inspiration
This book is a huge inspiration for me, and contributed to one of the biggest releases of my OpenSource tool: WizTools.org RESTClient. Read more
Published 6 months ago by Subhash Chandran
3.0 out of 5 stars Little disappointing
It's true, that this book contains some really really useful information. But the thing is, it's not fun to read. Read more
Published 14 months ago by vrto
5.0 out of 5 stars a must-read
If you are busy with or interested in API design, you should read this book. This book delivers many valuable practices, together with philosophical sections. Read more
Published on May 14, 2011 by Michael Huettermann
5.0 out of 5 stars An instant classic
First I bought the paper edition, then I bought the Kindle edition. Obviously I was quite enthused about this book. The first couple of chapters did in fact seem useful. Read more
Published on April 5, 2009 by Robert D. Glover Jr.
3.0 out of 5 stars 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... Read more
Published on March 9, 2009 by Trevor Burnham
Search Customer Reviews
Only search this product's reviews

What Other Items Do Customers Buy After Viewing This Item?


Forums

There are no discussions about this product yet.
Be the first to discuss this product with the community.
Start a new discussion
Topic:
First post:
Prompts for sign-in
 



So You'd Like to...


Create a guide


Look for Similar Items by Category