Organizing content on our blog with tags
As you know, we regularly post new content on programming and various interesting events from our company's life on our blog. The range of topics is expanding, and the number of articles is growing, so at some point, we started to attach tags to our posts so that you could quickly find content on topics you're interested in. Just click the appropriate tag and – presto! – a sorted list of related articles appears.
Besides our own website, we also post many of our articles on Habr, and while it has long allowed grouping the content under categories or tags, we haven't had such an option until recently. It's not that we were too lazy – it was simply of no use then. Habr and other resources with similar functionality are used as platforms for posting content by many authors from very different fields, while articles on our website are mostly concerned with such topics as static analysis, C++, and analysis of open-source software. Therefore, it would be strange to tag every article "Static Analysis", "C++", and "Open Source". That's why we have so far categorized them on this page only by the type of the project under analysis: operating systems, browsers, games, compilers, programming languages, graphics and audio applications, and so on.
Gradually, as PVS-Studio evolved to support C# and Java and marketing articles started to appear among articles on programming, the addition of tags for more convenient search has become a reasonable and necessary step. For instance, if you open this article, you'll see that it has two tags: "Cpp" and "GameDev".
That makes sense as the article deals with a check of a game project written in C++. Clicking the "GameDev" tag will take you to a full list of articles on this topic, while above it, a list of clickable tags will appear, under which the articles of our blog have already been grouped.
While the tags "Cpp", "CSharp", "Java", and "Release" speak for themselves, others are not that obvious. Take "StaticAnalysis", for example. You would think all our articles are about static analysis anyway, but this tag is actually used to single out the posts that cover the static analysis methodology as such – either in general or accompanied with PVS-Studio examples. These posts deal with such questions as what exactly static analysis is, how to integrate it, what the difference between static and dynamic analysis is, whether machine learning can be used to create a static analyzer, how we create diagnostics for our analyzer, and so on.
The "Marketing" tag is for articles that tell interesting stories from the company's life, such as participation in conferences, changing the product's icon, collaborating with GitHub users, merchandise design, social networks and YouTube channels for programmers, and the like.
The "Knowledge" tag encompasses articles of educational nature. They explain what errors you may encounter while coding, how writing and using certain functions may be dangerous, and what development approaches to choose from. They also provide recommendations on programming.
The articles tagged "DevOps", "OS", "Compiler", "GameDev", "Embedded" mostly deal with checks of projects under these categories or provide theoretical material in relation to those projects.
The "Security" tag unites articles on SAST: they describe not simply bugs but potential vulnerabilities found with PVS-Studio in open-source projects. These articles also provide general guidelines on code security.
The "64bit" tag will take you to the huge world of 64-bit software: links to useful resources, a course on 64-bit software development, bug descriptions, general guidelines, tips, and news from this area – all that and many more can be found in this category.
That's it for this post. One more thing I'd like to add is that the list of tags will gradually expand as will the range of topics, so stay tuned for updates on our blog and follow us in social networks. By the way, the content there is, too, arranged in categories for a better reading experience.