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 of code, especially in the call chain. You are much more constrained in how you refactor any method in the call chain.
Distributes knowledge about data/methods/...
C was never a subset of C++. The most obvious example of this is int new;. This has been true since C89 and C++98, and the languages have only grown further from each other as new standards have come out.
Should I stop using the term C/C++
If the answer to #1 is yes, how would I call a program that use a mix of C and C++?
A source file is written in ...
The term "scalar" comes from linear algebra, where it is used to differentiate a single number from a vector or matrix. The meaning in computing is similar. It distinguishes a single value like an integer or float from a data structure like an array. This distinction is very prominent in Perl, where the $ sigil (which resembles an 's') is used to denote a ...
Concurrency and parallelism are two related but distinct concepts.
Concurrency means, essentially, that task A and task B both need to happen independently of each other, and A starts running, and then B starts before A is finished.
There are various different ways of accomplishing concurrency. One of them is parallelism--having multiple CPUs working on ...
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 personally prefer is "utility computing", and that term describes best what it is all about: it is priced and used like any other utility, water, gas, ...
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 example of a domain could be something like "the automated machining of intricate parts using a high-speed rotating cutter." The software and hardware system that ...
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 languages have auxiliary structures to help with this. As @BernhardHiller notes in the comments, C# has enums with flags; Java has the EnumSet class.
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: recursive methods are a notable exception to this advice.)
For example, let's say I need to calculate the number of days between two calendar dates so I ...
You might be thinking of "Idempotent".
Idempotence is the property of certain operations in mathematics and computer science, that they can be applied multiple times without changing the result beyond the initial application.
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) some bits in a bitset and allows others to pass.
Are there any other type of "masks" besides bit masks in the IT domain?
Just off the top of my head, ...
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: binary codes of software instructions are altered for example because of physical interference (“please switch off electronic devices during take-off and landing”),...
According to Wikipedia, Internet Protocol Version 5 was used by the Internet Stream Protocol, an experimental streaming protocol.
The second version (of Internet Stream Protocol), known variously as
ST-II or ST2, distinguishes its own packets with an Internet Protocol
version number 5, although it was never known as IPv5.
The Internet Stream ...
The downstream services are the ones that consume the upstream service. In particular, they depend on the upstream service. So the front-end is downstream to the back-end because it depends on the back-end. The back-end can exist meaningfully without the front-end, but the front-end doesn't make sense without the back-end.
The dependency doesn't have to ...
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, some form of pseudocode, machine language and programming languages. Barring natural language and pseudocode, we refer to these representations as code (source ...
UPDATE: I've revised this answer. A number of good points were raised in the comments that deserved calling out.
If my class implements an interface then can I say that I'm following inheritance?
It is not entirely clear what you mean by "following inheritance". Let's ask a slightly different question?
What is inheritance?
When members of one type X ...
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 reason to disrupt the flow of conversation other than them wanting to be a clever know-it-all.
Arguing over the "algorithm" vs "code" ...
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 really be encapsulated in an object or a data structure. Sometimes, it may even be necessary to nest a bunch of objects to properly organize the data.
For a ...
They're not quite the same. The registers are the places where the values that the CPU is actually working on are located. The CPU design is such that it is only able to actually modify or otherwise act on a value when it is in a register. So registers can work logic, whereas memory (including cache) can only hold values the CPU reads from and writes to.
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 masterpiece of art called the treachery of images: the painting shows a pipe on a uniform background, and a caption in French "This is not a pipe". It ...
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-tuple or any other term borrowed from mathematics or software engineering carries with it a baggage of preconceptions which are confusing. A list with a single ...
The term hotfix is generally used when client has found an issue within the current release of the product and can not wait to be fixed until the next big release. Hence a hotfix issue is created to fix it and is released as a part of update to the current release usually called Cumulative Update(CU). CUs are nothing but a bunch of hotfixes together.
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 electronics with logical gates (AND, OR...) or transistors or in electromechanics with relays.
The short answer
an instance method knows its instance (and from that, its class)
a class method knows its class
a static method doesn't know its class or instance
The long answer
A class method is one that belongs to the class as a whole. It doesn't require an instance. Instead, the class will automatically be sent as the first argument. A ...
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 or occurring at the same time.
So T2 is guaranteed to be started and executed inside the time slice of T1. T1 "waits" for the ending of T2 and can continue ...
The two concepts are related, but different.
Concurrency means that two or more calculations happen within the same time frame, and there is usually some sort of dependency between them.
Parallelism means that two or more calculations happen simultaneously.
Put boldly, concurrency describes a problem (two things need to happen together), while parallelism ...