When to throw an exception?

My personal guideline is: an exception is thrown when a fundamental assumption of the current code block is found to be false. Example 1: say I have a function which is supposed to examine an arbitrary class and return true if that class inherits from List<>. This function asks the question, “Is this object a … Read more

What is an NP-complete in computer science?

What is NP? NP is the set of all decision problems (questions with a yes-or-no answer) for which the ‘yes’-answers can be verified in polynomial time (O(nk) where n is the problem size, and k is a constant) by a deterministic Turing machine. Polynomial time is sometimes used as the definition of fast or quickly. … Read more

What is a magic number, and why is it bad? [closed]

A magic number is a direct usage of a number in the code. For example, if you have (in Java): public class Foo { public void setPassword(String password) { // don’t do this if (password.length() > 7) { throw new InvalidArgumentException(“password”); } } } This should be refactored to: public class Foo { public static … Read more

Performance optimization strategies of last resort [closed]

OK, you’re defining the problem to where it would seem there is not much room for improvement. That is fairly rare, in my experience. I tried to explain this in a Dr. Dobbs article in November 1993, by starting from a conventionally well-designed non-trivial program with no obvious waste and taking it through a series … Read more

What’s the difference between passing by reference vs. passing by value?

First and foremost, the “pass by value vs. pass by reference” distinction as defined in the CS theory is now obsolete because the technique originally defined as “pass by reference” has since fallen out of favor and is seldom used now.1 Newer languages2 tend to use a different (but similar) pair of techniques to achieve … Read more

Learning to write a compiler [closed]

Big List of Resources: A Nanopass Framework for Compiler Education ¶ Advanced Compiler Design and Implementation $ An Incremental Approach to Compiler Construction ¶ ANTLR 3.x Video Tutorial Basics of Compiler Design Building a Parrot Compiler Compiler Basics Compiler Construction $ Compiler Design and Construction $ Crafting a Compiler with C $ Crafting Interpreters [Compiler … Read more

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)