|
| ▲ | gorjusborg 8 hours ago | parent | next [-] |
| Honestly, there is zero chance you will implement anything close to sqlite. What is more likely, if you are making good decisions, is that you'll reach a point where the simple approach will fail to meet your needs. If you use the same attitude again and choose the simplest solution based on your _need_, you'll have concrete knowledge and constraints that you can redesign for. |
| |
| ▲ | z3ugma 4 hours ago | parent [-] | | not re-implement SQLite, I mean "use SQLite as your persistence layer in your program" e.g. worry about what makes your app unique. Data storage is not what makes your app unique. Outsource thinking about that to SQLite |
|
|
| ▲ | hirvi74 8 hours ago | parent | prev | next [-] |
| Sqlite is also the only major database to receive DO-178B certification, which allows Sqlite to legally operate in avionic environments and roles. |
|
| ▲ | moron4hire 8 hours ago | parent | prev | next [-] |
| Came here to also throw in a vote for it being so much easier to just use SQLite. You get so much for so very little. There might be a one-time up-front learning effort for tweaking settings, but that is a lot less effort than what you're going to spend on fiddling with stupid issues with data files all day, every day, for the rest of the life of your project. |
| |
| ▲ | tracker1 6 hours ago | parent [-] | | Even then... I'd argue for at least LevelDB over raw jsonl files... and I say this as someone who would regularly do ETL and backups to jsonl file formats in prior jobs. |
|
|
| ▲ | 9rx 8 hours ago | parent | prev [-] |
| > and your app doesn't have 300% test coverage with fuzzing like SQLite does Surely it does? Otherwise you cannot trust the interface point with SQLite and you're no further ahead. SQLite being flawless doesn't mean much if you screw things up before getting to it. |
| |
| ▲ | RL2024 8 hours ago | parent [-] | | That's true but relying on a highly tested component like SQLite means that you can focus your tests on the interface and your business logic, i.e. you can test that you are persisting to the your datastore rather than testing that your datastore implementation is valid. | | |
| ▲ | 9rx 8 hours ago | parent [-] | | Your business logic tests will already, by osmosis, exercise the backing data store in every conceivable way to the fundamental extent that is possible with testing given finite time. If that's not the case, your business logic tests have cases that have been overlooked. Choosing SQLite does mean that it will also be tested for code paths that your application will never touch, but who cares about that? It makes no difference if code that is never executed is theoretically buggy. | | |
| ▲ | wmanley 7 hours ago | parent [-] | | Business logic tests will rarely test what happens to your data if a machine loses power. | | |
| ▲ | 9rx 7 hours ago | parent [-] | | Then your business logic contains unspecified behaviour. Maybe you have a business situation where power loss conditions being unspecified is perfectly acceptable, but if that is so it doesn't really matter what happens to your backing data store either. |
|
|
|
|