This repository has been archived on 2024-07-08. You can view files and clone it, but cannot push or open issues or pull requests.
nix-config-tn/docs/overview/design.md
Truxnell ccd8e800df
Feat: docs (#98)
* hacking at dns

* hack

* hax

* start dics!

* hacking

* feat: docs!

---------

Co-authored-by: Truxnell <9149206+truxnell@users.noreply.github.com>
2024-04-16 05:14:06 +00:00

716 B

Design principles

Taking some lead from the Zen of Python:

  • Minimise dependencies, where required, explicitly define dependencies
  • Use plain Nix & bash to solve problems over additional tooling
  • Stable channel for stable machines. Unstable only where features are important.
  • Modules for a specific service - Profiles for broad configuration of state.
  • Write readable code - descriptive variable names and modules
  • Keep functions/dependencies within the relevant module where possible
  • Errors should never pass silently - use assert etc for misconfigurations
  • Flat is better than nested - use built-in functions like map, filter, and fold to operate on lists or sets