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

90% of brand marketing doesn’t even have common sense

01What ’s Changing and What’s Not Changing in Mar...

10 community operation experiences gained in 365 days with RMB 150,000!

Real cases and diligent exploration of community o...

How much does it cost to find an African to record a birthday blessing video?

In recent days, photos and videos of African blac...

Sharp under Foxconn’s thinking: the father of LCD or the king of low prices?

Since Foxconn took over Sharp in August last year...

How to arouse users’ interest in 15 seconds?

Suppose your company is holding a food tasting ev...

Only sticks to pests, not beneficial insects? Magic slime made by plants!

Popular Science Times (Intern Wang Yuke) Sticky t...

How do brands choose UP hosts on Bilibili for promotion?

Bilibili has special platform attributes. From a ...

Analysis of fresh food e-commerce operation strategy

Due to the epidemic, the fresh food e-commerce ma...

Analysis of Himalaya user operation strategy!

Himalaya has carved out a niche in the audio and ...

After the bonus period, you should take this complete guide to channel operation

The traffic dividend has passed, so how will traf...