From 1d3fadc1f257bea3460785bbc2847705d86e283c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vin=C3=ADcius=20Garcia?= Date: Tue, 12 Jan 2021 20:46:29 -0300 Subject: [PATCH] Update README.md --- README.md | 46 +++++++++++++++++++++++++++++++++++++++------- 1 file changed, 39 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 095cdfe..41aafc5 100644 --- a/README.md +++ b/README.md @@ -6,11 +6,11 @@ Welcome to the KissORM project, the Keep It Stupid Simple - ORM. This ORM was created to be used by any developer efficiently and safely. The goals were: -- It should be easy to use -- It should be hard to make mistakes -- It should have a small API so it's easy to learn -- It should be easy to mock and test (very easy) -- It should be above all readable. +- To be easy to use +- To be hard to make mistakes +- To have a small API so it's easy to learn +- To be easy to mock and test (very easy) +- To be above all readable. **Supported Drivers:** @@ -19,6 +19,38 @@ Currently we only support 2 Drivers: - `"postgres"` - `"sqlite3"` +### Why KissORM? + +KissORM was created to fill a hole between the complexity +we find in the tools I've seen so far, namely: + +- ORMs such as `GORM` that do a lot and have literally hundreds + of functions that require learning, increasing the risk of + interpretation errors, learning time, complicating mocking, etc. +- Tools such as `sqlx` that do little but still have most of + the quirks from the standard `sql` lib, requiring several + error checks for each query which is very low level. + +Besides both these examples were not created having +easy tests as one of the requisites, which might cause +you team to loose far more time than necessary writing +the tests or worst: Opting to not writing tests since +it would take too much time. + +So the goal was to be high level enough that it would +avoid the complications from the `sql` package and +at the same time to be simple enough to avoid +the big learning curve and complexity of the hundreds +of functions offered by more complete ORMs. + +That said, KissORM attempts to apply the Kiss principle, +in order to save development time for your team, i.e.: + +- Less time spent learning (few methods to learn) +- Less time spent testing (helper tools made to help you) +- less time spent debugging (simple apis are easier to debug) +- and less time reading & understanding the code + ### Kiss Interface The current interface is as follows: @@ -173,8 +205,8 @@ read the example tests available on the our [example service](./examples/example - Add support for transactions - Improve error messages - Allow the ID field to have a different name -- Allow database replicas for reading -- Fix a bug that is causing "database locked" errors when some the tests fail +- Fix a bug that is causing "database locked" errors when some of the tests fail - Implement a JSON fields on the database (encoding/decoding them automatically into structs) +- Implement support for nested objects with prefixed table names - Double check if all reflection is safe on the Insert() function - Make sure `SELECT *` works even if not all fields are present