Image for post
Image for post
image from osnews.com

Good developers are defined by the quality of their codes. In the software industry, writing good code means saving the money that may be invested in testing, updating, extending or fixing bugs. In this article, I will show you real-life examples of some techniques and ideas that will help you to clean up your legacy code and refactor it to make it more robust and modular. These techniques will not only help you to refactor your old code but will give you great ideas as to how to write clean code from now on.

What Is refactoring and why do we need It?

Refactoring refers to techniques and steps that help you to write clean code. This is important for other developers, who then will be able to read, extend and reuse the code without the need to edit much. …


Code smells are a set of common signs which indicate that your code is not good enough and it needs refactoring to finally have a clean code. In this article, I am going to explain the code smells with real-life examples from real projects on GitHub and show you the best way to refactor these smells and clean things up. I also suggest you read this article afterward. “Advanced Coding Skills, Techniques, and Ideas

- Duplicated Code and Logic Code Smell
It is common that developers are kind of lazy, which is very good in so many ways; however, being lazy and copy/past lines of code is not a proper behaviour. …


Conceptual integrity, cohesion, abstract data type, coupling, information hiding, rule of least astonishment, and more

Image for post
Image for post
Photo by Pixabay, sourced from Pexel.scom

If you’ve read a technical book (I suppose you would have as a software engineer), you may have found a term or a concept that you are unfamiliar with. Perhaps you studied it at some point at college but your memory of it has faded, or maybe it’s a new one that you’ve never come across before. Usually, this depends on how advanced the book that you’re reading is, and what type of experience you need to have to get the most of your reading.

To help increase your understanding of terms and concepts (and in so doing, improve your ability to progress), I created a list of the key terms and concepts that I believe every software engineer should know. Even if you are familiar with what appears on this list, it’s always a helpful exercise to refresh your memory from time to time. …


Image for post
Image for post
Image by OpenClipart-Vectors from Pixabay

Engaging your users is a great way to ensure a successful business. As software developers, we must think about the different requirements and application needs. We must choose the best yet most affordable way to achieve our application goals.

In this article, you will learn

  1. Send SMS to a single user.
  2. Send bulk messages without getting blocked using the Twilio messaging service.
  3. Use Twilio notify service to reach customers over their preferred channel.

We will use only PHP without any frameworks to keep our code examples straightforward. Let’s begin.

Let’s assume you are working in an e-commerce startup. The founders ask you to rollout a new feature to send SMS to the customers with the order confirmation. Since you only have a few customers, at top tens of them, and it would be best if you got it live as soon as possible. …


Image for post
Image for post

The most important thing when it comes to Database Performace Optimization is to pick the right one. You should decide whether your application needs a Relational or Non-Relational database. Even inside one type, you will have various options to choose from. As in the relational database, you may find Oracle, MySQL, SQL Server, and PostgreSQL. On the other hand, The non-relational database introduces MongoDB, Cassandra, and CouchDB. You may expect me to suggest using the non-relational database for faster read/write performance. However, with some refinements and tuning, you can push a relational database beyond its known limitation. So in this article, I am going to introduce you some tips in order to make your MySQL database much faster. If you wonder why MySQL in particular, then the answer is easy because it’s free, open source and so popular in the PHP community where Oracle is not widely used because it’s expensive. …


Application performance is not just a technical issue. Performace can make a business successfull or take it down. So, if you think few milliseconds are not a big deal, think again.

Why does Performance Matter?

There are mainly three reasons why performance is essential. The first is User experience; if your application takes so long to load, then you are risking your users to switch to competitors or leave bad reviews which will affect the business badly. The second reason is “Conversions.” Conversions are the number of users who actually buy your product or download your ebook or generally the users who give money for your services. A faster website means more conversions and more profit. The third reason is “Scalability.” The more requests your application can handle per second, the more traffic you can handle. …


Image for post
Image for post

What was the web design look like in the past? And what is its future?
Is there a big difference between how it was, what it is and what it will be?

The following pictures compare Amazon’s website in 2010 and Youtube’s website in 2006 with their current ones.


Nowadays, cloud computing has become a central part of any tech company, that includes every company now since most of them can be categorized under “Software as a Service” (SaaS). In this post, I will try to simplify the most important Amazon cloud/web services known as AWS.

This post will help you to understand different services by Amazon and their different capabilities. and to discover the new opportunities that come with using cloud computing instead of self-managed infrastructures.

AWS most used services

Amazon provides many services that can be very useful for your application, however, some of them can be helpful for someone but not so important for others. Therefore, in this article, we are going to focus on the services that are important to everyone starting with Amazon Elastic Compute Cloud (EC2). …


Many people don’t really know the difference between software architecture and software design. Even for developers, the line is often blurry and they might mix up elements of software architecture patterns and design patterns. As a developer myself, I would like to simplify these concepts and explain the differences between software design and software architecture. In addition, I will show you why it is important for a developer to know a little bit about software architecture and a lot of software design. So, let’s start.

The Definition of Software Architecture

In simple words, software architecture is the process of converting software characteristics such as flexibility, scalability, feasibility, reusability, and security into a structured solution that meets the technical and the business expectations. This definition leads us to ask about the characteristics of a software that can affect a software architecture design. There is a long list of characteristics which mainly represent the business or the operational requirements, in addition to the technical requirements. …


Good developers are defined by the quality of their codes. In the software industry, writing good code means saving the money that may be invested in testing, updating, extending or fixing bugs. In this article, I will show you real-life examples of some techniques and ideas that will help you to clean up your legacy code and refactor it to make it more robust and modular. These techniques will not only help you to refactor your old code but will give you great ideas as to how to write clean code from now on.

What Is refactoring and why do we need It?

Refactoring refers to techniques and steps that help you to write clean code. This is important for other developers, who then will be able to read, extend and reuse the code without the need to edit much. …

About

Mohamed Aladdin

I am a Software engineer who like to spread the knowledge.

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