Is this candidate a genius or a potential disaster?
-
@Yamikuronue said in [Is this candidate a genius or a potential disaster?](/topic/19785/is-this-candidate-a-genius-or-a-potential-
I'm getting the feeling you're fairly junior. Breaking classes down into smaller, more focused classes can make it easier to find what you're looking for.
I'd be reluctant to agree on this one.
Sure, smaller file makes "manage your code" easier and makes it possible for unit testing every code path, but max. at 250 lines per class?
I'm actually quite okay if what he mentioned is "max 250 lines per method", but "max 250 lines per class" makes me think that there will highly probably be pointless refactoring.
In OOP principle, methods that be used to manipulate on data in the class is kept to be a method of the class. Putting those method elsewhere actually make it more difficult for the others to find the methods and increase the probability of other developers to "recreate method that already exist" and in the end you'll fine a bunch of methods that gives similar functionality and differs slightly and you don't know which one to trust (afterall, they all have unit test attached and all of them are passing).
-
@fbmac said in Is this candidate a genius or a potential disaster?:
@JBert said in Is this candidate a genius or a potential disaster?:
Having a coding standard is nice
every time I saw a coding standard, it defined stupid shit like spaces vs tabs, and did nothing to increase the overall quality of the software written
Coding standard is there to help me reconcile conflicts during merging. I had started to appreciate its existence when I worked at a previous company where it was non-existent and source control was a mess. It was a real pain, having to manually consolidate the scripts from multitudes of versions(folders) for an initial commit for Subversion (that was the only thing available in that company and no one was using it).
-
@Magus said in Is this candidate a genius or a potential disaster?:
@fbmac said in Is this candidate a genius or a potential disaster?:
@wft said in Is this candidate a genius or a potential disaster?:
giant god classes with thousands of tentacles
how many tentacles should a proper class have?
In software? Oh, probably as few as possible. In some cases you get lucky and only have one!
Japan? I don't think numbers are the right question.
"What are the tentacles for?" would be the right question. Oh and probably "Whose tentacles are those?" too.
-
@cheong said in Is this candidate a genius or a potential disaster?:
max. at 250 lines per class?
Sure, that does sound low. But the OP seemed to be giving me the impression he'd never considered breaking down any class for maintainability.
-
@Dragoon said in Is this candidate a genius or a potential disaster?:
Yeah, and than someone new comes in uses tabs instead of spaces, reformats the entire doc and does a commit. Now your diff is every single line and you have no idea what the hell they actually changed.
We addressed this with a coding standard rule that you must check in reformatting separately from code changes. We were pretty consistent in enforcing this one in code reviews because we all hated looking for a change in history if the rule was violated.
-
@cheong said in Is this candidate a genius or a potential disaster?:
I'd be reluctant to agree on this one.
Sure, smaller file makes "manage your code" easier and makes it possible for unit testing every code path, but max. at 250 lines per class?
I'm actually quite okay if what he mentioned is "max 250 lines per method", but "max 250 lines per class" makes me think that there will highly probably be pointless refactoring.It's possible that he's never swam in a pond quite this big before, and he'll adapt when he's thrown into the middle of it. Of course, it's also possible that he'll sink like a boat anchor.
-
@Polygeekery said in Is this candidate a genius or a potential disaster?:
Don't hire someone just to fill a position. You need sharp minds, not just warm bodies.
I wish the people that did staffing for my helpdesk understood this.
-
@cheong said in Is this candidate a genius or a potential disaster?:
max. at 250 lines per class?
Oh, he'd just love one of our classes:
.h: 11K lines
.cpp: 22K lines.
-
@dcon What kind of code is that?
In my current project at work, most classes are shorter than 250 lines and only one class is longer than 500 lines (one instance where I threw too much code in the MainForm class). But it's not a very big project to start with.
One quite large open-source project, which I recently contributed to, has some much larger classes. For example, an expression parser which contains a few thousand lines of code for implementing all built-in functions. But then I start to wonder again if it wouldn't make sense to group them in separate classes by type (string functions, date functions, ...) and make the expression parser into a separate module.
So in which scenario does it make sense to have a class larger than, say, 1000 lines?
-
@Grunnen said in Is this candidate a genius or a potential disaster?:
What kind of code is that?
It's basically the database wrapper object. The entire code base is somewhere between 500K-1M LoC.
-
@dcon ok!
And is that useful to have all of that in a single class or is it ?
-
@Grunnen said in Is this candidate a genius or a potential disaster?:
@dcon ok!
And is that useful to have all of that in a single class
Actually, yes. The effort to refactor is way-not worth it.
-
@blakeyrat said in Is this candidate a genius or a potential disaster?:
open source software sucks
This is where I realized that your opinion on software became hopelessly broken at some point. Code licensing doesn't determine quality. I'm a bit curious now as to what codebase embittered you to all OSS.
-
@pydsigner said in Is this candidate a genius or a potential disaster?:
Code licensing doesn't determine quality.
This is true.
But it's a strong correlation. And a lot of open source precepts (like "release early, release often", "do one thing and do it well") pretty much encourage awful software.
(The second can be used to justify good software if the "thing done" is carefully-designed based on the user's intention, but usually they mean "one technical thing", like sorting a list of strings.)
-
@pydsigner said in Is this candidate a genius or a potential disaster?:
@blakeyrat said in Is this candidate a genius or a potential disaster?:
open source software sucks
This is where I realized that your opinion on software became hopelessly broken at some point.
Look, a newcomer! Welcome to WTDWTF!
-
@blakeyrat said in Is this candidate a genius or a potential disaster?:
@pydsigner said in Is this candidate a genius or a potential disaster?:
Code licensing doesn't determine quality.
This is true.
But it's a strong correlation. And a lot of open source precepts (like "release early, release often", "do one thing and do it well") pretty much encourage awful software.
I think you're conflating "move fast and break things" with "commit early, commit often".
(The second can be used to justify good software if the "thing done" is carefully-designed based on the user's intention, but usually they mean "one technical thing", like sorting a list of strings.)
Would you believe that I was considering mentioning left-pad as an example of bad OSS? I don't like this NPMitis either, but it doesn't just afflict random JS packages on GitHub, and it's just another form of the beloved Ravioli code philosophy; I'm sure we've all seen hideous proprietary codebases with the same pattern.
When it comes down to it, I think that the key two bits about OSS is that
- there is no bar to entry; any 14-year-old punk with two days of tutorials open in his browser can contribute code
- that code often ends up being vomitted into a github repository for the whole world to revile, while XZYCorp's professional horrors are hidden away from everyone who doesn't work there until someone submits a gem to this site.
-
@Dragnslcr said in Is this candidate a genius or a potential disaster?:
Look, a newcomer! Welcome to WTDWTF!
Touché.
-
@pydsigner said in Is this candidate a genius or a potential disaster?:
I think you're conflating "move fast and break things" with "commit early, commit often".
You're rewriting history.
-
@blakeyrat said in Is this candidate a genius or a potential disaster?:
@pydsigner said in Is this candidate a genius or a potential disaster?:
I think you're conflating "move fast and break things" with "commit early, commit often".
You're rewriting history.
Aaaaand this is what I get for making an assumption instead of doing a google search to double-check.
My point about "move fast and break things" stands, however. You might write that off as open-source thinking infecting the commercial software world, but again, how many front-page articles here revolve around hideous release breakage? Bad programmers will always suck, different philosphies just let them suck differently.
-
@pydsigner Look.
- I am a computer programmer.
- I use computer programmer tools to do my job.
- A disproportionate percentage of programmer tools are also open source for various reasons.
- Programmer tools that are open source are shitty as fuck.
a) I am a gamer.
b) I like to play vidya games.
c) Some vidya games are actually open source.
d) They invariably suck soooo bad.I) I am a human being.
II) As a result I think usability by human beings is important.
III) Open source software, almost as a law of nature, has shitty usability.So what are the headlining open source products?
- Linux.
- Android.
- LibreOffice.
- Eclipse.
- Git.
Of these, the only one I would consider even slightly quality is Android. (And back when I tried version 2 of Android, it was utter ass. The version 5 I have on my tablet seems to be an ok product.) The rest are trash.
HEY BLAKEYRAT I AM A STUPID MORON, DOES THAT MEAN ALL CLOSED-SOURCE SOFTWARE IS BRILLIANT EXCELLENCE?
No, you stupid moron. Lotus Notes, for example, is closed-source software and worse than all the above examples except perhaps Git.
-
@blakeyrat said in Is this candidate a genius or a potential disaster?:
Control-E, Control-D.
If you spend more than the 3 milliseconds it takes to type that keyboard combination thinking about code style, you're using a shitty language with a shitty editor and you probably shouldn't be.
For those of us with quality tools, it's been a solved problem for decades.I hope you at least isolate that into a separate commit. Trying to merge branches where each coder did a complete reformat into their own preferred style is NOT fun.
-
@cartman82 I already covered that. Reformat only changes white space. If that causes confusion during code review, tell the reviewer to use a non-shitty diff tool that ignores white space.
The problem is caused by your shitty tools, not anything the Visual Studio user did.
-
Re: the German programmer from the OP.
I have no idea if not hiring him was the right idea. On one hand, he could have turned out a great programmer, who could have fixed up your code and introduced some good practices. On the other, some of his attitudes sound like cargo cult programming ideologies.
The worst thing is, there's really no way to know, until you hire him and take a look at his code. Or, I guess, see his OSS contributions, if possible.
-
@blakeyrat Look.
I realize that you love Visual Studio, Windows, TFS, Office, and C#. I happen to love Geany and vim [admittedly less powerful tools than MSVS], Linux, git, LibreOffice, and Python. I will concede Eclipse as trash but I'm not a Java programmer so I give not one iota about its lossage. You hate git, I hate TFS. Personal preference mostly, but at least I'll admit it instead of stating from fiat that OpenX is much better than the crapheap that is MS_Y.
Oh and on games: your blanket statements are invalid. I spent hundreds [ack probably thousands] of hours as teen playing Battle for Wesnoth, 0 AD, SuperTuxKart, and so on. Do I now have legitimate Steam library? Yes, but if you take a moment to compare the better open-source games with paid indie games you get a much more favorable comparison than if you slam a one-man project for not attaining to the visual might of Titanfall.
-
@pydsigner said in Is this candidate a genius or a potential disaster?:
I will concede Eclipse as trash but I'm not a Java programmer so I give not one iota about its lossage.
Have you tried IntelliJ? I've heard that's meant to be good.
-
@blakeyrat said in Is this candidate a genius or a potential disaster?:
@cartman82 I already covered that.
Yeah, sorry. NodeBB didn't load replies :/
Reformat only changes white space. If that causes confusion during code review, tell the reviewer to use a non-shitty diff tool that ignores white space.
The problem is caused by your shitty tools, not anything the Visual Studio user did.My tools can ignore white space just fine. The problem is, I can't parse it as easily visually. Discrepancies in lines (some formats generate more lines than others) don't help either.
Merging is hard. Try not to make it even harder, mkay? That's all I'm saying.
-
@RaceProUK So have I, and PyCharm (which I'd actually care about) looks pretty sharp. DataGrip, which I've actually had a chance to use, wasn't ready for release at version 1.0, however.
-
@pydsigner said in Is this candidate a genius or a potential disaster?:
Look.
I realize that you love Visual Studio,I don't, though.
@pydsigner said in Is this candidate a genius or a potential disaster?:
Windows
Nope.
@pydsigner said in Is this candidate a genius or a potential disaster?:
TFS
Certainly not. It's trash. It's just less trash than all the alternatives.
@pydsigner said in Is this candidate a genius or a potential disaster?:
Office
Office I'm ok with. I wouldn't say love.
@pydsigner said in Is this candidate a genius or a potential disaster?:
C#
Kind of, but it gets worse every year as the people in charge of C# add features that break the debugger, or break backwards-compatibility, or embrace harmful open source philosophies.
@pydsigner said in Is this candidate a genius or a potential disaster?:
You hate git, I hate TFS.
I hate both git and TFS. Please do not put words into my mouth.
@pydsigner said in Is this candidate a genius or a potential disaster?:
Oh and on games: your blanket statements are invalid.
Ok.
@pydsigner said in Is this candidate a genius or a potential disaster?:
of hours as teen playing Battle for Wesnoth,
Rip-off.
@pydsigner said in Is this candidate a genius or a potential disaster?:
0 AD
Never heard of it.
@pydsigner said in Is this candidate a genius or a potential disaster?:
SuperTuxKart
Ripoff.
@pydsigner said in Is this candidate a genius or a potential disaster?:
and so on
I'm disappointed you didn't say "frozen bubble" so I could point out that it, too, is a ripoff.
@pydsigner said in Is this candidate a genius or a potential disaster?:
Do I now have legitimate Steam library?
Huh? Relevance?
@pydsigner said in Is this candidate a genius or a potential disaster?:
Yes, but if you take a moment to compare the better open-source games with paid indie games you get a much more favorable comparison than if you slam a one-man project for not attaining to the visual might of Titanfall.
You should watch some more of the videos on my YouTube channel.
Now I have a serious question for you: have you ever sat a person down in front of VIM, given them a task to accomplish, and measured whether they could accomplish it? Were they able to complete it?
VIM is measurably terrible software from a usability perspective. You're welcome to like it, sure, but you can't call it "good software" because it's not. It's measurably not.
-
@tcotco
he reeks of the JS "ecosystem" mico-library bullshit. Run away, dude, run away :(
-
@Magus said in Is this candidate a genius or a potential disaster?:
@fbmac said in Is this candidate a genius or a potential disaster?:
@wft said in Is this candidate a genius or a potential disaster?:
giant god classes with thousands of tentacles
how many tentacles should a proper class have?
In software? Oh, probably as few as possible. In some cases you get lucky and only have one!
Japan? I don't think numbers are the right question.
怖いーーーーーー 0_O
-
@blakeyrat said in Is this candidate a genius or a potential disaster?:
@pydsigner said in Is this candidate a genius or a potential disaster?:
Look.
I realize that you love Visual Studio,I don't, though.
@pydsigner said in Is this candidate a genius or a potential disaster?:
Windows
Nope.
@pydsigner said in Is this candidate a genius or a potential disaster?:
TFS
Certainly not. It's trash. It's just less trash than all the alternatives.
@pydsigner said in Is this candidate a genius or a potential disaster?:
Office
Office I'm ok with. I wouldn't say love.
@pydsigner said in Is this candidate a genius or a potential disaster?:
C#
Kind of, but it gets worse every year as the people in charge of C# add features that break the debugger, or break backwards-compatibility, or embrace harmful open source philosophies.
@pydsigner said in Is this candidate a genius or a potential disaster?:
You hate git, I hate TFS.
I hate both git and TFS. Please do not put words into my mouth.
My apologies for not realizing that your definition of "I love
<x>
" is "I think<x>
is perfect" because that's not how I was using the verb.@pydsigner said in Is this candidate a genius or a potential disaster?:
Oh and on games: your blanket statements are invalid.
Ok.
@pydsigner said in Is this candidate a genius or a potential disaster?:
of hours as teen playing Battle for Wesnoth,
Rip-off.
@pydsigner said in Is this candidate a genius or a potential disaster?:
0 AD
Never heard of it.
@pydsigner said in Is this candidate a genius or a potential disaster?:
SuperTuxKart
Ripoff.
@pydsigner said in Is this candidate a genius or a potential disaster?:
and so on
I'm disappointed you didn't say "frozen bubble" so I could point out that it, too, is a ripoff.
Of what is Wesnoth a rip-off?
How can you blast open-source games and not be aware of one of the most successfully ambitious open-source games ever?
Did I claim that SuperTuxKart was not an obvious derivative of SuperMarioKart? All I claimed was that I played it a lot [and by extension, that it didn't suck].
I had much more interesting things to do with my life than play stuff like frozen bubble or Bejewelled or Candy Crush or any other entry in that category of uninspiring games.
@pydsigner said in Is this candidate a genius or a potential disaster?:
Do I now have legitimate Steam library?
Huh? Relevance?
I've played big-budget non-OSS games and still come back to the others.
@pydsigner said in Is this candidate a genius or a potential disaster?:
Yes, but if you take a moment to compare the better open-source games with paid indie games you get a much more favorable comparison than if you slam a one-man project for not attaining to the visual might of Titanfall.
You should watch some more of the videos on my YouTube channel.
Convince me.
Now I have a serious question for you: have you ever sat a person down in front of VIM, given them a task to accomplish, and measured whether they could accomplish it? Were they able to complete it?
Yes, they were.
VIM is measurably terrible software from a usability perspective. You're welcome to like it, sure, but you can't call it "good software" because it's not. It's measurably not.
<Ctrl+S><Alt+F4>
is more keystrokes than<Esc>:x
FWIW. That's measurable. I've done things with a few keystrokes in vim that I previously would have written a one-off script for. I don't consider Vim the best overall editor, but I do consider it the king of console editors. Of course if you think that all other software is terrible then it follows that Vim is as well.
-
@pydsigner said in Is this candidate a genius or a potential disaster?:
My apologies for not realizing that your definition of "I love <x>" is "I think <x> is perfect" because that's not how I was using the verb.
I don't give a shit what you think the word "love" means. I don't love any of those products. I don't really love any products, other than perhaps Skyrim.
@pydsigner said in Is this candidate a genius or a potential disaster?:
Of what is Wesnoth a rip-off?
I wish I could remember the name of it. I had it on my Mac Classic, release about 1995-1996-ish? Driving me nuts.
@pydsigner said in Is this candidate a genius or a potential disaster?:
How can you blast open-source games and not be aware of one of the most successfully ambitious open-source games ever?
I'm aware of Planeshift.
@pydsigner said in Is this candidate a genius or a potential disaster?:
Did I claim that SuperTuxKart was not an obvious derivative of SuperMarioKart? All I claimed was that I played it a lot [and by extension, that it didn't suck].
Games that are ripoffs suck. Things (in general) that are ripoffs suck.
@pydsigner said in Is this candidate a genius or a potential disaster?:
I've played big-budget non-OSS games and still come back to the others.
Sorry about your brain injury.
@pydsigner said in Is this candidate a genius or a potential disaster?:
Yes, they were.
Liar.
@pydsigner said in Is this candidate a genius or a potential disaster?:
<Ctrl+S><Alt+F4> is more keystrokes than <Esc>:x FWIW.
And therefore...?
@pydsigner said in Is this candidate a genius or a potential disaster?:
Of course if you think that all other software is terrible then it follows that Vim is as well.
Right; but there's levels of terrible and Vim is MORE terrible than most.
-
@blakeyrat Ah, Warlords II: https://en.wikipedia.org/wiki/Warlords_(game_series)#Warlords_II
Same game, just on a rectangular map instead of a hex map.
-
@blakeyrat said in Is this candidate a genius or a potential disaster?:
@blakeyrat Ah, Warlords II: https://en.wikipedia.org/wiki/Warlords_(game_series)#Warlords_II
Same game, just on a rectangular map instead of a hex map.
Too bad I actually played the real open-source clone of Warlords II (Lordsawar) and can tell you that the only similarities are that they're both turn-based fantasy tile strategy games.
-
@pydsigner said in Is this candidate a genius or a potential disaster?:
Too bad I actually played the real open-source clone of Warlords II (Lordsawar) and can tell you that the only similarities are that they're both turn-based fantasy tile strategy games.
Are there any open source games that aren't just ripoffs of commercial games? Even one? Christ.
-
@blakeyrat said in Is this candidate a genius or a potential disaster?:
I'm aware of Planeshift.
MMORPGs, blech. Since you seem unwilling to look up 0 AD:
Sorry about your brain injury.
Must have forgotten about that.
Liar.
Define "a person".
And therefore...?
Worse UX.
-
@pydsigner said in Is this candidate a genius or a potential disaster?:
@blakeyrat said in Is this candidate a genius or a potential disaster?:
I'm aware of Planeshift.
MMORPGs, blech. Since you seem unwilling to look up 0 AD:
Wow they made a ripoff of Age of Empire based on Maury Povich? That's unique I guess.
-
@blakeyrat said in Is this candidate a genius or a potential disaster?:
Are there any open source games that aren't just ripoffs of commercial games? Even one? Christ.
Wesnoth, 0 AD, Endgame: Singularity, Glest, Globulation 2, TORCS, Teeworlds, Frogatto, Lugaru....
-
@pydsigner said in Is this candidate a genius or a potential disaster?:
Lugaru....
The furry porn game.
-
@Grunnen said in Is this candidate a genius or a potential disaster?:
@dcon ok!
And is that useful to have all of that in a single class or is it ?
When he say "database wrapper", I thought it's automatically generated classes say those generated by Entity Framework or so.
There's certainly no point in trying to refactor machine generated code. :P
-
@blakeyrat said in Is this candidate a genius or a potential disaster?:
Are there any open source games that aren't just ripoffs of commercial games?
To be fair, lots of commercial games seem to be mostly ripoffs of other commercial games. There's really not that much originality out there.
-
@Grunnen I am sure @blakeyrat will be amused/enraged to hear that 'ASCII-only uber alles' was mainly a UNIX thing at first; prior to the spread of UNIX and it's influence on CP/M, MS-DOS, etc., most program code was stored in an OS-specific or even (in the case of most older interpreters) language-specific format.
ASCII wasn't even well supported by most systems in 1970, though that was more because IBM were being dicks about any standard that they didn't create, and a lot of other companies like Amdahl, Burroughs, Xerox (back when the dabbled in mainframes), and CDC figured that you couldn't go wrong by imitating Big Blue. The fact that DEC was actually using the 'standard' ASCII text format on the PDP-8 and PDP-11 lines was something of a peculiarity of theirs, and even the PDP-6 (and it's successor, the PDP-10) was only kinda-sorta using ASCII, depending on the OS the installation ran.
The crazy part is, the insistence on having files be a bag o' bytes, and using ASCII for text, was a step forward on the part of Thompson, and it was pretty much by accident; the existing PDP-7 software used ASCII, as did Multics (mostly), so he just took the easiest way out. Regardless of how it happened, though, it had the advantage that, while most other systems had some other native text format, most could still convert to and (to a lesser extent) from ASCII, making sharing files with a UNIX system, or between Unices on different platforms, far easier than most of the alternatives. Since pretty much every US manufacturer's in-house format was as crippled as ASCII was, or worse, this worked like gangbusters for UNIX, and by the late 1970s just about everyone else was copying that, especially the microcomputer folks (who had to work with whatever hardware they could get, which usually meant ASCII-oriented equipment). Since UNIX on the PDP-11 was a staple of university computing centers by that time (save those like MIT or Stanford that clung to their beloved 36-bit PDP-10s running whatever OS the school had brewed up themselves), all the new college grads expected the "bag o' bytes" type of file systems, so the momentum just kept building.
-
@pydsigner said in Is this candidate a genius or a potential disaster?:
I had much more interesting things to do with my life than play stuff like frozen bubble or Bejewelled or Candy Crush or any other entry in that category of uninspiring games.
The time for those come later, when you have conference calls.
-
@ScholRLEA said in Is this candidate a genius or a potential disaster?:
"bag o' bytes" type of file systems
It's also really hard to make better use of a filesystem than that. The structured storage approaches tend to work like particularly shitty crippled databases, and it's better to just stop trying to put that in the OS itself and instead put a proper DB on top.
-
@dkf While I certainly have my own ideas on that - as well as Ted Nelson's, of course - I agree that this is the usual result of a structured file system, yeah.
-
@ScholRLEA One of the systems I used as an undergraduate used structured storage. The problem is that the sorts of things that it is efficient to do with a disk and the sorts of things that a program wants to do when reading or writing a file aren't really very well matched. Even when data is able to be grouped into fixed size blocks at all, it's rare the natural block sizes exactly match those that the hardware supports. You end up having to either pack things (costing you performance and complexity) or you waste a lot of space.
-
@pydsigner said in Is this candidate a genius or a potential disaster?:
Touché.
If you really are new here, one thing you need to know about blakeyrat is that he puts forward his own personal opinions about how software should work as if they were universal, objective truth.
-
@wft said in Is this candidate a genius or a potential disaster?:
@fbmac said in Is this candidate a genius or a potential disaster?:
every time I saw a coding standard, it defined stupid shit like spaces vs tabs, and did nothing to increase the overall quality of the software written
This has a purpose, actually. You want your code formatted uniformly and all your developers to use the same formatting settings, because you want commits to be to the point. So they don't include unrelated shit with changes only to formatting. And yeah, corporate environment is a thing where there are very different people, with different level of indoctrination, so you want the policy enforced and not questioned much. You, as a team, have better purpose for your energy than petty formatting wars.
+1.
I don't care if it's spaces, tabs, or literal
\t
characters (well, OK, maybe that would be stupid)...I just care that they're all the same!
-
This post is deleted!
-
@antiquarian said in Is this candidate a genius or a potential disaster?:
If you really are new here, one thing you need to know about blakeyrat is that he puts forward his own personal opinions about
how software should workeverything as if they were universal, objective truth.</troll>