What does a good programmer's code look like?

2019-01-29 15:00发布

I am a hobbyist programmer (started with VBA to make excel quicker) and have been working with VB.NET / C#.NET and am trying to learn ADO.NET.

A facet of programming that has always frustrated me is what does 'good' look like? I am not a professional so have little to compare against. What makes a better programmer? Is it:

  • They have a better understanding of all the objects / classes / methods in a given language?
  • Their programs are more efficient?
  • The design of their programs are much better in terms of better documentation, good choice of names for functions etc.?

Put another way, if I were to look at the code of a professional programmer, what is the first thing that I would notice about their code relative to mine? For example, I read books like 'Professional ASP.NET' by Wrox press. Are the code examples in that book 'world class'? Is that the pinnacle? Would any top-gun programmer look at that code and think it was good code?

30条回答
疯言疯语
2楼-- · 2019-01-29 15:22

[Purely subjective answer]
For me, good code is a form of art, just like a painting. I might go further and say that it's actually a drawing that includes characters, colors, "form" or "structure" of code, and with all this being so readable/performant. The combination of readability, structure (i.e. columns, indentation, even variable names of the same length!), color (class names, variable names, comments, etc.) all make what I like to see as a "beautiful" picture that can make me either very proud or very detestful of my own code.

(As said before, very subjective answer. Sorry for my English.)

查看更多
叼着烟拽天下
3楼-- · 2019-01-29 15:23

Good code should be easily understood.
It should be well commented.
Difficult parts should be even better commented.

查看更多
祖国的老花朵
4楼-- · 2019-01-29 15:23

Good code is readable. You'd have no trouble understanding what the code is doing on the first read through of code written by a good professional programmer.

查看更多
该账号已被封号
5楼-- · 2019-01-29 15:23

Jeff Atwood wrote a nice article about how coders are Typists first reference: http://www.codinghorror.com/blog/archives/001188.html

When being a typist you always need to be elegant in your work, having strucutre and proper "grammar" is highly important. Now converting this to "programming"-typing would catch the same outcome.

Structure

Comments

Regions

I'm a software engineere which means during my education i've come across many different languages but my programming always "feel" the same, as my writing does on fekberg.wordpress.com, i have a "special" way for typing.

Now programming different applications and in different languages, such as Java, C#, Assembler, C++,C i've come to the "standard" of writing that i like.

I see everything as "boxes" or regions and each region has it's explaining commenting. A region might be "class Person" and inside this Region i have a couple of methods for properties, which i may call "Access Methods" or such and each property and region has it's own explaining commenting.

This is highly important, i always see my code that i do, as "being a part of an api", when creating an API structure and elegance is VERY important.

Think about this. Also read my paper on Communication issues when adapting outsourcing which explains in rough, how bad code can conflict, Enterpret as you like: http://fekberg.wordpress.com/2008/12/14/communication-issues-when-adapting-outsourcing/

查看更多
SAY GOODBYE
6楼-- · 2019-01-29 15:25
  • The best code has a certain elegance that you recognise as soon as you see it.
  • It looks crafted, with care and attention to detail. It's obviously produced with someone with skill and has an art about it - you could say it looks sculpted and polished, rather than rough and ready.
  • It's consistent and reads easily.
  • It's split into small, highly cohesive functions each of which do one thing and do it well.
  • It's minimally coupled, meaning that dependencies are few and strictly controlled, usually by...
  • Functions and classes have dependencies on abstractions rather than implementations.
查看更多
做个烂人
7楼-- · 2019-01-29 15:26

The list below is not comprehensive, but these are the things that I thought of in considering your question.

  • Good code is well-organized. Data and operations in classes fit together. There aren't extraneous dependencies between classes. It does not look like "spaghetti."

  • Good code comments explain why things are done not what is done. The code itself explains what is done. The need for comments should be minimal.

  • Good code uses meaningful naming conventions for all but the most transient of objects. the name of something is informative about when and how to use the object.

  • Good code is well-tested. Tests serve as an executable specification of the code and examples of its use.

  • Good code is not "clever". It does things in straightforward, obvious ways.

  • Good code is developed in small, easy to read units of computation. These units are reused throughout the code.

I haven't read it yet, but the book I'm planning to read on this topic is Clean Code by Robert C. Martin.

查看更多
登录 后发表回答