Image for post
Image for post

There are many software design principles that you, as a developer, can learn and study. In this article, we are going to take a look at 5 key principles that make up the acronym SOLID.

These principles are meant to make the architecture of an application more flexible, scalable and maintainable. Implementing them in your work can also increase the overall complexity of the project.

Alright, the SOLID principles are the following:

  • Single Responsibility Principle
  • Open/Closed Principle
  • Liskov Substitution Principle
  • Interface Segregation Principle
  • Dependency Inversion Principle

Single Responsibility Principle

This principle establishes that a class should only handle one specific part of the application, and because of that, should only have one reason to change. …

In this article I will be talking about another data structure HashMap, so let’s start by understanding what a data structure is.

A Data structure is a collection of data that is organized in a way that gives you the ideal run time complexity for some operations, a data structure handles the data in a way that might be beneficial for specific cases and operations.

So we use data structures because it gives us a better performance under certain conditions, it is worth mentioning that a data structure does not cover all possible operations, usually, a data structure is really good at doing one thing but also has some drawbacks and you have to be aware of those, either it requires a lot of configuration, adds more complexity, some operations will be slower, more space in memory, etc. …

Image for post
Image for post

Building maintainable, reusable, and comprehensive applications is a complicated task since you have to consider the scope of the project, how much can scale and how complex can become, so implementing best practices since the start of the project is crucial.

Design patterns are a way to go if you want to follow fundamental concepts for solving particular problems. In software development design patterns are used to solve specific design problems and help you to keep your code clean but not necessarily simple since usually and depending on the pattern that is being implemented your codebase can become quite complex. Using design patterns means that you are implementing basic concepts of OOP such as inheritance, polymorphism, encapsulation, abstraction and SOLID principles together with a set of guidelines that construct the given pattern.

You probably have deployed your rails applications to Heroku, it is pretty simple and straight forward. But what about deploying your app to Digital Ocean, I found it a little bit more challenging and tricky.

We’ll go through step by step to deploy a rails app to Digital Ocean.

Let’s create a simple test app.

rails new test_app -d=postgresqlrails db:create

We’ll create a scaffold for Users.

rails g scaffold User name emailrails db:migrate

Create a repository on Github and push the project to the new repository.

git init
git add .
git commit -m “Initial commit”
git remote add origin “your origin”
git push origin…

Image for post
Image for post

Rails is a powerful framework that allows you to build robust, maintainable and complex projects, and I personally love using rails, but there are some aspects of rails that are not perfect and in this article, we are going to talk about something in particular. PERFORMANCE!!.

Rails is not considered a really fast framework and one of the reasons is that it uses an abstraction of SQL which is ActiveRecord.

There are many advantages about ActiveRecord. For example, it allows us to manipulate the data really easy without writing pure SQL queries. It also gives us a lot of helper methods out of the box to use in our Models. All of this is pretty handy but when you are building huge projects where you have thousands of records in your tables, ActiveRecord can play against you if it is not used with caution. …

Image for post
Image for post

If you are familiar with data structures you may have heard about a LinkedList.
In this article, we will create a singly LinkedList from scratch and explain how this data structure works and what it is useful for.

Let’s first illustrate the concept of a linked list.

In simple words, a LinkedList is a data structure that consists of a collection of data.

The values in a LinkedList represents nodes and each node contains a pointer to the next node. In a LinkedList, the data of each node can be anything. …

Do you think HMTL and CSS are easy to learn and they don’t need so much time to hone?. As a Jr. developer, it is so easy to think that HTML and CSS are not a big deal or something that you must worry too much about because
they are not programming languages at all.

In this article, I’ll share with you some tips that will help you to
improve your skills and realize that these technologies are so important in your career. …


Yair Fernando

I'm a passionate and motivated developer with three years of experience and a knack for creating software applications. I like the changing nature of the web

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