227
votes
Accepted
Is there a name for the (anti- ) pattern of passing parameters that will only be used several levels deep in the call chain?
The data itself is called "tramp data". It is a "code smell", indicating that one piece of code is communicating with another piece of code at a distance, through intermediaries.
Increases rigidity ...
115
votes
What is a domain?
The domain is the real-world context in which you're attempting to solve a problem using software. Each domain comes with expertise, vocabulary and tools that are part of that domain.
A specific ...
113
votes
Accepted
Is cloud computing mainly just a marketing term?
The distinguishing feature of "cloud computing" is indeed the way that it is marketed, in particular, the way that it is priced.
Another synonym for "cloud computing" that I ...
110
votes
Is there a name for the (anti- ) pattern of passing parameters that will only be used several levels deep in the call chain?
I don't think this, in itself, is an anti-pattern. I think the problem is that you are thinking of the functions as a chain when really you should think of each one as an independent black box (NOTE: ...
106
votes
Accepted
What is the name for storing / packing many boolean states into one number?
It's most commonly referred to as a bit field, and another term you'll often hear is bit masks, which are used to get or set individual bit values or the entire bit field at once.
Many programming ...
100
votes
Why are bit masks called "masks" and what purpose do they serve?
A mask (of the facial variety) is something that covers up some parts of your face and lets other parts show through. The terminology is used by analogy in computing: a bitmask covers up (filters out)...
94
votes
Accepted
Software bug vs. software corruption
Software corruption is the contrary of software integrity. It's the same thing as data corruption, except that the data is the software code.
It can affect:
the software binary stored in memory: ...
82
votes
Difference between Algorithm and Code
Algorithm and code are different, but related things. The relationship is simple: Code expresses algorithms.
The same algorithm could be expressed in different languages, including natural language, ...
73
votes
Is there a name for the (anti- ) pattern of passing parameters that will only be used several levels deep in the call chain?
BobDalgleish has already noted that this (anti-)pattern is called "tramp data".
In my experience, the most common cause of excessive tramp data is having a bunch of linked state variables that should ...
72
votes
Accepted
Difference between Algorithm and Code
In short, while there are differences in the specific meaning of the words, that civil engineer was being needlessly pedantic and balking at you not using his preferred word. There was no justifiable ...
65
votes
What does "representing" something in memory mean in OOP?
This question is not specific to software engineering: it applies to all disciplines working with information.
In 1929, the Belgian surrealist painter René Magritte explained it very intuitively in a ...
64
votes
Accepted
What term describes a list of exactly length 1?
Do not come up with a new word. Your name is perfectly fine: It is unambiguous and specific and consequently leaves no doubt to the reader what you are talking about.
By contrast, singleton, unary, 1-...
62
votes
Why is the term "string" so often abbreviated as "sz"?
Its a variable naming convention called Hungarian Notation. It was common in the 90's, and notably used a lot by Microsoft in their Windows API docs. The idea is to prefix variables with hints about ...
56
votes
Accepted
Is there terminology for "true"ing, "false"ing, and toggling a boolean?
Setting a value to true is setting it
Setting it to false is clearing it.
Changing the current value is toggling it.
You can also use "setting it to true" and "setting it to false", of course.
55
votes
Why are bit masks called "masks" and what purpose do they serve?
A bit mask is used to mask some bits of a bit field while exposing others:
initial value: 011011001
bit mask.....: 111110000
result value.: 011010000
This has been used before computing in ...
48
votes
The meaning of asynchronous vs synchronous
I would like to give you an answer which is directly related to those definitions you found. When one task T1 starts a second task T2, it can happen in the following manner:
Synchronous: existing ...
45
votes
Accepted
What are "golden files"?
A "golden file" is the expected output of some test (usually automated), stored as a separate file rather than as a string literal inside the test code. So when the test is executed, it will read in ...
44
votes
Is a memoized pure function itself considered pure?
Yes. The memoized version of a pure function is also a pure function.
All that function purity cares about is the effect that input parameters on the return value of the function (passing the same ...
43
votes
Accepted
If a function mutates outer state during execution but reverts the outer state into original state after execution, does it still contain side effect?
Well, at least it is a temporary side effect.
You may notice the difference to the fully side-effect free version when you run your program in a multi-threaded context.
Since your case involves ...
41
votes
What is a domain?
It simply means the problem space you are working in. For example, if you were building an e-commerce website your domain would be "e-commerce" and would involve the processes associated with your ...
39
votes
Which way are downstream and upstream services?
The best way to think about this is to think of a river.
The downstream part of the river cant get any water unless it comes from upstream i.e. downstream is dependent on upstream for its water.
If ...
39
votes
Is there a name for the (anti- ) pattern of passing parameters that will only be used several levels deep in the call chain?
I am not aware of a specific name for this, but I guess it is worth to mention that the problem you describe is just the problem of finding the best compromise for the scope of such a parameter:
as a ...
39
votes
Why are bit masks called "masks" and what purpose do they serve?
Bitmasks are terribly old. I haven't been able to find a reference to the first one, but they were certainly popular by the advent of 8-bit processors, and likely were also used in 4-bit processors.
...
34
votes
Is there a common term for a fixed-length, fifo, "push through" array or list?
This sounds a lot like a circular buffer or ring buffer. It meets most of the criteria:
It has a fixed size of items.
They don't have to be a specific value at the start, but they could be ...
33
votes
Accepted
Definition of "functor"; Haskell vs. C++
The two meanings are unrelated.
The Haskell community (and really the Functional Programming community in general, and even the general programming community beyond FP) uses the term Functor in the ...
33
votes
Accepted
What does "set" mean in programming languages like C#?
This question is one of English semantics, not programming, which initially urged me to vote to close this question as being off topic.
However, because "set" is notoriously the word with ...
32
votes
Accepted
Technical term to denote opposite of dependency injection?
Is "tight coupling" an adequate term that stands as an antonym to DI?
No. Tight coupling is much more than what dependency injection deals with.
Dependency injection externalizes a ...
30
votes
What term describes a list of exactly length 1?
There is as far as I know, no widely accepted term in SW engineering to described a list with exactly one element
In mathematics, and more precisely in the set theory, a set with only one element is ...
Only top scored, non community-wiki answers of a minimum length are eligible
Related Tags
terminology × 769object-oriented × 37
design-patterns × 30
programming-languages × 28
naming × 28
history × 26
language-agnostic × 25
design × 24
architecture × 22
java × 21
testing × 20
documentation × 20
c++ × 17
javascript × 17
algorithms × 15
programming-practices × 15
api × 14
definition × 13
functions × 12
database × 11
python × 11
c# × 10
c × 10
web-applications × 10
functional-programming × 10