Live data from Hacker News

Are software engineering “best practices” just developer preferences?

floverfelt.org

231–240 of 369 posts

Re: Are software engineering “best practices” just developer preferences?

#231
post #205
post #60

> How can Software Engineers call themselves engineers when there’s no rules, governing bodies, or anything to stipulate what true Software Engineering is? We call ourselves software developers in Canada. According to Canadian engineering[1]: The "practice of engineering" means any act of planning, designing, composing, evaluating, advising, reporting, directing or supervising, or managing any of the foregoing, that…

I aggressively refuse to call myself an engineer. Programmer is fine. Developer is better, because programming is only a piece of it. Y’all can call yourselves whatever you like, but inside I’m thinking you retconned an industry insider euphemism into a non-existent sub-type of engineering, by protesting all the ways you apply rigor to what we do.

Well crap, I guess I’m going to have to burn my diploma that clearly says I’m an electrical engineer.

Re: Are software engineering “best practices” just developer preferences?

#232

Earlier quoted context omitted.

But here's the thing: aren't most alternatives to global, some other kind of global state anyway, but possibly better managed?

Singletons come to mind as being a better alternative in languages that can do that sort of thing.

Singleton is just a fancy name for a global.

Re: Are software engineering “best practices” just developer preferences?

#233

There is value in predictability, even if it stems from someone else's preferences. Current home wiring requires you put wires in the wall at (I think) between 10 and 20 cm from the border, and a small number of cm inside the wall. This means you only have to check that zone, and can use detectors, to find the wires. My home is from the 1950's. Some wires go diagonally from top left to bottom right at the other side…

In many countries this is coded (mandated by standards), it is not a best practice.

Re: Are software engineering “best practices” just developer preferences?

#234
post #216

Earlier quoted context omitted.

What of those who graduated from engineering programs taught at engineer colleges? Lots of people in other engineering disciplines build stuff with less rigor than is used to build software. Maybe load test it in Fusion 360 before sending the file to be milled. And lots of software companies test their stuff quite rigorously. People who write software have imposter syndrome. Other disciplines are not building things…

> What of those who graduated from engineering programs taught at engineer colleges? We are the actual Engineers. For US-Based IT workers, that means a degree from an ABET [1] backed institution with a traditional undergrad and graduate programs. Anyone else calling themselves an "engineer" while doing IT work are not. In addition: Readers need to remember this isn't reddit and downvoting comments with facts you do n…

I would trust someone graduating with CS degree from non-ABET accredited Stanford rather than someone from ABET-accredited CS program of Athens State University.

Re: Are software engineering “best practices” just developer preferences?

#235

Earlier quoted context omitted.

But here's the thing: aren't most alternatives to global, some other kind of global state anyway, but possibly better managed?

Almost assuredly better managed. There are no reasons to manage state on the global level apart from laziness.

Isn't Redux doing this exact thing?

Re: Are software engineering “best practices” just developer preferences?

#236

Earlier quoted context omitted.

But here's the thing: aren't most alternatives to global, some other kind of global state anyway, but possibly better managed?

Singletons come to mind as being a better alternative in languages that can do that sort of thing.

People also bash singletons, so you can't really win.

You can get issues with a singleton being accessed for the first time from multiple threads at once, for example, so you end up with more than one instance being created or a situation where one thread triggers the creation and another accesses before it has been fully initialized, depending on the code.

Re: Are software engineering “best practices” just developer preferences?

#237
post #110

Eh, kinda. Calling something a "best practice" is basically an appeal to authority. It means, "this is the right way to do things, for reasons I don't have time to explain." There are times when that's appropriate. But really, "best" and "right" are highly situational. Any rule of thumb, even the most basic and uncontroversial, has a situation where it doesn't apply. I was part of a discussion on a mailing list years…

> Calling something a "best practice" is basically an appeal to authority. If presented on its own, but then, any conclusion presented on its own without supporting context and analysis is the same. > But really, "best" and "right" are highly situational A description of a best practice that doesn't provide a sufficiently precise description of the situation to which it applies as a best practice is generally inappro…

Even worse are people that talk of "code smells", applying their personal opinion of style in a judgmental and often unjustifed way.

Re: Are software engineering “best practices” just developer preferences?

#238

> Java is infamous for its verbosity. [...] This paragraph highlights something I've been saying for ages. Most criticism of Java needs to be directed towards Java programmers and not the language itself. The language allows you to simply make a class. You're not required to make an interface and then make a class that implements it, and yet, Java programmers do it anyways and then criticize the language for being ve…

Very true but Java devs tend to have limited perspective and flexibility. If you get rid of the cruft it’s a fine language.

Re: Are software engineering “best practices” just developer preferences?

#239
In your example, read the spring manual. You need the inference to help spring generate proxies for your service class. You could use cglib to remove this requirement but it's the way the spring API has been for ages. Also using an interface let's you easily mock things out and write dummy test implementations. Pretty valuable.

Re: Are software engineering “best practices” just developer preferences?

#240
The phrase “best practice” is a sure fire way to signal “I don’t know what I’m talking about.” A lot of times these best practices are really good ideas. But misapplying them by rote can be more dangerous than ignoring them.
Post reply on HN