Tag Info

New answers tagged

3

I suspect that the C language choose the continue statement because of its association with loops from FORTRAN, and many languages (C++, Java, C#) owe some lineage to C. (And FORTRAN is pretty old but maybe as @GilbertLeBlanc notes, perhaps FORTRAN got CONTINUE from somewhere else like COBOL?) The CONTINUE statement in FORTRAN is commonly used at the end ...


1

In C# and any other language that supports interfaces and doesn't allow them to cannot implement anything, the answer is easy: I2 extends I1. In Java though, things get messy. Interfaces can implement default methods. So the answer is "it depends". If I2 is implementing any of the methods defined by I1, then it's (at least partially) implementing it. ...


3

In C# and Java: A class may extend another class. A class may implement some interfaces. An interface may extend another interface.


3

I would say extends is the appropriate terminology, because interfaces cannot implement anything.


26

When people say "X doesn't compose", what they mean by "compose" really just means "put together", and what and how you put them together can be very different, depending on what exactly "X" is. Also, when they say "doesn't compose", they can mean some slightly different things: You can't put two Xs together at all, period. You can put two Xs together, ...


17

Composability means that you can easily and reliably combine program components together to produce larger components and more complex functionality. Some things that help make components more composable: Idempotence. An idempotent function will always produce the same output or side effects, if called multiple times with the same parameter values. This ...


0

In old line oriented basic system there was an interpreter command LIST to show the programmcode So LIST produces a source code LIST-ing


0

The sponsors, developers, and users should be able to maintain a constant pace indefinitely. A sprint means... run at full speed over a short distance. Using the term sprint is still compatible with the (Agile) ability to maintain a constant pace. A whole group maintaining a constant pace does not necessarily mean that they are all moving at the ...


2

From my experience in support at a large software company the two terms are unrelated. Bug fix is an action on the source code, it is a code change or set of changes to address a reported code defect (a bug.) A hotfix is generally a patch or update for clients / deployed systems but more specifically they are patches which are:- not released to a ...


2

A bugfix is just that: a fix for a bug. This could happen at almost any time in a product's lifetime: during development, during testing, or after release. A hotfix can be one or more bugfixes. The important part is the hot, which refers to when it is applied. Originally, it referred to patching an actively running system (aka, 'hot'). It's grown to more ...


5

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


0

The way we work with Epics, Stories and Features is as follows Early in the project cycle, we come up with Epics. These are very high-level, almost marketing-centric, bullet-points of functionality. The sort of thing that you can use in an executive summary, such as, Our new web site will allow customers to browse products, view availability and ...


-1

I don't see these necessarily as opposites. I think of over-engineering as providing options or provisions for capabilities that are not yet or not yet know to be necessary. For example, and method parameter that only has one value that is ever used; an abstract class that has only one subclass. These things add complexity to maintenance and cost time ...


1

One possible solution: Upon execution, create a temporary file and store the status in it. Useful to keep logs as well. Delete the file every time new execution starts and you no longer need it.


1

"over engineering" means improving a solution when the cost of improving it is higher than the benefits of improving it. And "under engineering" means not improving a solution, when the benefits of improving it would outweigh the cost. Now guess what "right engineering" means... Since a "simple" solution was mentioned, and was somehow correlated to ...


0

I call the two extremes described "under-engineering" and "over-engineering" They seem to refer to the sentence in the link above: In my experience there are two developer character type extremes: the ones that always seek and settle with the simplest solution, and the ones that seek the perfect solution, perfect in terms of efficiency, readability ...


7

When you're doing too much design to solve a basic problem, you're over-engineering. For example, when you're using an abstract factory pattern “just in case” in order to create a very simple object where the business logic is easy enough to fit in four-five LOC, you're over-thinking the design (and violating KISS and YAGNI). Note that it doesn't ...



Top 50 recent answers are included