Is less code cleaner?

Is less code cleaner?

In my eyes, clean code is simple and easy to understand code. Not over-designed, with as few template files as possible and clear semantics. So, does this mean that the less code, the cleaner it is?

[[133965]]

I don't think so. Most of the time, less code tends to be more semantically ambiguous and harder to understand (and therefore harder to maintain).

When I was working and testing meta filtering with jBehave, I wrote code similar to the following:

  1. public Embedder configuredEmbedder() {
  2. Embedder embedder = super .configuredEmbedder();
  3. ignoreStoriesAndScenariosWithMetaInformationParameter(embedder, "ignore" );
  4. return embedder;
  5. }
  6. private   void ignoreStoriesAndScenariosWithMetaInformationParameter(Embedder embedder, String ignoreParameter) {
  7. embedder.useMetaFilters(Arrays.asList( "-" + ignoreParameter));
  8. }
  9.  
  10. In a subsequent discussion of the code, one of my colleagues said that he had just deleted some "unnecessary" private methods, so the code became like this:
  1. @Override  
  2. public Embedder configuredEmbedder() {
  3. Embedder embedder = super .configuredEmbedder();
  4. embedder.useMetaFilters(Arrays.asList( "-ignore" ));
  5. return embedder;
  6. }

Obviously, the method is shorter and the code is less. For us, using such a class may allow us to see at a glance what changes have taken place in this method while we work. But what if there is a new person joining the project, and this guy has never used jBehave before? For him, a longer code can actually get more information, even if he doesn't know how jBehave works, what a "meta filter" is, and what minus means - but at least he can understand what we want to achieve.

When I tried to explain my opinion, other developers agreed with me but said that the same effect can be achieved by adding comments. Yes, I totally agree, adding comments definitely works. It's just a matter of style. I personally don't like comments, but in this case, maybe comments are a better choice because we can use them to explain the connection between the meta filter code and the jBehave layer file.

So, the code becomes this:

  1. @Override  
  2. public Embedder configuredEmbedder() {
  3. Embedder embedder = super .configuredEmbedder();
  4. // ignore stories and scenarios with meta information parameter @ignore.  
  5. embedder.useMetaFilters(Arrays.asList( "-ignore" ));
  6. return embedder;
  7. }

Of course you can say that such a small example is not worth mentioning. However, I think the style of a project is very important. You can also find a common style by discussing specific examples. Maybe other developers will consider whether his code will confuse new colleagues and add comments instead of shortening the method to one line of code.

in conclusion

Clean code doesn't always mean less code. So, you need to weigh the trade-offs between writing more small methods and reducing the number of lines of code. I will discuss coding style in another post later.

Which solution do you prefer and why? Please leave your comments.

<<:  Microsoft and Touch Technology invest heavily in Windows Game Contest

>>:  Moore: Moore's Law will be valid for another 10 years

Recommend

Analyze the product logic behind NetEase Yanxuan!

NetEase Yanxuan is an e-commerce platform promote...

When product and operations disagree, who should you listen to?

Looking through the readers' comments, I foun...

Apple's Live Photos feature is actually a small video

To complement the new 3D Touch technology on the ...

What can we learn from Mi Meng's self-media entrepreneurship?

" An assistant only earns 50,000 yuan a mont...

Xinji SEO training: Optimize each internal page as the homepage

Usually when we build a website, we just do a rou...

Can we eat the green onion?

Every summer, it is the season for eating mushroo...

Is the Vernal Equinox the Earth’s exclusive right?

Xinhua News Agency, Tianjin, March 19 (Reporter Z...