list of noms sharp edges should we want to extract key functionality
Closed this issue · 1 comments
phritz commented
feel free to directly edit this comment or add your own separate comment
- Ref.Hash() frequently used instead of Ref.TargetHash()
- types should implement Stringer, which should have a default limit on how much it will dump high enough that test cases just work
- canonicalization should be built in
- zero values should be useful or at lest not sharp (eg marshaling a zero ref panics)
- thread safety should be explicit
- something about omitempty: i feel like its frequently a source of mistakes for me, eg rocicorp/replicache-client@08d9200
- null, zero values should round trip consistently or at least behavior should be clearly articulated
- nomsdl should maybe be json so less to hold in your head?
- logging should be tunable
- function calls that can't fail should not return an error
- let's not have thingy.thingy eg client db has a dataset, which has a db
aboodman commented
- we don't really need any of the type system. All we're using is a versioned map of key->value, where K=string and V=blob. Interestingly this is the same exact abstraction dolt uses from Noms.
- GC should be built in - nobody wants to keep the entire history. This isn't useful for any application.