Gryphon Philosophy
Jump to navigation
Jump to search
What are the core values driving the project?
- Maintenance and readability
- Testing
- Documentation (why and who)
- Libraries not frameowrks
- small libraries not large
- SOC
- Confidence
- Testing
- Assert
- Debugging
- Immutability
- Use a few concepts well
- Easy to get core logic up and running, reasonable to make bottle necks efficient
- With great power comes great responsibility
- One tool: the language should be able to run as a script to manage the build
- reflection, unsafe and polymorphism are good for libraries but bad for applications
- Package management should be simple and safe but not centralized
Reduce Code
Most C# projects have a class that does a thing as unit of work (a few methods) and some tests. But to support this we end up with
- an interface
- a serialization (DB) model
- a message model
To reduce this we should derive an interface from it's methods. And a model should be able to be reasonably reused in many contexts.
Managing Abstraction
We have great tools for breaking things down into abstractions, but very poor tools for expressing those abstractions from a high level.