So it works, I've hit MVP for for some code, whats next

created: 2020-12-26T15:47:01Z
modified: 2020-12-26T15:47:01Z

So I’ve written another toy CMS to handle this website, it’s small, lightweight, CLI only, and fits my needs well. But it’s also MVP, something I’ve been working on largely to help me learn Rust. To me MVP means it’s a rushed piece of software, more a proof of concept. I barrelled forward with very specific features I needed to implement with only a passing thought or two about how they would all work together. Now I’ve done this more than a few times so I have a bit of auto-avoidance on some big strategic problems you can run into when heading down this path. But wow, ok, so here it is. It works, it will continue to work, it gets the job done. But it’s time to slow down and take a step back, look at things and work on composition and strategy more.

Self Criticism, "Lack of honesty with your self about the quality, or especially the lack there of, in your work is bad engineering." - thoughts in my head

  • Those CLI commands defined in cli.yml are a mess.

    • They aren’t very intuitive
  • There are too many sub commands, need to rethink workflows and how to achieve them.
  • There are no content types, just content tables.
  • Lack of runtime object reflection hurts here but I understand there is a potential RFC. and a maybe a compile time reflection library that could help.
  • And content types need to be easy to build with automated CRUD.
  • There is no automated setup for the database beyond Diesel.
  • There is no multi DB support

    • SQLite should actually be the default so no DB setup is required.
  • There is no automated syncing with the cloud infrastructure.
  • I also need to consider that this is overly simplistic code, still deeply encumbered by my lack of familiarity with more advanced language features.

So what now? Hit the books, do some research, grind some more practice and start diagraming my application. The diagram is probably critical to do at this point and no later so I can start planning out data flows and more advanced data structures.

  • Creative Commons License
  • Author: Gatewaynode