<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Alexis Jeanpierre MARTINEZ VARGAS</title>
    <description>The latest articles on DEV Community by Alexis Jeanpierre MARTINEZ VARGAS (@alexis_jean).</description>
    <link>https://dev.to/alexis_jean</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2986726%2F78e19e1f-5df8-4c7f-9d1f-9b46c60df675.jpg</url>
      <title>DEV Community: Alexis Jeanpierre MARTINEZ VARGAS</title>
      <link>https://dev.to/alexis_jean</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/alexis_jean"/>
    <language>en</language>
    <item>
      <title>Simple Observability Practice with Python and Prometheus: How to See Inside Your App Without Touching It</title>
      <dc:creator>Alexis Jeanpierre MARTINEZ VARGAS</dc:creator>
      <pubDate>Wed, 02 Jul 2025 21:29:43 +0000</pubDate>
      <link>https://dev.to/alexis_jean/simple-observability-practice-with-python-and-prometheus-how-to-see-inside-your-app-without-5fg</link>
      <guid>https://dev.to/alexis_jean/simple-observability-practice-with-python-and-prometheus-how-to-see-inside-your-app-without-5fg</guid>
      <description>&lt;h3&gt;
  
  
  What are Observability Practices?
&lt;/h3&gt;

&lt;p&gt;Observability is the ability of a system to enable a deep understanding of its internal behavior based on the information it emits externally. This includes metrics, logs, and distributed traces. In other words, observability isn't just about monitoring whether an app is "up or down," but about understanding how and why it behaves the way it does.&lt;/p&gt;

&lt;p&gt;Imagine your system is like an airplane in flight. You can't open it to see what's going on inside, but you have instruments: altimeter, speedometer, temperature sensors, etc. The same is true of modern software: it's often in production, far from the development environment, and we need those tools to "see inside" without touching anything.&lt;/p&gt;

&lt;p&gt;Observability practices are the set of strategies, tools, and conventions that allow us to systematically collect, structure, and analyze that information. These practices typically include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Code instrumentation to generate metrics (such as the number of requests per second)&lt;/li&gt;
&lt;li&gt;Configuring detailed logs with different levels (info, warn, error, etc.)&lt;/li&gt;
&lt;li&gt;Distributed tracing across services to follow a request from start to finish&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;An observable application is one that, in the event of any failure, degradation, or unusual behavior, provides the necessary signals to detect, understand, and resolve the problem, without the need for guesswork or invasive testing.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is observability for?
&lt;/h2&gt;

&lt;p&gt;Observability isn't just useful in emergencies: it's essential for operating modern software reliably, especially in distributed systems, microservices, and platforms that scale to thousands of users per minute.&lt;/p&gt;

&lt;p&gt;Its main functions include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Detecting errors or unexpected behavior in real time: for example, sudden drops in traffic, latency spikes, or database connection errors.&lt;/li&gt;
&lt;li&gt;Measuring the performance of critical functions: identifying which parts of the system consume the most resources, take longer, or execute abnormally frequently.&lt;/li&gt;
&lt;li&gt;Generating automatic alerts when something goes wrong: integrating with systems like Grafana, Datadog, or Prometheus AlertManager to react before users notice.&lt;/li&gt;
&lt;li&gt;Analyzing trends and usage patterns: allowing you to anticipate bottlenecks, prepare for scalability, or plan infrastructure changes.&lt;/li&gt;
&lt;li&gt;Facilitate debugging in production: without the need to replicate scenarios locally or disrupt the system, since observability gives us a clear map of the flow and state of the running system.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What problems does it help solve?
&lt;/h2&gt;

&lt;p&gt;Let's take a concrete example: an order processing microservice in an online store. It works perfectly in development, passes all tests, and is deployed to production. Everything seems fine... until:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The response time becomes slow at certain times.&lt;/li&gt;
&lt;li&gt;Some orders aren't processed correctly.&lt;/li&gt;
&lt;li&gt;Performance metrics start to fluctuate without explanation.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Without observability, it would be impossible to know what's going on. We'd only see users complaining or some orders not arriving, without knowing where the fault lies.&lt;/p&gt;

&lt;p&gt;With good observability practices, we could:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Know how many orders are processed per minute or per hour&lt;/li&gt;
&lt;li&gt;Detect how many fail and with what exact frequency&lt;/li&gt;
&lt;li&gt;Visualize how long each order takes on average, and when that duration spikes&lt;/li&gt;
&lt;li&gt;Correlate events (such as errors or load spikes) with recent changes or external conditions&lt;/li&gt;
&lt;li&gt;Have exact traceability between services in a microservices architecture&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Simple Practical Example: Observability in Python with Prometheus
&lt;/h2&gt;

