for a second I thought I read
publ;c
Nah, it’s actually
publ;c
This is why I spend a good amount of time setting up linters on new repos before even starting to make the application. It saves a ton of time in peer reviews because no one has to think about formatting. Some people may not like the rules chosen but official direction from the boss is “get over it”. There are 0 comments on PRs about formatting which only ever annoys people and is a waste of good dev time.
On my current team, when we were trying to choose a style, my only input was “any style that can be checked/applied with a git commit hook.”
I get some people prefer reading code in a particular format. Let them configure their editor to apply it, but let’s keep the version history in one unavoidably consistent style. Pretty please.
deleted by creator
I felt that. I have a colleague whose coding style is different to mine and whenever they work on code that I originally wrote, I have to resist the temptation to modify things to camelCase.
Linters make these kind of things easier. Then you get mad at the tool rather than your coworker.
Does Prettier count as a linter?
I always thought linters were more to find bad practice and possible errors than control the code style
Some linters can do both. Getting one set up as an automated job whenever code is pushed to the repo is on my TODO list…
That does sound nice to me too. I’ve found prettier with format on save works pretty well but that means you have to set it up in every editor
Format on save is a godsend. Copy paste something with whole indentation? Ctrl-s, it’s back to normal. Did some wacky nested anonymous function calls? Ctrl-s, and they’re laid out nicely.
I honestly almost golf my code nowadays and just let the tooling fix formatting for me. The space bar and enter key are in an ideal world vestigial for the purposes of programming.
I’ll always say that the best code editor is the one that makes you put your idea onto a file the fastest.
So yeah, you shouldn’t worry about style and code lint. You should worry if your code is sound and works. Keep your mind on the logic, not the extras
Yep all my public repos have it on a ci job. When you have a library that is used on many different projects, I want to be able to read the prs.
It’s interesting that something this minor gets people so upset. I mean, I get it, but objectively it’s weird of us.
I had a debate years ago about test naming. When I was a junior, the lead dev used test methods with an underscore separating different cases. Like testServiceConnector_success(). I thought that’s pretty neat and kept that style. In another project one of the devs almost had a meltdown because I dared introducing underscore scum into “his” project.
I think it’s just that we’re possessive/protective of “our” code, even more so if one is passionate about programming. We’ve put a lot of effort into it, then somebody else comes along and “ruins” our “perfect” (to our eyes) formatting/styling!
Last year I had a module for ai stuff. We did things in Python and I am quite into doing things as coding standards say. My mate didn’t really care so much and just went for his style of doing things, also not really worrying about descriptive names etc.
Well, let’s say, we weren’t having a good time.
I also realized that I was probably too harsh and tried to go a bit more easy on it later, but many things just felt wrong.
Add black, isort and flake 8 to your repo, you can set it up to be applied on commit.
So folks can modify their local config all they like, and when they push it’s to the team standard and when they work locally it’s to theirs. It’s the best.
What about Ruff? I’ve been having a great time with Ruff.
I work on a proprietary language that translates everything to uppercase before compiling. So having a specific case is useless. The standard functions all have wacky cases. Some from the same module may use CamelCase, while it’s brother use snake_case.
… I just use Rust’s style. Simple, easy.
Don’t look at rust code
I think Rust actually is actually among the best in this regard for the simple reason that there is consistency given by the compiler. A simple
cargo fmt
andcargo build
will fix or warn you about everything. I can read into Rust codebases so quickly. C++ was always really exhausting because most of the time you were just getting used to the code style.Why? It’s fine?
I’ve found whenever people complain about rust code they can only point out how it’s different but not why it’s worse and I can usually point to a reason why it’s better.
to be fair, I get sometimes it’s difficult to pinpoint why something is bad and even “being different” can be a legitimate criticism on its own
People who learnt structural OOP without actually understanding typing system and their benefits really struggle with learning Rist as they try to map classes onto structs and it just doesn’t work.
Traits are not inheritance.
Box
is not polymorphism. Rust is not C++ with more keywords.
It IS fine, I though the comic was referring snake_case as disgusting. I was uncomfortable too at first but I got used to it
I used to be a PascalCase guy myself, but that changed recently when I had to use React (coming from embbeded C)
I am working with a C embedded framework that uses snake_case, and switching between the two, I realized that it is a lot easier to find information with snake_case for me.
I don’t get why every language seems to have its own coding style when you’d think they’d be completely interchangeable depending on user/org/project maintainer preference
Having a standardized codding styles allows people to immediately recognise things, and not have a wacky case mix.
You don’t need to remember the coding style of one specific project. You just need to remember the style of the language
Of course it would be better if it was standardized for every language, but that’s probably never going to happen
I don’t get it
deleted by creator
Ah well… Guess I’m lucky that it doesn’t bother me.
I use different languages with different style guides and my IDE autoformats everything properly with the click of a button so I don’t think about naming strategies at all.
Imagine using extra characters in your variable names. And they say Java is verbose…
Classes often have camelCase or PascalCase. Snake cases often are for variables or functions.
I don’t remember the java standards, but it’s enough to get it
The Java standard is ClassName, variableName, FINAL_VALUE_NAME.
It’s derived from a popular C++ standard. (But C++ has many for you to pick.)
Python is the one that likes snake_case, but it’s for variables, as you said. Classes are still PascalCase.
Rust is like Python, but actually tell you the rules instead of you doing whatever you want
In college and workplace, all java projects I ever worked with used camelCase. Whether that’s the official stance of Java or not, I don’t recall.
But also classes? In Java, I normally see camelcase (objects, variables, functions, …) except for class definitions, which are PascalCase.
The package itself often is snakecase though iirc?That’s exactly how I was taught Java styling in college. Idk if it was official styling or just professor preference though.
Same I was taught. Think it’s official. Professor was a stickler for following official rules so I doubt he would deviate.
When you’re telling a joke to a bunch of computer programmer nerds, you got to tell them what programming language the joke is in, or else it just falls flat.
Always type the name of the language after opening your joke block. If your language is known enough, you may have syntax highlighting as well!
So this looks like it’s based in Java code.
A public class means that any bit of Java code, including that injected by an attacker, can see and mess with the contents of that class.
A private class, in contrast, means that other bits of Java code are restricted to running the class’s predefined functions.
In theory it is supposed to help with the security of the data. In practice if an attacker gets to this point, you’ve got much bigger issues.
Private Vs public has nothing to do with security
If people can execute arbitrary code in your app, they can already read your memory, and even if they couldn’t they could use java reflection to just turn off the private modifier
Accessibility modifiers are to do with maintainability. If you have internal implementation logic that should be hidden from a consumer you don’t want that consumer to have to know about things they shouldn’t be changing anyway.
The comic is just about how classnames in java should be in pascal case
What is the freakout?!?!?!?!?!?!?!? Maybe i want to read other people’s code in a wacky comic-looking silly goofy totally awesome monospaced font!?!?!?!
Wait, is this implying the software devs are hard coding all of the customer data? 🤮