var Turtle1 var Turtle2 var Is_Turtle
Try assembly language! You have registers, and they are named for you with highly memorable names like R17.
ngl RAX actually sounds cool and is memorable 🥺
RIP.
Don’t recommend using that register to store your variables.
Yeah, a name should describe what it is or does, so if you have two turtles, and let’s say turtle1 wants to shit on turtle2’s lawn, you could name them shittingTurtle and victimTurtle. If the name alone tells you what its purpose is, that saves a lot of time for people looking at your code.
Is_Turtle is not a bad variable name because it tells you it is a Boolean with “is” and that the Boolean tells you whether something is a turtle or not.
Also, depending on the language, I suggest either camelCase or snake_case naming of variables. PascalCase is usually for defining classes or in case of C#, methods.
SHOUTING_SNAKE_CASE aka SCREAMING_SNAKE_CASE is the best case for all use cases, because it gives you a chance to use its wonderful names.
I prefer REVERSEcAMEL
Thanks. I hate it.
I consider myself a collector of programming anti-patterns, but I didn’t have this one yet.
Thank you for this. This is awesome.
shittingTurtle
andvictimTurtle
are going into one of my professional slide decks as soon as I think I can get away with it.
I remember an old mentor programmer I had who basically described his job as building an addition to an addition to an addition on a tree house built in a twig.
Wait, what do you mean x3, y2, and x37 are not good variable names?
Have you considered using inheritance?
blew my inheritance on hookers and blow, now what?
Have you considered multiple inheritance. It’s an upgrade. All upside, literally no downside. I’m trustworthy. Trust me.
I’m an amateur I’m not sure what inheritance is:X? Is it like instantiateing?
When you start learning about different paradigms, you’ll likely learn much more about inheritance when learning about the Object Oriented design paradigm.
To overly simplify, you create objects that inherit attributes from other objects. It’s for instance a way to create reusable patterns, that have stronger and more reliable data structures.
I made the joke comment, because for instance, you could create a
Turtle
class, and always know it was aTurtle
. Again, an oversimplification.EDIT: I should also add that for some reason OOP is an oddly divisive subject. Developers always seem to want to argue about it.
At this point I think there is no software dev topic that is somehow not devisive.
Oh yea, class resources. That would work! Thanks.im going to have to into this more, as it’s going to be useful
If I could give a suggestion I wish I had gotten much earlier on in my education and career, it would be to really spend some time learning about the different paradigms, and their best use cases. You will likely ensure yourself a strong foundation in software architecture.
Just keep in mind that inheritance is nowadays a very contested feature. Even most people still invested in object oriented programming recognise that in hindsight inheritance was mostly a mistake. The industry as a whole is also making a shift to move more towards functional programming, in which object orientation as a whole is taking more of a backseat and inheritance specifically is not even supported anymore. So yeah, take the chance to learn, but be cautious before going into any one direction too deeply.
I like to mix between OOP and FP for different levels. OOP is great for higher architectural problems. FP is great for everything under it.
And yes, inheritance was a huge mistake. Just use composition and interfaces instead.
Yeah, I mix them too, although I apply quite a bit of functional techniques especially at the architectural level as well. OO I use mostly for dealing with I/O and other areas where statefulness cannot be avoided.
If you’re interested, I also wrote an in-depth blog where I touch on these topics: https://arendjr.nl/blog/2024/07/post-architecture-premature-abstraction-is-the-root-of-all-evil/