Files
runc/hack/PRINCIPLES.md
T
Glyn Normington b49464f6c6 Initial hacker documentation
This was such a good resource in Docker that it would be a shame to
lose it. Unfortunately, we can't just link to the corresponding
information in the Docker project as a number of aspects are bound to
be different here.

Docker-DCO-1.1-Signed-off-by: Glyn Normington <gnormington@gopivotal.com> (github: glyn)
2014-06-13 11:14:28 +01:00

1.1 KiB

libcontainer principles

In the design and development of libcontainer we try to follow these principles:

(Work in progress)

  • Don't try to replace every tool. Instead, be an ingredient to improve them.
  • Less code is better.
  • Less components is better. Do you really need to add one more class?
  • 50 lines of straightforward, readable code is better than 10 lines of magic that nobody can understand.
  • Don't do later what you can do now. "//FIXME: refactor" is not acceptable in new code.
  • When hesitating between 2 options, choose the one that is easier to reverse.
  • No is temporary, Yes is forever. If you're not sure about a new feature, say no. You can change your mind later.
  • Containers must be portable to the greatest possible number of machines. Be suspicious of any change which makes machines less interchangeable.
  • The less moving parts in a container, the better.
  • Don't merge it unless you document it.
  • Don't document it unless you can keep it up-to-date.
  • Don't merge it unless you test it!
  • Everyone's problem is slightly different. Focus on the part that is the same for everyone, and solve that.