diff options
author | Ben Sima <ben@bsima.me> | 2020-11-16 14:02:37 -0500 |
---|---|---|
committer | Ben Sima <ben@bsima.me> | 2020-11-16 14:02:37 -0500 |
commit | b1468fd5630a01966c9c3243de6c7882c3c95b7a (patch) | |
tree | ed674c5f1970bc3d62e57f687317c8efec19135d /README.md | |
parent | b3f1be97ecfcbb4cd496f1471f8b9329df797373 (diff) |
add build badge and move some docs around
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 38 |
1 files changed, 1 insertions, 37 deletions
@@ -1,38 +1,2 @@ -Jump into a development shell: +[![builds.sr.ht status](https://builds.sr.ht/~ben/biz/commits/.build.yml.svg)](https://builds.sr.ht/~ben/biz/commits/.build.yml?) - nix-shell - -Then run `help` to see the dev commands. - -The source tree maps to the module namespace, and roughly follows the -Haskell namespace hierarchy (although nothing is enforced). The main -'common' space is `Biz`, other namespaces should be related to their -application. - -Development aspects should be localized to their sub-namespaces as much -as possible. Only after sufficient iteration such that interfaces are -solidified and functionality is well-established should some code be -promoted up the namespace hierarchy. - -Boundaries and interfaces between namespaces should be small and -well-defined. Likewise, the functionality and purpose of a particular -namespace should be small and well-defined. Following the unix principle -of "do one thing and do it well" is advised. - -For building the code, we use `nix` and basically copy the namespace -hierarchy into the main build file `./default.nix`. - -Namespaces are always capitalized. I would prefer always lowercase, but -`ghc` _really_ wants capitalized files, so we appeas `ghc`. In Scheme -this actually translates quite well and helps distinguish between types -and values. - -File extensions denote _type_ and indicate to the build system how to -handle the file. So for example: - -- `.hs` is Haskell source code, the build system compiles it -- `.scm` is Scheme source code, ditto -- `.org` is an organizational text document, the build system ignores - this, but we use them to make plans and such -- `.jnl` is a journal for accounting, the build system will check our - balances, make sure we're profitable |