start writing technical principles
This commit is contained in:
parent
0c6cee19d5
commit
0c027dc29a
1 changed files with 32 additions and 0 deletions
|
@ -1,2 +1,34 @@
|
||||||
# Technical principles
|
# Technical principles
|
||||||
|
|
||||||
|
## KISS principle
|
||||||
|
"Keep it simple, stupid!"
|
||||||
|
|
||||||
|
## Do not reinvent the wheel
|
||||||
|
|
||||||
|
## There is only one timezone
|
||||||
|
Experience has showned that using multiple timezones for the servers of an infrastructure is a receipe for disaster.
|
||||||
|
Also, using the timezone of one contry for an international project is a source of confusion and headackes.
|
||||||
|
Especially when that timezone is subject to daylight saving changes that are causing the clock to jump 1 hour forward or backward twice a year.
|
||||||
|
The only sensible choice is to set the servers time to UTC and to transalte the timestamps to the user's timezone when displaying them.
|
||||||
|
|
||||||
|
This is strongly opinion based. And we may not not all agree on the subject. This is why we will make sure that it is easy for the users to choose their prefered timezone for setting up their servers.
|
||||||
|
|
||||||
|
## Eat your own food
|
||||||
|
The project is bootstrapped using a hosting infrastructure thagtis based on Proxmox, Debian and YunoHost.
|
||||||
|
But the goal is to host the project using itself as soon as possible. That is using NixOS servers managed with the tools and principles developed by the NixiN project.
|
||||||
|
Currently only the forgejo action runners used for CI/CD are hosted on NixOS servers.
|
||||||
|
|
||||||
|
## CI/CD
|
||||||
|
|
||||||
|
## Focus on user experience
|
||||||
|
|
||||||
|
## Prioritize security
|
||||||
|
|
||||||
|
## No premature performance optimization
|
||||||
|
Use best practices to write efficient code but do not write overly complicated solutions based on a-priori thinking of performanc e issue.
|
||||||
|
Only optimize what has been tested to be an issue.
|
||||||
|
|
||||||
|
## Do fast prototypes and releases cycles.
|
||||||
|
Even though we think that Rust would be a better language for developing the tools of the project we are starting the first version using Go because it is faster to develop with it and easier to find contributors with this langages.
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue