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/...
The term 'payload' is used to distinguish between the 'interesting' information in a chunk of data or similar, and the overhead to support it. It is borrowed from transportation, where it refers to the part of the load that 'pays': for example, a tanker truck may carry 20 tons of oil, but the fully loaded vehicle weighs much more than that - there's the ...
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 ...
I think it rather falls along the lines of "All SDKs are/contain APIs but not all APIs are SDKs".
An SDK seems to be a complete set of APIs that allow you to perform most any action you would need to for creating applications. In addition an SDK may include other tools for developing for the platform/item that it is for.
An API on the other hand is just a ...
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 ...
There has to be a reason why these terms come together so often. While you should not tell your C teacher that his language is a subset of C++, there is some truth here. Others already have exposed your teacher's point of view. This is very nice (and illustrated with examples, etc.). But we don't live in an ivory tower, or a book.
Your big boss could not ...
Yes, the concepts are different.
A simulation is a system that behaves similar to something else, but is implemented in an entirely different way. It provides the basic behaviour of a system, but may not necessarily adhere to all of the rules of the system being simulated. It is there to give you an idea about how something works.
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.
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 ...
Here's a list of softies
Software developer - is an employee on the full-time payroll and does the job of implementing the requirements for the application. Developers skip around on different projects working as when directed by their employers.
Software consultant - is not an employee, and is brought in to provide advice (consultancy) as to how the ...
Is it because there is no formal input argument?
It is because the output depends on something that is not an input, namely the current time.
Why is the actual time of day not treated as the "input to the function"
Because you didn't pass it as a parameter. If you did pass it in as a parameter, the function would become an identity function on dates, ...
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 ...
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, ...
It's applying a temporary band aid to a large gaping wound. It's fixed for now, but it is going to cause even more problems later.
An example I've recently seen: You want a person named "Jim", to always appear first in an alphabetical list. To quickly solve it, you rename him to " Jim". This is a hack that will surely come back to bite you later.
According to Wikipedia it is a principle of software development.
In fact, Wikipedia refers to all of them as principles:
In software engineering, Don't Repeat
Yourself (DRY) or Duplication is Evil
(DIE) is a principle of software
KISS is an acronym for the design
principle "Keep it simple, Stupid!".
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 ...
I'm not a native English speaker either. But according to Wikipedia:
Edge case occurs at an extreme (maximum or minimum) operating parameter.
Corner case occurs outside of normal operating parameters, specifically when multiple environmental variables or conditions are simultaneously at extreme levels, even though each parameter is within the specified ...
They are very generic term actually. There is many way to interpret them, varying in the literature and how people see them. Take everything I say with a huge grain of salt.
Usually, an Epic comprise a very global and not very well defined functionality in your software. It is very broad. It will usually be broken down into smaller user story or feature ...
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.
This is obviously bad, right?
It makes the methods non-reentrant, which is a problem if they are called on the same instance recursively or in a multi-threaded context.
It means that state from one call leaks to another call (if you forget to reinitialize).
It makes the code hard to understand because you have to check for the above to be sure what ...
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 ...
API = Application Programming Interface
SDK = Software Development Kit
So the real difference is, that an API is no more or less than an interface to "some service", while an SDK is a set of tools/components/classes for a specific purpose. An SDK in fact presents you with an API to interface with. But you might use an API without having the underlying ...
It’s called a duck, from a legend that allegedly comes from Interplay’s Battle Chess:
This started as a piece of Interplay corporate lore. It was well known that producers (a game industry position, roughly equivalent to PMs) had to make a change to everything that was done. The assumption was that subconsciously they felt that if they didn’t, they weren’...
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 ...
Heap pollution simply implies that you have "bad stuff" in your heap. It is an analogy to (for example) water pollution which is where you have "bad stuff" in the water.
Specifically, the bad stuff here is objects of type A where you ought to have objects of type B ... according to the static typing. Some hole in the static typing is allowing the bad ...
If at all possible, rather than focusing on the boolean value, you should try to describe what it represents. Some examples:
a service? start/stop instead of started=true/false
a special effect in a game engine? on/off
an electrical signal? set/reset
This way you'd talk in more natural terms. And thus in your meeting, instead of "truthifying foobar ...
In software development life cycle (SDLC), artifact usually refers to "things" that are produced by people involved in the process. Examples would be design documents, data models, workflow diagrams, test matrices and plans, setup scripts, ... like an archaeological site, any thing that is created could be an artifact.
In most software development cycles, ...