more cents added
This commit is contained in:
parent
af0e77c421
commit
0fee2119a1
5 changed files with 49 additions and 10 deletions
|
@ -1,2 +1,8 @@
|
|||
# overview
|
||||
|
||||
This is about our software architecture.
|
||||
|
||||
Architecture is the art of decrease software developers freedom without increasing their suffering.
|
||||
|
||||
You may find other definitions here:
|
||||
* https://martinfowler.com/architecture/
|
||||
|
|
|
@ -6,8 +6,6 @@ You can use [adr-tools](https://github.com/npryce/adr-tools) for managing the AD
|
|||
|
||||
In each ADR file, write these sections:
|
||||
|
||||
# Title
|
||||
|
||||
## Status
|
||||
|
||||
What is the status, such as proposed, accepted, rejected, deprecated, superseded, etc.?
|
||||
|
|
38
principles/ConfigAsData.md
Normal file
38
principles/ConfigAsData.md
Normal file
|
@ -0,0 +1,38 @@
|
|||
https://github.com/juxt/aero
|
||||
|
||||
### Explicit and intentional
|
||||
|
||||
Configuration should be explicit, intentful, obvious, but not clever. It
|
||||
should be easy to understand what the config is, and where it is
|
||||
declared.
|
||||
|
||||
Determining config in stressful situations, for example, while
|
||||
diagnosing the cause of a production issue, should not be a
|
||||
[wild goose chase](http://en.wiktionary.org/wiki/wild-goose_chase).
|
||||
|
||||
### Avoid duplication ...
|
||||
|
||||
Config files are often duplicated on a per-environment basis, attracting
|
||||
all the problems associated with duplication.
|
||||
|
||||
### ... but allow for difference
|
||||
|
||||
When looking at a config file, a reader will usually ask: "Does the value differ from the default, and if so how?". It's clearly better to answer that question in-place.
|
||||
|
||||
### Allow config to be stored in the source code repository ...
|
||||
|
||||
When config is left out of source code control it festers and diverges from the code base. Better to keep a single config file in source code control.
|
||||
|
||||
### ... while hiding passwords
|
||||
|
||||
While it is good to keep config in source code control, it is important to ensure passwords and other sensitive information remain hidden.
|
||||
|
||||
### Config should be data
|
||||
|
||||
While it can be very flexible to have 'clever' configuration 'programs', it can be [unsafe](http://www.learningclojure.com/2013/02/clojures-reader-is-unsafe.html), lead to exploits and compromise security. Configuration is a key input to a program. Always use data for configuration and [avoid turing-complete](http://langsec.org/occupy) languages!
|
||||
|
||||
### Use environment variables sparingly
|
||||
|
||||
We suggest using environment variables judiciously and sparingly, the way Unix intends, and not [go mad](http://12factor.net/config). After all, we want to keep configuration explicit and intentional.
|
||||
|
||||
Also, see these arguments [against](https://gist.github.com/telent/9742059).
|
|
@ -3,18 +3,10 @@
|
|||
1. Jedes Element nur einmal testen
|
||||
2. möglichst billig testen
|
||||
3. YAGNI / KISS
|
||||
|
||||
#Postel's Law:
|
||||
|
||||
be conservative in what you do, be liberal in what you accept from others.
|
||||
|
||||
https://martinfowler.com/bliki/TolerantReader.html
|
||||
|
||||
5. DDD Aufteilung nutzen
|
||||
1. Domain isoliert - isoliert testbar
|
||||
2. Inputs / Outputs validieren
|
||||
3. Aggregate bilden
|
||||
6. Configuration ist dumm
|
||||
7. Wir programmieren in Programmiersprachen und nicht in XML / Template / yaml ...
|
||||
8. Gute Programmiersprachen erfinden ist schwierig, drum lassen wir das
|
||||
9. Microkernel
|
||||
|
|
5
principles/TolerantReader.md
Normal file
5
principles/TolerantReader.md
Normal file
|
@ -0,0 +1,5 @@
|
|||
#Postel's Law:
|
||||
|
||||
be conservative in what you do, be liberal in what you accept from others.
|
||||
|
||||
https://martinfowler.com/bliki/TolerantReader.html
|
Loading…
Reference in a new issue