Skip to main content
70 votes

How is Agile model more flexible than the Waterfall model?

While it's been massively subverted over the years, the idea behind agile isn't that you deliver the same set of features faster. It's that you get things out to your users for feedback quicker and ...
Philip Kendall's user avatar
51 votes
Accepted

What advantage was gained by implementing LINQ in a way that does not cache the results?

What advantage was gained by implementing LINQ in a way that does not cache the results? Caching the results would simply not work for everybody. As long as you have tiny amounts of data, great. Good ...
nvoigt's user avatar
  • 8,445
42 votes

How is Agile model more flexible than the Waterfall model?

I think experts generally accept that "Waterfall" is a stereotype of certain ineffectual development practices. From the 60s into the 90s, I dare say the vast majority of software ...
Steve's user avatar
  • 11.7k
38 votes
Accepted

What does the author mean by casting the interface reference to any implementation?

Abstracting your class into an interface is something you should consider if and only if you intend on writing other implementations of said interface or the strong possibility of doing so in the ...
Neil's user avatar
  • 22.8k
30 votes

What does the author mean by casting the interface reference to any implementation?

The accepted answer is correct and very useful, but I would like to briefly address specifically the line of code you asked about: ISomeClass myClass = new SomeClass(); Broadly speaking, this isn't ...
Kamil Drakari's user avatar
30 votes

How is Agile model more flexible than the Waterfall model?

But Waterfall also lets you do the same thing (go back to the design and then write the code for it) Not really. Agile is a reaction to big project management. So the waterfall they are talking about ...
Ewan's user avatar
  • 79.9k
29 votes
Accepted

Can Just-In-Time compilation be considered a secure feature?

JIT compilation is risky because of the W^X violation: at runtime, it is possible to generate new code, similar to an eval() in dynamic languages. But being able to dynamically generate executable ...
amon's user avatar
  • 135k
25 votes

What advantage was gained by implementing LINQ in a way that does not cache the results?

What advantage did Microsoft hope to gain by implementing it this way? Correctness? I mean, the core enumerable can change in between calls. Caching it would produce incorrect results and open the ...
Telastyn's user avatar
  • 110k
16 votes

Implementing DDD: users and permissions

