Table of contents
Metadata is a popular buzzword, for those who don't know much about it, metadata is simply data about data; more like data that describes other (relatively larger) data. Have you ever asked yourself where these metadata come from? ๐. Is there someone manually labeling every piece of data on the internet? Or is the internet playing guessing games when trying to categorize and label data?
Well, it turns out that software engineers do most of the heavylifting when it comes to sticking the labels on data. We're able to do this through data annotation. I feel the need to digress a bit and talk about how frustrating yet exciting it was to always learn about new terms because someone namedropped the said term in order to explain some concept that I didn't understand (probably because I didn't even know the term being namedropped ๐ ).
A RELATABLE EXPLANATION
I decided to try my hand at explaining every term I've ever heard in software development so that no aspiring or newbie developer has to nod along in conversations they don't understand. It's been over 300 posts and we still have a long way to go ๐ฅ. Now back to data annotation, shall we? ๐ฅ. At the backend, developers add attributes (which is more like characteristics) to objects like classes and this makes up what is known as metadata.
Input validation is arguably the most relatable way that data annotation translates to our everyday lives as developers and as netizens. In my last post, I wrote about classes and I used data annotation to describe the characteristics of each class's property. Those characteristics act as a check; they allow and hold values that are in line with the characteristics of the class's property and reject those that don't conform.
Another practical implementation of this is in input validation. As a person surfing the internet, when you try to register on a platform, you're most likely to come across that annoying (yet important) feature that tells you that your password is too weak, or that your username is too short ๐, those are as a result of input validation. If you're more technical, you may have tried other inputs that would have been rejected by the system for other reasons.
FINALLY...
Input validation can be on the frontend (just the part of the website that you can see), or can (and should) extend all the way to the backend in order to protect the core processes of the website/application and the database where all our data ends up. So, you can technically say input validation is built on the back of model validation, model validation is built on data annotation, and data annotation can be viewed as the building blocks of metadata.
When data annotation is done well, the database is cleaner, the website or application feels a lot smoother, and the data is more accessible to people who may need a screen reader. Overall, we get better internet ๐.