> For the complete documentation index, see [llms.txt](https://book.restfulnode.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://book.restfulnode.com/part-2/chapter-3/1-theories-vs-principles-vs-guidelines.md).

# Theories vs. Principles vs. Guidelines

Before moving on to the best practices and guidelines, I want to emphasize a bit on the word *"guideline"*.

In my final year of university, I took a class called [*CSCC10H3 Human-Computer Interaction*](https://utsc.calendar.utoronto.ca/course/cscc10h3) taught by [Professor Naureen Nizam](https://www.linkedin.com/in/naureen-nizam-phd-7643011) at the University of Toronto.

To be really honest, I didn't really pay much attention in that class, I only took this course in order to fulfill one of my upper-year computer science requirements. There was one lecture where I actually did take notes, and that lecture was about understanding the differences between **theories**, **principles**, and **guidelines**. Although that class that I took many years ago was on usability and interaction design, I will never forget what the differences between the three are.

Here are the key differences between theories, principles, and guidelines:

**Theories**: High-level widely applicable and predictive frameworks to draw on during design and evaluation.

**Principles**: Mid-level strategies or rules to analyze and compare design alternatives.

**Guidelines**: Low-level focused advice about good practices and cautions against dangers.

> Guidelines provide a shared language to promote consistency among multiple people in terminology usage. It is simply a set of recommendations that are there to create reliability and consistencies among a group of individuals.
>
> *-Naureen Nizam, Computer Science Professor at the University of Toronto*

It is important to realize that guidelines and principles are rule of thumbs, not widely adopted standards used by the masses. Therefore, the purpose of this chapter is to **propose a set of rules and recommendations from the significant trends in API design that we have seen emerge in the past couple of years**, and leverage them when it comes to designing and developing our own RESTful APIs.
