Don’t get me wrong, I like Firebase — but with everything dev related, there’s always a good and bad side, with a pinch of annoying that no one really wants to talk about.
What is Firebase? It’s Google’s all-in-one cloud service, neatly packaged and delivered to developers who just want something up and running quickly. No need to worry about provisioning or elastic cloud structures. All you have to do is connect it to your front end and viola! everything just works.
While this is great for rapid prototyping, cost management can get out of hand if you’re not careful.
Personally, I’ve been working with Firebase for the past two years, at different product complexity levels. …
Angular itself doesn’t really suck. If you think it does, most of it is probably in your head. There is friction against the framework because it looks and works somewhat differently from what you’re used to. …
I’m not affiliated with Apple. I’m not an Apple person. I’ve never been an Apple person. But a few months ago, I got an iPad and thought heck, I might as well get the stylus.
Except it’s not called a stylus. With Apple, it’s called a pencil. Oh, how fancy of them.
I’ve always had the impression that Apple products are overtly expensive, which gives the brand a general public perception of it being much more elite than other technological alternatives.
Don’t get me wrong, but Microsoft has improved massively over the past decade, with other strong contenders like Samsung. In part, this is because a lot of them share the same, if not similar, hardware. …
Angular is easy — but it’s also hard at the same time.
The thing with Angular is that it’s a framework, which means that it comes as a complete package. Unlike React, which is just a single library, Angular is a collection of libraries organized and arranged in a way that it works as seamlessly as possible with one other.
When we start out, we often create some sort of to-do list app. But a to-do list doesn’t exactly cover everything that you need to know about something.
Below is a compiled list of topics and subjects that I’ve gathered (and summarized) to help you kickstart your Angular exploration journey, along with some helpful resource links. …
In programming, a first-class function is when a function is treated as a variable. This is special because it means that a function can be passed into another function as an argument.
Not all languages support a first-class function idea, and these are usually natively imperative languages like C. Java and C++ also didn’t use to support first-class based ideas.
Imperative programming tells a computer how to do something — it’s a set of linear instructions that are executed in order. …
Wix, Squarespace, Shopify — if you’ve ever watched some sort of tech-related video on YouTube, you would have heard these names in some form. They stalk you through various ad formats, trying to rope you with promises of being ‘code-free’, ‘easy’, ‘revolutionary’, and ‘most advanced platform’ in web development.
But as developers, we know better.
Over the years, I’ve tried my best to block these ads, but to no avail. Over the years, I’ve also had people ask me why I still bother to code if there’s Wix, Shopify, and Squarespace — which feels like a slap in the face.
In the past decade, code has become commoditized and cheap, creating large gaps in making a living wage and what the average Joe is now willing to pay. …
The decorator pattern works by extending an object’s behavior without changing the original object itself.
What exactly does this mean?
Imagine that you’ve just bought yourself a new phone. However, carrying the phone around in its current form feels risky. What if you drop it? What if it gets scratched? What if you only want to carry your phone with you and nothing else?
The solution to this is to get one of those phone cases that also doubles up as a wallet with card slots. Congratulations, you’ve just technically decorated your phone by extending its features. …
A composite pattern deals with the complexity of how objects are related to one another. According to the original definition,
[a composite pattern] allows you to compose objects into tree structures to represent part-whole hierarchies
But what does this mean? Let’s take a look at our cart object again. If we break it down, the entire cart can be composed of many ‘sub-items’ that can also exist as stand-alone items. The cart process involves multiple parts that may or may not be needed, depending on context and situational requirements.
In a composite pattern, an object can have a leaf and/or a composite. …
The bridge pattern is another ideological abstraction that keeps the boundaries of your code clean and separated. While it has similarities with the adapter pattern, it is not quite the exact same. The bridge pattern can be seen as an extension of the adapter pattern — or commonly known as the double adapter pattern.
Here’s what the adapter pattern looks like in normal human English:
The bridge pattern takes it one step further and creates an interface for both sides of the code. …
Traditionally, structural patterns are described as the thing that helps simplify the process of object composition. Its purpose is to help identify the relationship between different objects, making sure that if something changes within the system, it doesn’t force the entire system to change with it.
Let’s begin with the adapter pattern.
Imagine you have to build another cart solution for your boss. But there’s a caveat — you’re not allowed to change the original code that spits out the cart data. Why? Because no one knows how that change will impact the rest of the application. It’s a fragile piece of art that no one wants to touch, not yet, or ever. …