216

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/...


189

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++ Yes 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 ...


155

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 ...


114

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, ...


111

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 ...


106

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.


102

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 ...


101

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, ...


94

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”),...


92

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 ...


81

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 ...


78

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 ...


70

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" ...


64

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. ...


64

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 ...


63

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 ...


63

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 ...


61

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. Bugfix ...


56

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.


54

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.


53

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 Class methods 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 ...


52

I like this question. The following is from my head but I think it fits quite well. status is used to describe an outcome of an operation (e.g. success/fail). state is used to describe a stage in a process (e.g. pending/dispatched). I also like this definition: status is a final (resulting) state. It is quite clear when applied to programming. Much less ...


48

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 ...


47

Usually this is called a type signature. A type signature includes the function's return type, the number of arguments, the types of arguments, or errors it may pass back.


45

They are typically referred to as concrete classes. ...A concrete class is a class that can be instantiated, as opposed to abstract classes, which cannot.


45

You refer to technical debt. We all accrue technical debt in the products we develop over time; refactoring is one of the very common and effective ways of reducing this technical debt, though many companies never pay down their technical debt. These companies tend to find their software extremely unstable years down the road, and the technical debt becomes ...


45

It's a bit tough to say because these words are not well-defined. In common parlance, I think it's a bit atypical to call Node.js a framework, sure, but I'd have a hard time arguing as to why exactly it is not. This all gets dicey, and I often see really poor uses of language, so I'll be explicit and start from the bottom JavaScript is a computer language, ...


Only top voted, non community-wiki answers of a minimum length are eligible