153
dfox
7y

I always like to approach a new coding project by concentrating on the data model first. I've seen a lot of projects built on extremely convoluted database structures and it really hurts because it makes it hard to add new features to the project.

So I look at the requirements of the new project and try to come up with a basic data model. Then I like to think about what logical future additions to the project could be. And using those, I try to see if the data model is flexible enough to be able to handle those additions fairly easily or if complex migrations or hacks would be needed to account for new use cases and features.

I think once you have a solid data structure and database technology, planning out an API or rest of the software is pretty straight forward. I like to create reusable pieces of middleware early on in the project which makes it easy to apply consistent functionality with ease to different API endpoints.

Comments
  • 12
    I agree. I learnt a lot about normalisation in uni. Saves a lot of time later on in the project.
  • 6
    Best approach to start with especially when the future of the product is yet unknown.
    By the way nice weekly topic, now we can take a look about what other devs think when planning out a new product, it is always nice to learn and see what others do. Thank you :)
  • 3
    Couldn't agree more. Understanding the structure of the data and modelling it appropriately should always be the first step.
  • 2
    Agree to this! Also, this is the reason why I don't have my first implemented real-world project yet. I'm always considering the database design plus the security stuff. Some people build shite no matter how shittey it gets that's why they seem to get things done. I'm always trying to perfect everything which I don't think is always an advantage for me cause it seems like I'm not making any progress.
  • 2
    Just had a lecture about this in design school last week. They called this process Object Oriented User Expirience Design. For us design students this was completly new to us. Once you master it, you won't forget requirements/features for your product and it will be easier to use.

    Here is the article about the OOUX process. (first third of the article is bs)
    https://alistapart.com/article/...
  • 3
    @heyheni thanks for the read. This makes me thankful for django's mvt architecture. It forced me to think about the actual objects and their relations before designing the actual UI.
  • 2
    @gitcommit cool! 🙂
    there is another article on about how to use OOUX for finding the interactions/animations needed for the website.

    https://alistapart.com/article/...
  • 2
Add Comment