&lt;p&gt;We created a small Python service that simulates order processing and exposes custom metrics through Prometheus.&lt;/p&gt;

&lt;p&gt;Technologies used:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Language: Python&lt;/li&gt;
&lt;li&gt;Metrics: prometheus_client&lt;/li&gt;
&lt;li&gt;Automation: GitHub Actions&lt;/li&gt;
&lt;li&gt;Container: Docker&lt;/li&gt;
&lt;li&gt;Repository: Public GitHub&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb96dnyabhh1u2y54p38l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb96dnyabhh1u2y54p38l.png" alt="Image description" width="800" height="508"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What does the program do?
&lt;/h2&gt;

&lt;p&gt;Processes orders every second (simulated)&lt;/p&gt;

&lt;p&gt;Records custom metrics:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;orders_processed_total&lt;/li&gt;
&lt;li&gt;orders_failed_total&lt;/li&gt;
&lt;li&gt;order_processing_duration_seconds&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Exhibition at: &lt;a href="http://localhost:8000/metrics" rel="noopener noreferrer"&gt;http://localhost:8000/metrics&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fghos544b8gfhzjzif6ws.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fghos544b8gfhzjzif6ws.png" alt="Image description" width="800" height="468"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Metrics view in the browser&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Full code on GitHub
&lt;/h2&gt;

&lt;p&gt;You can see the full code, structure, Dockerfile, and automation configuration here:&lt;br&gt;
&lt;a href="https://github.com/WhiteFall20/Simple_Example_Observability.git" rel="noopener noreferrer"&gt;https://github.com/WhiteFall20/Simple_Example_Observability.git&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Observability is no longer a luxury or a technical "plus": today, it is a fundamental necessity in the development and operation of modern systems. In times of increasingly distributed architectures, higher user demands, and more costly errors, having visibility into the real state of the system is key to ensuring software quality, scalability, and reliability.&lt;br&gt;
This small project demonstrates that even with basic tools like Python and Prometheus, effective observability practices can be implemented: capturing custom metrics, analyzing them in real time, and automating processes through GitHub Actions. No complex or expensive infrastructure is required to get started.&lt;br&gt;
Furthermore, observability not only helps resolve problems when they occur, but also allows for preventing them, making informed decisions, and learning from system behavior in production. Ultimately, it is a tool for knowledge, continuous improvement, and technological maturity.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Organize Your Code with the Service Layer Pattern: A Simple Python Example</title>
      <dc:creator>Alexis Jeanpierre MARTINEZ VARGAS</dc:creator>
      <pubDate>Thu, 10 Apr 2025 19:37:09 +0000</pubDate>
      <link>https://dev.to/alexis_jean/organize-your-code-with-the-service-layer-pattern-a-simple-python-example-2pnn</link>
      <guid>https://dev.to/alexis_jean/organize-your-code-with-the-service-layer-pattern-a-simple-python-example-2pnn</guid>
      <description>&lt;h2&gt;
  
  
  Introducción al Diseño de Software Empresarial
&lt;/h2&gt;

&lt;p&gt;In software development, especially in enterprise applications, it is essential to keep the code clean, organized, and easy to maintain. As projects grow, so does the complexity of the business logic. This is where design patterns play a key role.&lt;br&gt;
One of these patterns, commonly used in architectures such as MVC (Model-View-Controller) or REST APIs, is the Service Layer pattern. Its main objective is to separate business logic from the rest of the system, such as the user interface or database access.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is the Service Layer Pattern?
&lt;/h2&gt;

&lt;p&gt;The Service Layer pattern centralizes an application's business logic. Instead of distributing business rules across controllers, views, or directly in the model, this logic is organized in an intermediate layer: services.&lt;br&gt;
Imagine you have an ordering application: without a Service Layer, you might have validation logic in the controller, part in the model, and part in the frontend. This becomes difficult to maintain and error-prone. The solution is to encapsulate all the business logic in a service class or module.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why is it important?
&lt;/h2&gt;

&lt;p&gt;The Service Layer pattern not only helps you have cleaner code, it also provides benefits such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Modularity: Clearly separates what part of the system does.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Reusability: The same service can be used in different interfaces (API, console, web, etc.).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Maintainability: If you need to change a business rule, just update the service.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Testability: Having isolated logic makes it easier to write automated tests.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Scalability: Allows you to grow without turning your code into chaos.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Example without Service Layer
&lt;/h2&gt;

