What is The Solid Principle?

In this section, I will be Introducing you to the SOLID Principle. S.O.L.I.D is a mnemonic acronym that stands for:

  • S - Single Responsibility Principle.
  • O- Open-Closed Principle.
  • L - Liskov - Substitution Principle.
  • I - Interface segregation principle.
  • D - Dependency Inversion Principle.

S.O.L.I.D, which I will now refer to as SOLID, is a fundamental design principle that is very popular for OOP programming. Every Developer should understand all these principles as it is a key concept for any software engineer.

All design patterns and principles contribute greatly to writing not only good code but also clean code. However…


Hoisting is the conceptual understanding of the execution context in relation to the “creation” and “execution” phases. However, hoisting can be confusing because unlike what the name suggests, hoisting doesn’t move your code anywhere. The common understanding of hoisting is that variables and functions are transferred to the top of your code, but that is not true. The code’s physical location will remain where you wrote it in your text editor. To make things a little easier to understand, let me give you a brief recap of the JavaScript runtime environment.

Intro to JavaScript Runtime.

I want to start off simple. I’m going to…


It didn’t seem evident at the time, but it really was quite simple to set up authentication, or at least the basics of it. As most people are aware, as your application grows, it becomes increasingly more challenging to balance authentication.

I would usually recommend a third-party authentication or even a backend API like Firebase or Auth0, but for now, if you’re just building a small application, this will do.

First things first, I will assume that you’re pretty familiar with generators if you’ve made it far enough to be looking up authentication. Run the npx create-react-app package runner for…


It is a curious question, one that invokes plenty of critical thought though it was such a simple decision. Imagine this if you will; young man, late-night, falling further down the rabbit hole we call the internet. So much time wasted doing nothing but, It only took seconds for my browser to load a website that would completely change the direction of my life.

Before we begin, I need to add a bit of a back story for context. Don’t get me wrong I love computers, I built my own after all and, I have been known to go red-eyed…


Static Generate means that we Pre-generate a page during build time. This way, all HTML data that make up the content is already loaded into the page during the build time. By build, I mean that the app is pre-rendered during the app’s deployment.

After your app has been deployed, pages are prepared ahead of time. Allowing them to be cached by the server/ CDN(content delivery network) serving the app. Now when a client requests the server, the pages can be severed to the client if any incoming requests are being resolved.

Only inside the pages folder, we can use…


Definitions:

Idempotent — denoting an element of a set that is unchanged in value when multiplied or otherwise operated on by itself

If you’re familiar with JavaScript, you more than likely call hash tables Objects, in ruby, they are called hashes, and in python, they’re called dictionaries. Though how is this achieved? We can create objects such as the one below by using a hash function.

A hash function digests syntax, allocates memory with an associated address known as the key, and holds value.

When we want to set a key, like myObject.name, a hash function will generate something that…


Visual representation of the JS event Loop

The call stack and Heap won’t interfere with your day-to-day workflow. However, it is crucial to understand call stack and memory heap. They are foundational concepts that every software engineer should understand. Just keep in mind that the Stack and Heap are not exclusive concepts to JavaScript. Other low-level languages use such as C and C++ these languages use stack and Heap as well.

What is the Call Stack?

The call stack is responsible for keeping the flow of execution for our application. Without it, JavaScript wouldn’t know what to call or when.

Let’s review an example of how we…


Big-O programing wow, sounds scary right. Well, I’ve got good news for you Big-O is actually very simple to understand. To put it simply Big-O is just a way of talking about the efficiency of Algorithms. Lemme give you an example of Big-O Notation.

let number = 10

The Big-O of this would be just be O(1). Why O(1)? let me explain in further detail. O = the number of operations in a given function. Since our code above will only run once it is equal to 1 operation. Pretty simple right. Okay well, let's take it one step further.


The V8 Engine Logo
The V8 Engine Logo
Googles V8 Engine

Definitions

  • (AST) or “Abstract Syntax Tree” — is a way of representing the syntax of a programming language as a hierarchical tree-like structure
  • profiling (“program profiling,” “software profiling”) is a form of a dynamic program that measures, for example, the space (memory) or time complexity for a program, the instructions or the frequency and duration of function calls
  • A compiler is a unique program that processes statements written in a particular programming language and turns them into machine language or “code” that a computer’s processor uses.
  • Lexical — closely matching the meaning of the term in common usage. As its other…


Jest and ReactJS

TDD, what is TDD, and why is it important? TDD is, as you probably know, Test Driven Development. TDD Is Vital practice for many reasons. First, it forces attention to detail. We don’t want to double back over all our code to find out we have a syntax error. Secondly, testing our application helps us conceptualize what is going on behind the smoke and mirrors.

Now let me express a personal opinion when it comes to TDD. In my opinion, and I always keep an open mind when considering other perspectives, the most beneficial way to perform TDD is to…

Cameron J. Leverett

I love tackling new and exciting challenges and working with software because it’s consistently changing, which is exciting.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store