I have run into the same questioning and am posting the answer I have come up with because it might give some additional vision on the topic, even though the discussion took place a while ago (still ...
Qortex's user avatar
  • 261
15 votes

Implementing DDD: users and permissions

Authentication and Authorisation is a bad example for DDD. Neither of these things are part of a Domain unless your company creates security products. The Business or domain requirement is, or ...
Ewan's user avatar
  • 79.9k
14 votes

How is Agile model more flexible than the Waterfall model?

I think it's important to understand that the idea of the waterfall process, as most people understand it, was an error. I don't know exactly what went wrong but if you read the original waterfall ...
JimmyJames's user avatar
  • 28.9k
12 votes

How is Agile model more flexible than the Waterfall model?

The difference is what "in the middle of development" means. The Manifesto for Agile Software Development was a response to heavyweight, documentation-driven, command-and-control processes. ...
Thomas Owens's user avatar
  • 84.2k
11 votes

How are "registers" implemented in VMs?

JVM and .NET both employ "JIT"'s. These JITs take their respective byte code (both stack-based) and translate them into machine code for the processor they're on.  Thus, the same hardware that ...
Erik Eidt's user avatar
  • 34.4k
10 votes

Does the implementation of GDPR compliance per site make sense in terms of good practises?

GDPR is about end-to-end privacy. There's no way to implement it only on the browser's side. Every site has to do the work to make sure the personal information is treated with respect for privacy, ...
Joeri Sebrechts's user avatar
10 votes

How is Agile model more flexible than the Waterfall model?

This might be a subtle thing to point out, but I believe it lies at the heart of understanding the difference between agile and waterfall: But, in the middle of development, someone changes their ...
Flater's user avatar
  • 56.5k
8 votes

Can Just-In-Time compilation be considered a secure feature?

For programs written in some high-level language, there is always an execution environment necessary. This can be a Just-in-Time compiler, an Ahead-of-Time compiler, an interpreter, or a combination ...
Doc Brown's user avatar
  • 214k
7 votes
Accepted

Implementing DDD: users and permissions

It's sometimes difficult to distinguish between real access control rules and domain invariants borderlining on access control. Especially, rules that depend on data only available far into the ...
guillaume31's user avatar
  • 8,633
7 votes

Is implementations not being interchangeable and having to cast often a code smell?

How can I avoid these castings and improve the app's design? This looks like a candidate for use of generic types. A generic base could be written to provide basic workflow, though taking a type ...
Erik Eidt's user avatar
  • 34.4k
7 votes
Accepted

Forth: How do CREATE and DOES> work exactly?

So, I'm a little late to the game, but these questions (particularly about DOES>) were mystifying me as well, being new to Forth. Here is what I've learned and how I've implemented it: [TL;DR: "...
Jim Peterson's user avatar
7 votes

Use case for interface

If we don't know about [the] implementation, just the requirement specification, then go for interface. What that means is that you can sketch out an architecture by designing and writing the ...
Robert Harvey's user avatar
7 votes

Java interface design: where should I put a lot of duplicate code that will be used by all subclasses?

Java interface design: where should I put a lot of duplicate code that will be used by all subclasses? First, this is not interface design. This is implementation detail. Nothing outside Tuple needs ...
candied_orange's user avatar
6 votes
Accepted

Should quickselect modify the input array or not?

I would normally expect The algorithm makes a copy of the input array and fiddles with the copy. However, you might have very good reasons to go the other way: The array is very large and ...
Dan Pichelman's user avatar
6 votes
Accepted

How do you usually implement right triangles in programming

There is no "common approach", because this is not a requirement occuring so frequently that it needs a special standard. So pick a solution which suits your needs like the one you suggested: {x, y,...
Doc Brown's user avatar
  • 214k
6 votes

What is the definition of implementation in programing languages? What is CPython?

Think about how a human language works. In theory, there's some kind of document(s) that lays down what the rules are for what constitutes "English". There's a set of definitions for words, ...
Nicol Bolas's user avatar
6 votes

Java interface design: where should I put a lot of duplicate code that will be used by all subclasses?

It depends, but the usual alternatives are make it a static member of a separate utility class make it a member of a separate class (you will have to instantiate an object of that class somewhere) ...
Doc Brown's user avatar
  • 214k
5 votes

Forth: How do CREATE and DOES> work exactly?

Answering your questions in order. CREATE may allocate a new, empty data space. It then sets the "data field" of the new dictionary entry to HERE and the execution semantics to push the value of ...
Derek Elkins left SE's user avatar
5 votes

Anti-pattern? Double header and exposed implementation detail

What “multi-threading” are you using that makes malloc inefficient? Typically allocation and deallocation on the same thread has zero overhead and is a lot easier to handle than stack allocation. Just ...
gnasher729's user avatar
  • 47.5k
5 votes

Vanilla interface implementations. What should I call it?

While I think this is fundamentally opinion-based, here is how I would approach the problem. Typically, you base your naming on some characteristic features of your type. You are on the right track. ...
Greg Burghardt's user avatar
4 votes

Method requires concrete implementation of collection. Should I change all upstream methods to return concrete implementations?

I suggest adding a method to the library that populates a caller-supplied empty Map from the supplied query. Keeping things DRY, the getStrIntMap method would invoke this other method passing in a ...
Erik Eidt's user avatar
  • 34.4k
4 votes

Forth: How do CREATE and DOES> work exactly?

Download the book: Thinking Forth here... https://sourceforge.net/projects/thinking-forth/files/reprint/rel-1.0/thinking-forth.pdf/download?use_mirror=gigenet&download= A cleaner explanation is ...
Don Golding's user avatar

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