&lt;p&gt;Let's look at a typical case where the pattern is not applied and everything is mixed in one place:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fspw5fo2234ssmhsdea8q.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fspw5fo2234ssmhsdea8q.jpg" alt="Image description" width="567" height="116"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This code seems fine for a small project, but what if you now have to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Validate if the user exists&lt;/li&gt;
&lt;li&gt;Check if the product is in stock&lt;/li&gt;
&lt;li&gt;Apply a discount based on quantity&lt;/li&gt;
&lt;li&gt;Send a confirmation email
The controller will quickly become cluttered with business logic, becoming unmanageable.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Refactoring using Service Layer
&lt;/h2&gt;

&lt;p&gt;We apply the pattern and move the business logic to an OrderService class:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4f2hqo3s4wq0gpyfx2fw.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4f2hqo3s4wq0gpyfx2fw.jpg" alt="Image description" width="567" height="151"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwp1z8k2txeel1mjj3ln8.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwp1z8k2txeel1mjj3ln8.jpg" alt="Image description" width="484" height="142"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now the controller only coordinates, while OrderService is responsible for applying all the rules necessary to place an order.&lt;/p&gt;

&lt;p&gt;Github link for those interested: &lt;a href="https://github.com/WhiteFall20/Example_Simple_Service_Layer.git" rel="noopener noreferrer"&gt;https://github.com/WhiteFall20/Example_Simple_Service_Layer.git&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How does it look in real architectures?
&lt;/h2&gt;

&lt;p&gt;This pattern is very common in frameworks such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Spring Boot (Java): @Service classes contain business logic.&lt;/li&gt;
&lt;li&gt;Django (Python): Although not enforced, it is a good practice to create a services/ folder.&lt;/li&gt;
&lt;li&gt;Ruby on Rails: Many teams create app/services to implement this pattern.&lt;/li&gt;
&lt;li&gt;Laravel (PHP): It is recommended to separate logic into service classes.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  When to use this pattern?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;When your application has rapidly growing business logic.&lt;/li&gt;
&lt;li&gt;When the same process is executed from multiple interfaces (API, CLI, etc.).&lt;/li&gt;
&lt;li&gt;If your project is very small and doesn't have complex business rules, you may not need it yet.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;The Service Layer pattern is a powerful tool for keeping your application organized, clear, and scalable. Although it may initially seem like it's adding more classes or files, it actually prepares you for project growth and improves code quality.&lt;br&gt;
Applying this pattern is a step toward professional software design, especially in enterprise applications. Don't underestimate it!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Avoid Duplicate Code with DRY: A Simple Python Example</title>
      <dc:creator>Alexis Jeanpierre MARTINEZ VARGAS</dc:creator>
      <pubDate>Fri, 28 Mar 2025 20:56:51 +0000</pubDate>
      <link>https://dev.to/alexis_jean/avoid-duplicate-code-with-dry-a-simple-python-example-2ke7</link>
      <guid>https://dev.to/alexis_jean/avoid-duplicate-code-with-dry-a-simple-python-example-2ke7</guid>
      <description>&lt;p&gt;Have you ever copied and pasted the same code into multiple parts of your project?&lt;br&gt;
