Example Project for a Go File System server that broadcasts to Android clients.
This is not a critic about cohesion but about how many off-topic practitioners are employed as real professionals and how they use generic nonsense instead of real/hard engineering.
Cohesiveness is an abstract computer science measure unlike buzzwords you hear from clowns like YouTubers, coaches, marketers, managers, CRUD-API-painters, etc.
Those OOP-centric “principles” (or practices) are just mere opinion-based workarounds for bottom programmers in an eternal war of good and bad (see Zamasu | DBS). We have to know how about workarounds, but do not take them too far!.
Anyone can call themselves “engineer”, “programmer”, “executive”, and this just keeps getting crazy.
A programmer has to be skilled in computer programming, so most “programmers” (CRUD API painters) are not even programmers at all but IT labourers. An “engineer” or “executive” is traditionally someone “important” belonging to a high “social class” according to conservative people, so corporate also uses that as buzzwords to label their employees and so any moron with social media is a software “engineer” now which is deplorable.
Those with no skills, even marketers who can edit video and upload it to the internet get called engineers by capitalists because that’s how they brainwash morons to make them believe they’re “important” so they have happy (non-important) employees.
Many jobs (mostly in third-world countries) are complete garbage, but they
employ buzzwords to brainwash peons or employees (yes, capitalists see you
from a pyramidal hierarchy, so you’re a peon for them).
Even if a job is complete trash like selling cable and internet under the sun from door to door with trash salary and no basic human rights, they now call them “selling executives”. Capitalists are currently the root of most evil, is like Java: everything is money, everything (but the 8 primitives) is an “ object” (monolith). And guess what, money is another generic stereotype to brainwash peons. Some say “capitalism has allowed great stuff”, but the fact that works doesn’t mean is must be so. Slaves achieved many things long ago too.
We can have many forms of energy or value instead of money.
Some say over there: “the best slaves are those who don’t know they’re slaves”, or “who are happy being slaves”. So have happy slaves calling them engineers when it does not even follow any formal definition of what an engineer is supposed to be.
I know many juniors can grow to become engineers, but a junior engineer != engineer (that’s for another day). You have to take into account the domain of engineering too.
The definition for engineering is clear, briefly and simple put is: building goods for society with correctness, economical, social, legal, etc. constraints. The key is that for correctness engineering must be derived directly from sciences and math (even more SWE), or in my words: engineers must be good at direct knowledge.
Thus, not everyone can be called an “engineer”.
Many look down software engineers like clowns who learned to code in three months by watching videos. We don’t have anything to do with clowns. Software engineering is powerful, is beautiful, is the engineering that requires the most math and creativity. Others like electrical engineers require the most physics for example. Engineering is about direct knowledge.
I always contrast math/FP/CS/formalism vs dev/OOP/capitalism/buzzwords and the result is the same:
Most software is cheap as I say below, so don’t confuse real engineering with daily toy development.