more cents added

This commit is contained in:
jem 2021-05-28 08:51:03 +02:00
parent af0e77c421
commit 0fee2119a1
5 changed files with 49 additions and 10 deletions

View file

@ -1,2 +1,8 @@
# overview # 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/

View file

@ -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: In each ADR file, write these sections:
# Title
## Status ## Status
What is the status, such as proposed, accepted, rejected, deprecated, superseded, etc.? What is the status, such as proposed, accepted, rejected, deprecated, superseded, etc.?

View 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).

View file

@ -3,18 +3,10 @@
1. Jedes Element nur einmal testen 1. Jedes Element nur einmal testen
2. möglichst billig testen 2. möglichst billig testen
3. YAGNI / KISS 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 5. DDD Aufteilung nutzen
1. Domain isoliert - isoliert testbar 1. Domain isoliert - isoliert testbar
2. Inputs / Outputs validieren 2. Inputs / Outputs validieren
3. Aggregate bilden 3. Aggregate bilden
6. Configuration ist dumm
7. Wir programmieren in Programmiersprachen und nicht in XML / Template / yaml ... 7. Wir programmieren in Programmiersprachen und nicht in XML / Template / yaml ...
8. Gute Programmiersprachen erfinden ist schwierig, drum lassen wir das 8. Gute Programmiersprachen erfinden ist schwierig, drum lassen wir das
9. Microkernel 9. Microkernel

View 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