This is a big problem because it hinders maintenance and increases errors. This is where the DRY (Don't Repeat Yourself) principle comes into play, helping us write cleaner, more reusable, and maintainable code. In this article, we'll see how to avoid code duplication with a simple Python/Java example.&lt;/p&gt;
&lt;h2&gt;
  
  
  Introduction to Software Design Principles
&lt;/h2&gt;

&lt;p&gt;Software design is a fundamental discipline in software engineering that focuses on planning and creating &lt;strong&gt;efficient&lt;/strong&gt;, &lt;strong&gt;maintainable&lt;/strong&gt;, and &lt;strong&gt;scalable systems&lt;/strong&gt;.&lt;br&gt;
Software design principles are guidelines that help developers make informed decisions during the development process, ensuring that the software is robust and easy to maintain.&lt;br&gt;
One of the most important principles in software design is the &lt;strong&gt;DRY principle (Don't Repeat Yourself)&lt;/strong&gt;. This principle states that code duplication should be avoided whenever possible. The central idea is that each piece of information or logic should have a unique representation in the system.&lt;br&gt;
This not only reduces the amount of code that must be written and maintained, but also minimizes the risk of errors and consistency issues.&lt;/p&gt;
&lt;h2&gt;
  
  
  What is the DRY principle?
&lt;/h2&gt;

&lt;p&gt;The DRY principle was coined by &lt;strong&gt;Andy Hunt&lt;/strong&gt; and &lt;strong&gt;Dave Thomas&lt;/strong&gt; in their book The &lt;strong&gt;Pragmatic Programmer&lt;/strong&gt;. Its central idea is that code repetition is a sign of poor design.&lt;/p&gt;

&lt;p&gt;When the same code is repeated in multiple places, any changes or fixes must be applied to all of those places, increasing the likelihood of errors and making software maintenance more complicated.&lt;/p&gt;
&lt;h2&gt;
  
  
  Why is it important in software development?
&lt;/h2&gt;

&lt;p&gt;Implementing the &lt;strong&gt;DRY principle&lt;/strong&gt; involves identifying and abstracting common patterns in code, encapsulating them into reusable functions, classes, or modules.&lt;/p&gt;

&lt;p&gt;This not only improves code clarity and readability but also facilitates collaboration between developers and the evolution of software over time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Benefits:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Reduced redundancy&lt;/strong&gt;: Less duplicated code means less work and fewer opportunities for errors.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Ease of maintenance&lt;/strong&gt;: Changes are made in a single place, simplifying software updates and fixes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Improved readability&lt;/strong&gt;: Cleaner, more organized code is easier to understand and follow.&lt;/p&gt;

&lt;p&gt;For these reasons, the &lt;strong&gt;DRY principle&lt;/strong&gt; is considered an essential practice in coding and has been chosen as the primary focus for this article.&lt;/p&gt;
&lt;h2&gt;
  
  
  Brief example of what happens if we don't apply DRY
&lt;/h2&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Repeated code in multiple functions
def calculate_rectangle_area(width, height):
    area = width * height
    print(f"The area of the rectangle is {area}")

def calculate_square_area(side):
    area = side * side
    print(f"The area of the square is {area}")

def calculate_triangle_area(base, height):
    area = 0.5 * base * height
    print(f"The area of the triangle is {area}")

# Function calls
calculate_rectangle_area(5, 10)
calculate_square_area(7)
calculate_triangle_area(6, 8)

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;Problem&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In this example, each function calculates the area of a geometric figure and then prints the result. Although the formulas are different, the calculation pattern and printing of the result are repeated in each function.&lt;/p&gt;

&lt;p&gt;This violates the DRY principle because we are repeating the printing logic in each function.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# General function to print the area
def print_area(shape, area):
    print(f"The area of the {shape} is {area}")

# Specific functions to calculate the area
def calculate_rectangle_area(width, height):
    area = width * height
    print_area("rectangle", area)

def calculate_square_area(side):
    area = side * side
    print_area("square", area)

def calculate_triangle_area(base, height):
    area = 0.5 * base * height
    print_area("triangle", area)

# Function calls
calculate_rectangle_area(5, 10)
calculate_square_area(7)
calculate_triangle_area(6, 8)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Explanation of the change&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In the improved version, we have extracted the printing logic into a separate function called print_area. Now, each calculation-specific function calls print_area to print the result.&lt;br&gt;
This eliminates code duplication and makes the code easier to maintain. If we need to change the way the area is printed in the future, we will only need to modify the print_area function instead of changing each function individually.&lt;/p&gt;

&lt;h2&gt;
  
  
  Result of applying good practices
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Reduced redundancy&lt;/strong&gt;: We eliminated unnecessary code, which reduces the amount of code that needs to be maintained.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ease of maintenance&lt;/strong&gt;: Any changes to the printing logic are made in a single place.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Improved readability&lt;/strong&gt;: The code becomes clearer and more organized, making it easier to understand and maintain.&lt;/p&gt;

&lt;p&gt;For anyone interested github link: &lt;a href="https://github.com/WhiteFall20/Example-DYR-Alexis-.git" rel="noopener noreferrer"&gt;https://github.com/WhiteFall20/Example-DYR-Alexis-.git&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;The DRY principle is one of the best practices in software development. Its application helps us reduce errors, improve code organization, and facilitate long-term maintenance&lt;br&gt;
However, it is important to keep in mind that it cannot always be applied in all contexts. There are projects that follow specific standards depending on the company or where, for time reasons, refactoring is left for later maintenance.&lt;br&gt;
Despite this, the DRY principle remains a fundamental pillar in software development, and it is always good to remember and apply it whenever possible.&lt;/p&gt;

&lt;h3&gt;
  
  
  Acknowledgments
&lt;/h3&gt;

&lt;p&gt;I would like to thank my parents and family for supporting me in my career in Systems Engineering. I also want to thank everyone who reads this article, as this is my first time posting on Dev.to. I hope you find it useful and that it helps you improve your code.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
