• Developers are users too — Introduction
  • Originally written by Florina Muntenescu
  • The Nuggets translation Project
  • Permanent link to this article: github.com/xitu/gold-m…
  • Translator: lsvih
  • Proofreader: Ill Lliil, Hanliuxin5

Photo: Virgina Poltrack

When we talk about usability, we usually associate it with the user interfaces of apps like maps, texting, or photo sharing. We want them to have their own good features, for example, a map app should have:

  • Intuitive — It’s easy to let the user know how to navigate from A to B.
  • Efficiency – The ability to get directions quickly.
  • Correctness – The ability to obtain A correct, accessible route from A to B.
  • Provide appropriate functionality — the ability to explore the map, such as zooming in, zooming out, and navigation.
  • Provide an appropriate way to use the above functionality — for example, to manipulate a map by zooming with your finger.

Similarly, we want the apis we use to have the same features. If the UI is the interface between the user and the function, then the API is the interface between the developer who uses the API and the code that implements the function. Therefore, apis need to be as easy to use as UIs.

Libraries, frameworks, SDK-apis are everywhere. Whenever you separate code into modules, the classes and methods exposed by the modules become apis. Other developers (and you in the future) will want to use it.

Ease of use is inversely proportional to how long it takes to learn to use something. Novice developers and experts alike spend a lot of time learning how to use a new API, and a poorly accessible API can cause it to be called incorrectly, resulting in bugs and security issues. These issues ultimately affect not only developers who use these apis, but also users of apps. Therefore, it is important to provide apis that are easy to use.

Nielsen and Molich have written a widely known manual: UI Usability Lessons that can be applied to any product (including apis), and you can learn how to design a good API with Bloch’s guide.

  1. Visibility of system state
  2. Make the system fit the real world
  3. Provide users with freedom of operation
  4. Consistency and standards
  5. Prevent mistakes from happening
  6. Let the user know, not remember
  7. Flexible and efficient use
  8. Elegant, minimalist design
  9. Help users to recognize, judge, and correct errors
  10. Provide help and documentation

In the next article, we’ll explore these principles in depth and see how they can be applied to API design. Stay tuned!


The Nuggets Translation Project is a community that translates quality Internet technical articles from English sharing articles on nuggets. The content covers Android, iOS, front-end, back-end, blockchain, products, design, artificial intelligence and other fields. If you want to see more high-quality translation, please continue to pay attention to the Translation plan of Digging Gold, the official Weibo, Zhihu column.