3

I notice that a property of codebases that I like hacking on is that it's quick to find the relevant code for some feature, without knowing much about the code base at all. For example, searching for a label in the GUI, and immediately hitting the code that implements that feature.

This seems to be in direct tension with abstraction layers, where the label is probably buried behind an I18N module, and the business logic is probably further removed in an MVC framework. (It can be mitigated by including GUI labels in comments though, for example.)

It's obviously part of maintainability, but is there a name for this specific, desirable, property?

  • Maybe "transparency"? – Greg Hewgill Apr 19 '13 at 2:49
  • 2
    "Well-organized"? – 9000 Apr 19 '13 at 3:09
  • I don't think it's a question of organisation. Highly abstracted designs can be well organised, but not very searchable or easy to read. – Steve Bennett Apr 19 '13 at 7:09
  • This is a great question. – Rocklan Apr 20 '13 at 8:18
  • 4
    "What is the name of this thing" questions are off-topic. These are poor questions for the same reasons that "identify this obscure TV show, film or book by its characters or story" are bad questions: you can't Google them, they aren't practical in any way, they don't help anyone else, and allowing them opens the door for the asking of other types of marginal questions. See Also Let's Play the Guessing Game – gnat Nov 21 '13 at 0:59
4

Discoverability or learnability could be applied to this concept. But note that making something discoverable might be optimizing it for first time users. Look here for a related discussion.

  • 1
    Yeah, interesting point re: first time users. I think with the enormous amount of code readily available these days, that's a much more important consideration than it used to be. (ie, I have to interact with much more unfamiliar code than I used to.) – Steve Bennett Apr 22 '13 at 4:00
3

Although I do not believe that there is a word specifically for this concept, the ease of use of these codebases can often be attributed to several causes, all of which have terms:

  • Well-documented - Which includes comments, external documentation, internal parsable documentation (like JavaDocs), and indicative variable names.
  • Well-organized - Shows design and planning
  • Readable - Besides resulting from the other two, this can be an intentional design choice of certain programming languages, such as Python, who make it a core "pillar" of their design ideology.

Not the answer you're looking for? Browse other questions tagged or ask your own question.