A system:
- It must react to its users (responsive).
- It must react to failure and stay available (resilient).
- It must react to variable load conditions (elastic).
- It must react to inputs (message-driven).
The Ask Formula is a series of surveys (or questions) designed to determine what a customer wants, along with customized sales language based on those answers to get that customer to buy. Think of it like a funnel. A funnel is a tube or pipe that is wide at the top and narrow at the bottom, used for guiding liquid or powder into a small opening. A survey (or question) funnel operates the same way. You start by asking big wide questions at first, and then those questions narrow, and narrow more, as you ask your customers simple, more precise questions about their situation; until you have enough information to speak to their specific wants, needs, and desires.
People don’t know what they want.
People are really good at telling you what it is they don’t want.
When leaders are below the line, they are closed and defensive, and when they are above the line, they are open and curious.
Once leaders develop self-awareness and locate themselves accurately below the line, they create the possibility for shifting, a master skill of conscious leaders.
Shifting is moving from closed to open, from defensive to curious, from wanting to be right to wanting to learn, and from fighting for the survival of the individual ego to leading from a place of security and trust.
Variable declarations using var
are treated as if they are at the top of the function (or in the global scope, if declared outside of a function) regardless of where the actual declaration occurs; this is called hoisting.
Block-level declarations declare bindings that are inaccessible outside a given block scope. Block scopes, also called lexical scopes, are created in the following places:
{
and }
characters)let
declarations are not hoisted to the top of the enclosing block; use let
to declare a variable but limit the variable’s scope to only the current code block.
JS uses two kinds of types: primitive and reference. Primitive types are stored as simple data types. Reference types are stored as objects, which are really just references to locations in memory.
There are five primitive types in JavaScript:
To me, legacy code is simply code without tests. I’ve gotten some grief for this definition. What do tests have to do with whether code is bad? To me, the answer is straightforward, and it is a point that I elaborate throughout the book: Code without tests is bad code. It doesn’t matter how well written it is; it doesn’t matter how pretty or object-oriented or well-encapsulated it is. With tests, we can change the behavior of our code quickly and verifiably. Without them, we really don’t know if our code is getting better or worse.
Four Reasons to Change Software: For simplicity’s sake, let’s look at four primary reasons to change software.
BEHAVIOR
The first value of software is its behavior. Programmers are hired to make machines behave in a way that makes or saves money for the stakeholders.