github.com/raychaser/docker@v1.5.0/project/PRINCIPLES.md (about)

     1  # Docker principles
     2  
     3  In the design and development of Docker we try to follow these principles:
     4  
     5  (Work in progress)
     6  
     7  * Don't try to replace every tool. Instead, be an ingredient to improve them.
     8  * Less code is better.
     9  * Less components is better. Do you really need to add one more class?
    10  * 50 lines of straightforward, readable code is better than 10 lines of magic that nobody can understand.
    11  * Don't do later what you can do now. "//FIXME: refactor" is not acceptable in new code.
    12  * When hesitating between 2 options, choose the one that is easier to reverse.
    13  * No is temporary, Yes is forever. If you're not sure about a new feature, say no. You can change your mind later.
    14  * Containers must be portable to the greatest possible number of machines. Be suspicious of any change which makes machines less interchangeable.
    15  * The less moving parts in a container, the better.
    16  * Don't merge it unless you document it.
    17  * Don't document it unless you can keep it up-to-date.
    18  * Don't merge it unless you test it!
    19  * Everyone's problem is slightly different. Focus on the part that is the same for everyone, and solve that.