Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple APILearn More
@kiki Well, I use Git at work. Not by choice, and I don't enjoy it, but I do use it. For my personal projects though, I still use SVN (not counting my stuff on GitHub, of course, but that serves as like 99% a read-only archive, I don't do active development there). Since I have no need for a distributed model, there's no benefit to Git and, frankly, lots of downside.
Interestingly, I DID set up GtiLab on my home server specifically for CI/CD, since it's pretty good for that... but you know what the first step of my pipeline is? Pull code from SVN :)
I'm an avowed Git hater, just to level-set, but how is GitHub taking away the "de" in decentralization?
When you clone a repo from GitHub, you now have a local copy of it. When you commit, it goes into your local copy only. This is de-centralized. It's not until you push to the remote on GitHub that you're now back in a "centralized" environment - and nothing says you ever HAVE to push to the remote, that's kind of the point.
Yes, of course, if you're working with a team then pushing to the remote is certainly going to happen, but that has nothing to do with GitHub or even Git, it has to do with, like, how space and time work? You could just swap thumb drives amongst yourselves and do a lot of merging and never use a centralized remote if you wanted to, but that wouldn't make much sense, right?
Like I said, if you want someone to talk shit on Git generally all day long, then I'm your man! But GitHub doesn't really make it any less de-centralized than Git fundamentally is.
As a senior lead, I do code reviews for new developers only. That continues until they show the expected level of quality and following standards and just basically not being total crap.
Once they show that, the reviews stop, except in cases of exceptionally large and complex changes that by nature DEMAND multiple eyes be on.
Those relatively rare situations aside, I simply trust them to do good work once they've shown me that they can.
Oh, to be sure, I occasionally take a peek at what my team is pushing, just in a very cursory way and just randomly (usually when I'm in there writing code myself). And yes, I'll gently (and privately in most cases) point out anything that needs to be fixed or isn't up to snuff, and then it's up to them to take care of it, I'm not checking up on them.
Basically, once you show me you are, I treat you like a mature, responsible, diligent, professional adult human being. And that remains true unless and until you show me I made the wrong call.
@CoreFusionX I understood that reference!
You forgot the big 'ole /s on the end... I HOPE.
@react-guy Honestly, I think we're in sunk cost fallacy territory. People have invested so much time into building, learning and using these things that they "can't possibly be wrong". It's a self-reinforcing delusion. I mean, don't get me wrong: I'm NOT saying there aren't benefits and positives. I'm just saying that based on 25+ years of experience and seeing how things have evolved, I'm not convinced that in many - maybe even most - cases that those benefits and positives significantly outweigh the negatives, if they do at all. And I don't think "well, everyone does it" is ever a valid justification. It's a good reason to consider something, maybe even have it be the default starting choice, but I think this is an industry where "everyone", no matter how smart, can be wrong, and the fact that we see seismic shifts over and over again kind of supports that.
This is what happens when people hear some principle or guideline, think it sounds good, and blindly use it going forward but without actually thinking deeper about it and definitely without being critical in each individual situation to see if it REALLY applies and makes sense.
DRY is a good general principle. KISS is a GREAT guiding light. YAGNI is GENERALLY correct. Curly's Law should USUALLY be followed. Not re-inventing the wheel is typically good advice.
But none of those are absolutes, and if you just stick to them every single time without any thought then you wind up doing stupid things like bringing in a library to left-pad a string, and then disaster strikes.
You have to understand the principles enough to know when coloring OUTSIDE the line is actually the right choice, because sometimes it absolutely, positively is.
@react-guy Hard disagree. You can absolutely achieve this on your own, but what it requires is something that seems to be all too rare these days: developer discipline and good architectural leadership.
I'm talking from experience: I've guided development on three different highly complex applications over the last 15 years without using any framework as we know them today (they didn't exist when at least one of the apps was started and were just emerging when another began) and we've had zero issues as a result.
But, what it took was first laying down a solid foundation, and then ensuring compliance with it by talented, diligent resources as we went.
If you don't have those things then yeah, it might be better to just use a framework that kinda forces them on you, I'd agree with that. But it absolutely IS possible without them, and it doesn't require building the equivalent of React or Angular (perhaps fair to say you're developing a purpose-built "microframework" though).
Weird take, it's usually the exact opposite with React and Angular (and certainly I know I prefer React any day of the week and twice on Sundays to Angular).
That said, I'm working on a project now where I've very deliberately stayed away from all frameworks and modern build tooling, not even using TypeScript, and using as few libraries as possible.
And you know what? This project is going smoother than any in a LONG time!
The performance is amazing (no packing, but it DOES do dynamic loading, so it's effectively code-splitting, and with long caching), the developer experience is gloriously simple, and things Just Work(tm) like you expect them to 100% of the time, there's no confusing layers of indirection when debugging...
Basically, it's how we used to do ALL our development years ago. I don't know why we ever stopped. All this shit we dump on top of it now isn't actually making our lives easier, we've simply fooled ourselves into believing it has.
@IntrusionCM Everything @Lensflare said is exactly right. What's worse about it is that 9 times out of 10 - if you actually do know this stuff fairly well - is you can spot the flaw in a few seconds, a minute or two at most (and that one time you don't it's PROBABLY because they word the flaws in a weird way sometimes, and/or there is arguably two flaws that COULD possibly fit depending on interpretation so you're not totally sure). It's when you have to choose the solution where it becomes an utter nightmare. SO time-consuming, bad code that would get rejected out of any decent code review, and then when you finally get to a point of saying "okay, I'm 100% sure it's answer X", nope, it's not, and then you start to wonder if you're really just a total fucking moron or whether it's really THAT flawed... so, you do it again, and you take the time to look stuff up, maybe even do some quick test code to be sure... and you realize that no, it's not you, it indeed really is THAT flawed.
"User cannot access application"
And that's it.
Uhh, ok... so, are they getting a specific error? Did you get a screenshot? Did they try resetting their password? (which is the user access equivalent of "turn it off and on again" around here) Did you direct them to clear cache, since you've been told to pretty much ALWAYS try that first for ANY issue?
Oh, and let's start with: are we talking about Dev, Test, QA or Prod?!
@valejx Glad to here it worked out in the end for you!
@AndroidJester Indeed. Doesn't make it right or good, but can't argue with facts: Git is the de-facto standard in SCM at this point, so people like me can hate it all we want, but we gotta deal with it either way.
@ethernetzero This is legit! Like, I'm one of those people that absolutely LOVES working from home and 99% of the time I miss NOTHING about being in the office - despite OP's comments :) ... but yeah, the wife and kids simply do not understand what damage they do every time they come in to talk to me (and to be honest, 99% of it is my wife... my kids seem like they might actually understand... but she definitely doesn't). Some days it's absolutely maddening! Of course, the same thing happens in the office, so at least at home it's people I love... but still: ARGH!!!!
As Bill Gates said:
"60FPS ought to be enough for anybody."
I think it depends on the type of error.
If you have invalid credentials, yes, it's a 403 (or maybe 401).
If the app code simply blew up, yes, should be a 500.
If it's an invalid HTTP method, yes, should be a 405.
But what if I send in a request to liquidate my checking account but the amount is greater than the balance? What HTTP code is appropriate then? Yes, you could make an argument for 400, or maybe 406, or MAYBE 409? You could argue for 451 even.
But, I think the strongest argument is for 200, with some application-level error defined in the payload.
The way I demarcate it is this:
If the SERVER can determine the cause of the problem without application code even necessarily being involved, then an HTTP error code is usually appropriate.
If it's something that is generated at the app code level, then a 200 - because the request WAS, effectively, "ok" - with an app-defined error in the payload doesn't hurt my head any.
@netikras Oh hell yeah! Got my Fold 4 a few weeks back and it's already far and away the best phone I've ever owned. In fact, where I used to walk around my house with my iPad, it's now sitting on a shelf collecting dust because I FINALLY have a phone I can truly use as my primary mobile device for everything. I had my doubts... is the crease going to annoy me, is the under-display camera going to be too shitty to be useful, is the overall experience going to live up to my internal hype... but every one has been put to rest. Probably the only thing I don't really love about it is I wish it had an under-display fingerprint scanner like my S21Ultra did, but it seems I'm the only one that feels that way, so I'll cope. But yeah, I can't see ever going back to a regular brick anymore. If anything, I hope the Fold 5 is a little LARGER, I wouldn't mind that one bit.
Are... are you in an environment where you'd have a chance to try this?!
Nah, the spaghetti just takes a different pasta form... maybe lasagna code...
In Java, it's abstractions on top of abstractions on top of factories on top of annotations that do all sorts of magical things on top of bytecode modifications on-the-fly on top of people thinking they HAVE to do ALL the OOP ALL the time, etc.
No, speaking as someone who actually does like Java for the most part and has been doing it since basically the first day it was available to the world, you 100% can write "spaghetti" code in Java too.
OOP (and really anything else you can name) does basically nothing to stop a bad coder from being a bad coder.
@Midnight-shcode Haha, no, I've been at this a little while :)
@Midnight-shcode First one I learned was BASIC, in the 70's.
How many do I know? Well, depends on what you mean by "know". How about those I've USED for something non-trivial at one point or another? Hmm, lemme see...
What's that, 32? With a few "maybe" languages?
Earth Defense Force 5.
After a hard day at work, there's nothing better than just mindlessly blasting giant bugs, aliens, robots and UFOs for an hour. I am a simple man.
(though, I have to admit, there's something cathartic about finishing off all the enemies save for one, then leveling an entire city with a rocket launcher, leaving not a single destroyable asset remaining, before wiping out that last enemy to actually end the level)
Oh god, same! That piece of shit crushed my machine (which is slow on a good day) this morning for three full hours, CPU pegged at 100% and like 40% disk usage... everything else was moving like a quadriplegic in a marathon.
Funny, my own personal machine runs like greased lightning despite not having specs much better than my work machine. Could it be all the bullshit they run in the background?! NAAAAAAH. It's not Windows itself is my point, not inherently at least.
On the plus side, if you manage to get it done, you instantly propel yourself into hero territory. If you DO manage it, make sure people KNOW you managed it! Don't be shy about (tacitly) demanding credit, from both the tech side and the stakeholders.
Fuck it, straight-up tell the client what the deal is, right on your next call, in front of everyone.
Having a job is fantastic. But having to play games because of some higher-up assholes isn't. Lose the job if you must, it's not worth the guilt you'll feel for not doing the right thing.
Either that, or just totally detach emotionally from what's going on and flat-out just don't give a shit... but the fact that you're posting this here indicates it's probably too late for that.
I'd rather lose my job for doing the right thing than hang on knowing I'm fucking someone for stupid reasons. It's really not worth it if you're someone that cares about what you're doing, which really should be everyone (at least during working hours).
@PeterDCarter Nope, GitLab CI/CD, with a whole bunch of crap I didn't write on top of it... though I've heard some horror stories about Azure's too.
OMG!! HOU'RE HIRED!!
Just apply if you have a few matches, and as long as the ones you don't match you're at least WILLING to learn. As someone else said, sell the experience you have, it's your most valuable asset.
And besides, "knowing" something is a spectrum. I mean, I "know" Angular, but my experience with it isn't all that great, but I'm sure as hell still gonna put it on my resume! (though I'm not sure I'd be willing to take an "Angular job" because what experience I do have tells me it's horrific... but I digress). Honestly, when I interview people, I'm looking for surface-level knowledge of most things I'm asking about (with a few deep-dive topics). I think most interviews are like that.
But don't waste your time out of work either! Make sure you're reading and playing with popular stuff to get at least that surface-level knowledge I mentioned. It'll definitely help... and you don't need real schooling because "proper education" is kind of a joke for this industry frankly.
Angular is the textbook definition of "overengineered pile of dogshit" and the reason you don't hear about it much is because anyone who's ever used it for anything non-trivial has been so traumatized by it that we actively fight to keep it out of our brains.
IDEA on my 4-year-old (but well-spec'd at the time) personal laptop working on my personal passion project that is FAR more complex than anything I do at work...
...runs like a dream. Does exactly what I tell it to exactly when I tell it to do it, fast, no lag, and that's with almost every plugin under the soon installed and enabled.
IDEA (with as few plugins as possible enabled) on my who-the-fuck-knows-how-old-at-this-point (but not actually terribly spec'd, on paper, anyway) work laptop working on my main project that, while not simple, isn't anything monstrous...
...like being stuck at the event horizon of a black hole to an outside observer. AARRGGHH!!!!