[-] lysdexic@programming.dev 17 points 1 month ago

good: Add foo interface.

Another commit style is summarizing what a commit does. In this case it would be someting like:

Adds foo interface.

I think this style is more in line with auditing code.

5
28
CPU Flame Graphs (www.brendangregg.com)
8
5
submitted 2 months ago* (last edited 2 months ago) by lysdexic@programming.dev to c/nodejs@programming.dev
7
When Bloom filters don't bloom (blog.cloudflare.com)
5
5
12
83
55
Code Smells Catalog (luzkan.github.io)
5
11
[-] lysdexic@programming.dev 16 points 5 months ago

On all the agile projects I’ve worked on, the teams have been very reluctant to make a specification in place before starting development.

I don't think this is an Agile thing, at all. I mean, look at what Agile's main trait: multiple iterations with acceptance testing and product&design reviews. At each iteration there is planning. At each planning session you review/create tickets tracking goals and tasks. This makes it abundantly clear that Agile is based in your ability to plan for the long term but break/adapt progress into multiple short-term plans.

[-] lysdexic@programming.dev 16 points 8 months ago

${CORPORATION} has profited off of Redis without giving much back (...)

I don't understand this blend of comment.

If you purposely release your work as something anyone in the world is free to use and change to adapt to their own personal needs without any expectation of retribution or compensation, why are you complaining that people are using your work without any retribution or compensation?

More to the point, why are you singling out specific adopters while leaving out the bulk of your community?

It makes absolutely no sense at all.

[-] lysdexic@programming.dev 16 points 11 months ago

For those who want a ready-made set of .gitattribute files you can simply drop on your project, here's this fancy GitHub link.

https://github.com/gitattributes/gitattributes

Once you add a .gitattributes file to your project, make sure you push a commit that re-normalizes all relevant files:

git rm --cached -r .
git reset --hard
[-] lysdexic@programming.dev 17 points 1 year ago

Because Microsoft will eat your ass in your sleep

So Microsoft has access to Firefox's source code. So what? Isn't the point of a FLOSS project that your source code should be made available to everyone?

[-] lysdexic@programming.dev 14 points 1 year ago* (last edited 1 year ago)

From the article:

(...) but recently, another type of criticism seems to be on the rise.

The code that I suggest is too verbose. It involves too much typing.

This reads like a one-sentence strawman. Describing code as "too verbose" is really not about the risk of carpal tunnel syndrome. It's about readability and cognitive load.

The blogger seems to almost get the point when he writes the following:

In short, the purpose of source code is to communicate the workings of a piece of software to the next programmer who comes along. This could easily include your future self.

The purpose of source code is to communicate (...) to the next programmer who comes along.

If you make the mistake of going the "enterprise quality java code" meme approach, you're making the next programmer's life needlessly harder.

The blogger then tries to make his case with verbose code, and makes the following statement:

Which alternative is better? The short version is eight lines of code, including the curly brackets. The longer version is 78 lines of code. That's ten times as much.

I prefer the longer version. While it takes longer to type, it comes with several benefits. (...)

This is yet another strawman. The longer version is awful code, not because it's longer but because it's needlessly jam-packed of boilerplate code. Ignorign basic things like interfaces and contracts, It's been proven already that bugs in code are directly proportional to the number of lines of code, and thus the code the author prefers is likely to pack ten times more bugs.

The shorter code in this case would not be the 78-loc mess that the author picked as the thing he prefers. The shorter code in this case would be something like onboarding the project onto Project Lombok to handle all-args constructors, property methods, and even throw a builder in for free. This requires onboarding Lombok to the project, and add two annotations to the short example. Two lines of code, done.

After the blogger fails to make his case, he doubles down on the typing non-sequitur:

Perhaps you're now convinced that typing speed may not be the bottleneck (...)

This is a blog post that fails to justify a click. It's in the territory of "not even wrong".

[-] lysdexic@programming.dev 15 points 1 year ago

The optimization I'm the most proud about was when I worked on a legacy project whose end-to-end builds took around 1 hour. After spending some time working on its architecture, project layout and build system, I managed to get the full end-to-end builds to take 10 minutes, and incremental builds to be almost instant.

What makes me the most proud about this project is that the technical debt plaguing the legacy project was directly and indirectly the reason why half a dozen of my team members burned out and quit the company. After that point my remaining team members started to be far less stressed and team velocity skyrocketed, just for the fact that the thought of iterating over a bugfix and posting a pull request didn't cost at least one hour, and sometimes two or three.

[-] lysdexic@programming.dev 16 points 1 year ago

I get it that the project isn't getting work done on features, but it bothers me how the author tried to criticize basic code quality improvements such as fixing typos. I don't know if the author is an active contributor to the project, but I think he shouldn't really be criticizing the ones that actually contribute, wether their contributions are big or small.

[-] lysdexic@programming.dev 15 points 1 year ago

Having fun when programming should be much more important than having correct or fast code (...)

That's only remotely reasonable if you're a weekend warrior that messes with coding as a pastime. Even so, I'm not sure what fun you can extract from dealing with slow, broken code.

[-] lysdexic@programming.dev 15 points 1 year ago

I would think you would try to perfect what you have instead of making new ones all the time.

Perfecting what you have often leads to a completely different language. See C vs C with classes which ended up being C++.

There is absolutely no problem with creating new languages. These are often designed with specific features in mind, and the success cases often offer features that are in high demand. Take for instance node.js, and how its event loop makes it a near ideal language for network-heavy applications that run on a single thread.

[-] lysdexic@programming.dev 17 points 1 year ago

I think there's context missing from that story. Diagrams do not trigger disgust. At best, making superfluous and time-wasting demands in the context of trivial tasks that add nothing of value and achieve nothing but wasting time and adding overhead can often lead managers to frown upon them.

view more: ‹ prev next ›

lysdexic

joined 1 year ago
MODERATOR OF