clean code



Domain Driven Design with Laravel 9

  • avatar
Preview post image

Modern web frameworks teach you to take one group of related concepts and split it across multiple places throughout your codebase. Laravel is a robust framework with a big community behind it. Usually it's standard structure is enough for most starting projects.

Building scalable applications, instead, requires a different approach. Have you ever heard from a client to work on controllers or review the models folder? Probably never - they ask you to work on invoicing, clients management or users. These concept groups are called domains.

Domain Driven Design: Layers

  • avatar
  • 21.6K Views
  • 25 Likes
  • 5 mins read
Preview post image

Developing applications that can perform complex tasks can be a challenging process, and it requires careful planning and design. One approach to managing this complexity is to use a Layered Architecture. This architecture separates the application's code into layers, each with a specific responsibility and purpose. These layers are typically organized in a hierarchy, with higher-level layers depending on lower-level layers.

Install PHPStan and configure for Laravel application

  • avatar
  • 12.4K Views
  • 12 Likes
  • 3 mins read
Preview post image

Unlike compiled languages, in PHP if you make a mistake, the program will crash when the line of code with the mistake is executed. When testing a PHP application, whether manually or automatically, developers spend a lot of their time discovering mistakes that wouldn’t even compile in other languages, leaving less time for testing actual business logic.

 Join Our Monthly Newsletter

Get the latest news and popular articles to your inbox every month

We never send SPAM nor unsolicited emails

Domain Driven Design with Laravel 9: User domain

  • avatar
  • 9.6K Views
  • 16 Likes
  • 11 mins read
Preview post image

Modern web frameworks take one group of related concepts and split it across multiple places throughout your codebase. Laravel provides a very clear structure with large variety of tools to make the development easier and faster. Along with the huge community it makes Laravel a great option for most starting projects.

Clean unused CSS with PurgeCSS & Laravel Mix

  • avatar
  • 7.7K Views
  • 4 Likes
  • 5 mins read
Preview post image

PurgeCSS is a tool to remove unused CSS. When you are building a website, you might decide to use a CSS framework like TailwindCSS, Bootstrap, MaterializeCSS, Foundation, etc... You will only use a small set of the framework but a lot of unused CSS styles will be included.

PurgeCSS analyzes your content and your CSS files. Then it matches selectors used in your files with the ones in your content files. It removes unused selectors from your CSS, resulting in smaller CSS files. PurgeCSS comes with a JavaScript API, a CLI and plugins for popular build tools.

Keeping time with DS1302: real-time clock on Arduino

  • avatar
  • 7.0K Views
  • 2 Likes
  • 8 mins read
Preview post image

In the fascinating world of Arduino and microcontrollers, keeping time is key. You might need to build a digital clock, a timer, or something more complex like an automated plant watering system. That's where the DS1302 module steps in. It's a handy little device that can help you keep time accurately in your Arduino projects. In this article, we'll take a closer look at the DS1302 module, understand how it works, and explore its applications.

Universally unique identifiers: UUID vs ULID

  • avatar
  • 7.4K Views
  • 2 Likes
  • 7 mins read
Preview post image

Historically a lot of software has used incrementing numbers to represent the identifier of a particular piece of data. They can be auto-generated by many data stores, they are easy to read, efficient to store and naturally time ordered.

As time passes, applications become larger. They need more resources and usually distributed in different places. That may cause some errors generating concurrent numbers and coordination issues. Incremental numbers can also be the source of security problems and they may include implicit information about datasets volume. Modern software architectures also trend to decouple infrastructure layer and move ID generation logic to the domain core.

Exploring the inner workings of Laravel Facades

  • avatar
  • 3.6K Views
  • 4 Likes
  • 5 mins read
Preview post image

In the realm of Laravel, there is a powerful feature called Facades that plays a significant role in simplifying code and enhancing developer productivity. Facades in Laravel provide a simple and elegant way to access underlying classes without the need for complex dependency injection or instantiating objects. By abstracting away the complexities, Laravel Facades offer a clean and intuitive syntax that allows developers to write expressive and concise code. In this article, we will investigate the inner workings of Laravel Facades to demystify their magic and showcase their remarkable capabilities.

Keeping real-time clock with mini DS3231 on Arduino

  • avatar
  • 2.5K Views
  • 2 Likes
  • 10 mins read
Preview post image

When it comes to accurate timekeeping in the world of electronics, the DS3231 real-time clock (RTC) module is a reliable and precise solution. This compact yet robust module not only keeps time with exceptional accuracy but also integrates smoothly with popular microcontrollers like the Arduino Nano. In this article, we'll explore the features, wiring, and potential applications of the DS3231.

Conventional commits

  • avatar
  • 2.3K Views
  • 15 Likes
  • 3 mins read
Preview post image

The Conventional Commits specification is a lightweight convention on top of commit messages. It provides an easy set of rules for creating an explicit commit history; which makes it easier to write automated tools on top of.

The commit message should be structured as follows:

<type>[optional scope]: <description>

[optional body]

[optional footer]