<?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: Jean Lucas</title>
    <description>The latest articles on DEV Community by Jean Lucas (@jean_lucas).</description>
    <link>https://dev.to/jean_lucas</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%2F2896560%2Fd8088d9b-32fe-4097-acc7-27f1ba3d7354.jpg</url>
      <title>DEV Community: Jean Lucas</title>
      <link>https://dev.to/jean_lucas</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jean_lucas"/>
    <language>en</language>
    <item>
      <title>🧠 Choosing the Right Frontend Framework: React, Angular or Vue?</title>
      <dc:creator>Jean Lucas</dc:creator>
      <pubDate>Tue, 15 Apr 2025 11:41:32 +0000</pubDate>
      <link>https://dev.to/jean_lucas/choosing-the-right-frontend-framework-react-angular-or-vue-8gj</link>
      <guid>https://dev.to/jean_lucas/choosing-the-right-frontend-framework-react-angular-or-vue-8gj</guid>
      <description>&lt;p&gt;In the world of modern web development, frontend frameworks play a critical role in building scalable, fast, and maintainable user interfaces. But with so many options available, how do you choose the best one for your project?&lt;/p&gt;

&lt;p&gt;Here’s a quick overview of the &lt;strong&gt;three most popular frontend frameworks&lt;/strong&gt; today and when it makes sense to use each:&lt;/p&gt;

&lt;h2&gt;
  
  
  ⚛️ React
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Created by Facebook&lt;/strong&gt;, React is a &lt;strong&gt;library&lt;/strong&gt; (often called a framework due to its ecosystem) for building user interfaces based on components.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why choose React?&lt;/strong&gt;&lt;br&gt;
✅ Large community and ecosystem&lt;br&gt;
✅ Flexible and highly customizable&lt;br&gt;
✅ Great for Single Page Applications (SPAs)&lt;br&gt;
✅ Supported by Next.js for server-side rendering (SSR)&lt;br&gt;
✅ Easy to integrate with other libraries&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When to use:&lt;/strong&gt;&lt;br&gt;
React is ideal when you need &lt;strong&gt;flexibility&lt;/strong&gt;, plan to build with &lt;strong&gt;micro-frontends&lt;/strong&gt;, or want to integrate with &lt;strong&gt;different backends or tools.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🅰️ Angular
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Developed by Google&lt;/strong&gt;, Angular is a &lt;strong&gt;full-featured framework&lt;/strong&gt; based on TypeScript, offering everything out-of-the-box (routing, HTTP, forms, etc.).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why choose Angular?&lt;/strong&gt;&lt;br&gt;
✅ Complete solution, ready for enterprise applications&lt;br&gt;
✅ Strong typing with TypeScript&lt;br&gt;
✅ Built-in CLI and testing tools&lt;br&gt;
✅ Two-way data binding&lt;br&gt;
✅ Excellent for large teams and structured development&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When to use:&lt;/strong&gt;&lt;br&gt;
Choose Angular when you're working on &lt;strong&gt;complex enterprise applications, internal systems&lt;/strong&gt;, or when you need &lt;strong&gt;strong architecture and scalability&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  🖖 Vue.js
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Created by Evan You&lt;/strong&gt;, Vue is a &lt;strong&gt;progressive framework&lt;/strong&gt; that balances the best of React and Angular, with simplicity and great performance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why choose Vue?&lt;/strong&gt;&lt;br&gt;
✅ Gentle learning curve&lt;br&gt;
✅ Lightweight and fast&lt;br&gt;
✅ Clear documentation&lt;br&gt;
✅ Reactive data binding&lt;br&gt;
✅ Vue CLI and ecosystem (Nuxt.js, Pinia, etc.)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When to use:&lt;/strong&gt;&lt;br&gt;
Vue is great for &lt;strong&gt;small to medium-sized projects, quick MVPs&lt;/strong&gt;, or if you want &lt;strong&gt;easy onboarding&lt;/strong&gt; for new developers.&lt;/p&gt;

&lt;h2&gt;
  
  
  🔍 So, which one should you choose?
&lt;/h2&gt;

&lt;p&gt;Flexibility &amp;amp; Ecosystem -&amp;gt;  &lt;strong&gt;React&lt;/strong&gt;&lt;br&gt;
Enterprise Applications -&amp;gt;  &lt;strong&gt;Angular&lt;/strong&gt;&lt;br&gt;
Simplicity &amp;amp; Quick Prototypes -&amp;gt; &lt;strong&gt;Vue.js&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Ultimately, there’s no &lt;strong&gt;one-size-fits-all&lt;/strong&gt;. The best framework depends on your &lt;strong&gt;team’s experience, project complexity, and long-term goals&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;🔎 &lt;strong&gt;Pro Tip:&lt;/strong&gt; If you're building a new project for a company or client, it’s worth analyzing the existing &lt;strong&gt;tech ecosystem&lt;/strong&gt;.&lt;br&gt;
If other teams within the organization already use a specific framework, aligning with it can bring several advantages:&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;Standardization&lt;/strong&gt;: Promotes a consistent development experience and easier code sharing across teams.&lt;/p&gt;

&lt;p&gt;🔄 &lt;strong&gt;Flexibility in resource allocation&lt;/strong&gt;: Developers familiar with the same stack can be reassigned between projects more easily—whether it's temporarily borrowing someone for a critical sprint or reallocating devs due to team restructuring.&lt;/p&gt;

&lt;p&gt;Choosing a framework that matches the company’s existing stack can save time, reduce onboarding friction, and increase overall agility in development.&lt;/p&gt;

&lt;p&gt;💬 Which framework do you use the most in your projects? Let me know in the comments!&lt;/p&gt;

</description>
      <category>angular</category>
      <category>react</category>
      <category>vue</category>
      <category>javascript</category>
    </item>
    <item>
      <title>🚀 Why Code Versioning is Essential and Why Git Dominates the Market</title>
      <dc:creator>Jean Lucas</dc:creator>
      <pubDate>Mon, 17 Mar 2025 12:05:33 +0000</pubDate>
      <link>https://dev.to/jean_lucas/why-code-versioning-is-essential-and-why-git-dominates-the-market-318c</link>
      <guid>https://dev.to/jean_lucas/why-code-versioning-is-essential-and-why-git-dominates-the-market-318c</guid>
      <description>&lt;p&gt;In a world where software evolves rapidly and teamwork is key to success, keeping code organized and under control has become crucial. That’s where &lt;strong&gt;code versioning&lt;/strong&gt; comes in.&lt;/p&gt;

&lt;h2&gt;
  
  
  📌 What is Code Versioning?
&lt;/h2&gt;

&lt;p&gt;Code versioning is the practice of &lt;strong&gt;tracking and managing changes&lt;/strong&gt; made to a software project over time. It allows developers to monitor modifications, collaborate efficiently, roll back mistakes, and maintain a complete history of the project’s evolution.&lt;/p&gt;

&lt;p&gt;It also enables different teams to work on the same project &lt;strong&gt;without conflicts&lt;/strong&gt;, making development much more efficient, organized, and reliable.&lt;/p&gt;

&lt;h2&gt;
  
  
  🛠️ What is Git?
&lt;/h2&gt;

&lt;p&gt;Git is the most widely used version control system in the world. Created by Linus Torvalds (also the creator of Linux), Git is a &lt;strong&gt;distributed, fast, and powerful tool&lt;/strong&gt; to manage code versioning.&lt;/p&gt;

&lt;p&gt;Nowadays, it’s the most recognized and adopted version control tool across companies and open-source communities.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key advantages of Git:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Enables multiple developers to work on the same project simultaneously.&lt;/li&gt;
&lt;li&gt;Keeps a complete history of all code changes.&lt;/li&gt;
&lt;li&gt;Allows reverting changes or recovering previous versions easily.&lt;/li&gt;
&lt;li&gt;Helps resolve code conflicts efficiently.&lt;/li&gt;
&lt;li&gt;Integrates seamlessly with CI/CD platforms (such as GitHub Actions, GitLab CI, Jenkins, and others).&lt;/li&gt;
&lt;li&gt;Keeps the codebase organized and facilitates code reviews.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🌎 Popular Git-based platforms:
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;GitHub&lt;/strong&gt; – The most recognized globally, heavily used in open-source and team collaboration.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitLab&lt;/strong&gt; – Popular among companies seeking an all-in-one DevOps solution.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bitbucket&lt;/strong&gt; – Commonly used by teams already relying on Atlassian tools (like Jira).&lt;/p&gt;

&lt;h2&gt;
  
  
  🏢 Why Can’t Companies Live Without Version Control Today?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;🔒 Security:&lt;/strong&gt;&lt;br&gt;
Ensures the code can always be restored if something goes wrong. It supports architectural principles such as &lt;strong&gt;fault tolerance, RPO (Recovery Point Objective), and RTO (Recovery Time Objective).&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🤝 Collaboration:&lt;/strong&gt;&lt;br&gt;
Enables entire teams to work on the same project without overwriting each other's work. It’s a foundation for modern agile development.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🚀 Scalability:&lt;/strong&gt;&lt;br&gt;
Facilitates processes like code reviews, continuous integration, and deployment (CI/CD). Git platforms support these workflows and integrate with various hosting platforms, making it possible to &lt;strong&gt;automate everything&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;📊 Auditability:&lt;/strong&gt;&lt;br&gt;
Provides a complete history of the codebase for analysis, accountability, and compliance. Every change is tracked, including dates, authors, and version states.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;💎 Quality:&lt;/strong&gt;&lt;br&gt;
Promotes best practices and organization in development workflows, ensuring clean, maintainable, and high-quality code.&lt;/p&gt;

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

&lt;p&gt;In today’s fast-paced, competitive landscape, companies that don’t use version control tools fall behind, losing productivity, security, and code quality. Git and its platforms are essential in any modern software development environment!&lt;/p&gt;

&lt;p&gt;Do you use Git in your daily work? Which platform do you prefer? Let’s discuss in the comments! 💬👨‍💻&lt;/p&gt;

</description>
    </item>
    <item>
      <title>🐳 Why Use Docker? A Beginner’s Guide</title>
      <dc:creator>Jean Lucas</dc:creator>
      <pubDate>Wed, 05 Mar 2025 19:03:25 +0000</pubDate>
      <link>https://dev.to/jean_lucas/why-use-docker-a-beginners-guide-5d2e</link>
      <guid>https://dev.to/jean_lucas/why-use-docker-a-beginners-guide-5d2e</guid>
      <description>&lt;p&gt;In modern software development, ensuring &lt;strong&gt;consistency&lt;/strong&gt; across different environments is crucial. Have you ever faced the infamous "it works on my machine" problem? If so, &lt;strong&gt;Docker&lt;/strong&gt; is the solution you've been looking for!&lt;/p&gt;

&lt;p&gt;Nowadays, encountering such issues is no longer acceptable. We have several ways to ensure that your code runs smoothly in a &lt;strong&gt;production environment&lt;/strong&gt;, and one of the best approaches is using &lt;strong&gt;Docker&lt;/strong&gt;. It allows you to simulate a production-like environment during development, reducing inconsistencies and deployment issues.&lt;/p&gt;

&lt;p&gt;Let’s dive deeper into &lt;strong&gt;what Docker is and how it works!&lt;/strong&gt; 🚀&lt;/p&gt;

&lt;h2&gt;
  
  
  🐳 What is Docker?
&lt;/h2&gt;

&lt;p&gt;Docker is a &lt;strong&gt;containerization platform&lt;/strong&gt; that enables you to run applications in &lt;strong&gt;isolated environments&lt;/strong&gt;. A &lt;strong&gt;Docker container&lt;/strong&gt; includes everything needed to execute an application:&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;Code&lt;/strong&gt;&lt;br&gt;
✅ &lt;strong&gt;Dependencies&lt;/strong&gt; (libraries, frameworks, etc.)&lt;br&gt;
✅ &lt;strong&gt;Configuration files&lt;/strong&gt;&lt;br&gt;
✅ &lt;strong&gt;Operating system components&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Unlike virtual machines, &lt;strong&gt;containers share the host OS&lt;/strong&gt;, making them &lt;strong&gt;lightweight&lt;/strong&gt; and &lt;strong&gt;faster to start.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  ⚙️ How Does Docker Work?
&lt;/h2&gt;

&lt;p&gt;Docker operates using a &lt;strong&gt;client-server architecture&lt;/strong&gt;, consisting of:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Docker CLI&lt;/strong&gt; 🖥️ – A command-line interface for managing containers.&lt;br&gt;
&lt;strong&gt;Docker Daemon&lt;/strong&gt; ⚙️ – Runs in the background and handles container operations.&lt;br&gt;
&lt;strong&gt;Docker Images&lt;/strong&gt; 📦 – Blueprints that define how containers should be built.&lt;br&gt;
&lt;strong&gt;Docker Containers&lt;/strong&gt; 🚀 – Instances of Docker images running in isolated environments.&lt;/p&gt;

&lt;p&gt;Want to learn more? Check out the official Docker documentation:&lt;br&gt;
🔗 &lt;a href="https://www.docker.com/" rel="noopener noreferrer"&gt;Docker Website&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🖥️ Using Docker on Windows
&lt;/h2&gt;

&lt;p&gt;If you're using &lt;strong&gt;Windows&lt;/strong&gt;, I highly recommend installing &lt;strong&gt;Docker Desktop.&lt;/strong&gt; It’s a powerful tool that simplifies container management and provides a user-friendly interface.&lt;/p&gt;

&lt;p&gt;🔗 &lt;a href="https://www.docker.com/products/docker-desktop/" rel="noopener noreferrer"&gt;Download Docker Desktop&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Using &lt;strong&gt;Docker&lt;/strong&gt; in your development workflow significantly improves &lt;strong&gt;consistency, scalability, and efficiency&lt;/strong&gt;. Have you tried Docker in your projects? Let’s discuss in the comments! 💬🚀&lt;/p&gt;

</description>
      <category>docker</category>
      <category>programming</category>
      <category>devops</category>
      <category>cicd</category>
    </item>
    <item>
      <title>🚀 Why Use SonarQube in Your Development Workflow?</title>
      <dc:creator>Jean Lucas</dc:creator>
      <pubDate>Fri, 28 Feb 2025 16:04:24 +0000</pubDate>
      <link>https://dev.to/jean_lucas/why-use-sonarqube-in-your-development-workflow-11ek</link>
      <guid>https://dev.to/jean_lucas/why-use-sonarqube-in-your-development-workflow-11ek</guid>
      <description>&lt;p&gt;&lt;strong&gt;Maintaining code quality and security&lt;/strong&gt; has become crucial in any development process. Nowadays, we have many ways to &lt;strong&gt;ensure code quality&lt;/strong&gt;, whether during local development or in a production environment. Regardless of where the code is running, we must ensure that it is &lt;strong&gt;well-structured, optimized, and free from bugs&lt;/strong&gt;. This is where &lt;strong&gt;SonarQube&lt;/strong&gt; comes in.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is SonarQube?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;SonarQube&lt;/strong&gt; is a &lt;strong&gt;code quality and security tool&lt;/strong&gt; that helps developers identify &lt;strong&gt;bugs, code smells, duplications, and vulnerabilities&lt;/strong&gt; in their applications. It supports multiple languages, integrates with various IDEs, and can be used in &lt;strong&gt;CI/CD pipelines&lt;/strong&gt; to enforce &lt;strong&gt;quality standards&lt;/strong&gt; before deployment.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Use SonarQube?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;✅ Detects bugs and vulnerabilities&lt;/strong&gt;&lt;br&gt;
SonarQube scans your code for security risks, memory leaks, and potential runtime errors (many of which might go unnoticed during development) before they cause real issues.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;✅ Improves code maintainability&lt;/strong&gt;&lt;br&gt;
By identifying code smells, SonarQube helps developers write cleaner and more efficient code, reducing technical debt.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;✅ Enforces coding standards&lt;/strong&gt;&lt;br&gt;
It ensures that developers &lt;strong&gt;follow best practices&lt;/strong&gt; by applying &lt;strong&gt;configurable rules&lt;/strong&gt; to the codebase, such as indentation, line breaks, typing conventions, and other formatting guidelines.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;✅ Integrates with IDEs&lt;/strong&gt;&lt;br&gt;
SonarQube provides &lt;strong&gt;real-time feedback&lt;/strong&gt; while coding, helping you fix issues before committing your changes. It is compatible with many languages, but if you're working with &lt;strong&gt;TypeScript&lt;/strong&gt;, I recommend using &lt;strong&gt;SonarLint + ESLint + Prettier&lt;/strong&gt; a powerful combination of tools that will help you write &lt;strong&gt;clean and efficient&lt;/strong&gt; code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;✅ Works in CI/CD pipelines&lt;/strong&gt;&lt;br&gt;
You can automate code quality checks in your build pipeline, preventing bad code from being merged into production.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Using SonarQube in VS Code&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For &lt;strong&gt;real-time code analysis&lt;/strong&gt; inside your IDE, you can use the &lt;strong&gt;SonarLint&lt;/strong&gt; extension for &lt;strong&gt;VS Code&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to install SonarLint in VS Code?
&lt;/h2&gt;

&lt;p&gt;1️⃣ Open &lt;strong&gt;VS Code.&lt;/strong&gt;&lt;br&gt;
2️⃣ Go to &lt;strong&gt;Extensions&lt;/strong&gt; (Ctrl+Shift+X).&lt;br&gt;
3️⃣ Search for &lt;strong&gt;SonarLint&lt;/strong&gt; and install it.&lt;br&gt;
4️⃣ Restart &lt;strong&gt;VS Code&lt;/strong&gt; and configure it to &lt;strong&gt;connect with SonarQube&lt;/strong&gt; (if needed).&lt;/p&gt;

&lt;p&gt;Now, &lt;strong&gt;SonarLint&lt;/strong&gt; will &lt;strong&gt;highlight issues&lt;/strong&gt; in your code as you write it!&lt;/p&gt;

&lt;h2&gt;
  
  
  Using SonarQube in CI/CD Pipelines
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Setting up SonarQube in a CI/CD pipeline is a deep topic that I can cover in another post! 🔥&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;Using SonarQube (or SonarLint in VS Code) is essential for maintaining high-quality, secure, and maintainable code. Whether working in your IDE or enforcing quality gates in your CI/CD pipeline, it helps you catch issues early, improve code reliability, ensure the quality of the code, avoid duplications blocks of code and show us points that we can improve.&lt;/p&gt;

&lt;p&gt;📌 Do you use SonarQube or SonarLint in your projects? Let’s discuss in the comments! 💬&lt;/p&gt;

</description>
      <category>programming</category>
      <category>sonar</category>
      <category>codereview</category>
      <category>cleancode</category>
    </item>
    <item>
      <title>🚀 Why Use ESLint in Your Project?</title>
      <dc:creator>Jean Lucas</dc:creator>
      <pubDate>Thu, 27 Feb 2025 12:10:25 +0000</pubDate>
      <link>https://dev.to/jean_lucas/why-use-eslint-in-your-project-3p83</link>
      <guid>https://dev.to/jean_lucas/why-use-eslint-in-your-project-3p83</guid>
      <description>&lt;p&gt;When working on a project, maintaining &lt;strong&gt;code quality and consistency&lt;/strong&gt; is just as important as writing functional code. And who has never encountered &lt;strong&gt;a piece of code that's hard to understand&lt;/strong&gt;?&lt;/p&gt;

&lt;p&gt;Nowadays, &lt;strong&gt;refactoring&lt;/strong&gt; has become a common practice due to code being written without proper patterns and best programming practices. This is where ESLint comes in, helping developers &lt;strong&gt;prevent bugs, enforce best practices, and improve maintainability.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What is ESLint?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;ESLint&lt;/strong&gt; is a powerful &lt;strong&gt;linter&lt;/strong&gt; for JavaScript and TypeScript that analyzes your code, detects issues before they cause problems, and even highlights areas that can be improved to meet the best standards. It enforces rules based on predefined or custom configurations, helping teams maintain a &lt;strong&gt;clean and consistent&lt;/strong&gt; codebase.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Use ESLint?
&lt;/h2&gt;

&lt;p&gt;✅ &lt;strong&gt;Catches errors early&lt;/strong&gt;&lt;br&gt;
Detects common mistakes such as &lt;strong&gt;unused variables, incorrect imports, and potential runtime errors&lt;/strong&gt; before they break your application.&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;Enforces best practices&lt;/strong&gt;&lt;br&gt;
Encourages good coding habits by following recommended standards, such as &lt;strong&gt;using === instead of ==&lt;/strong&gt; this exemple is simple but give us a glimpse the intent of ESlint.&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;Improves readability and maintainability&lt;/strong&gt;&lt;br&gt;
A well-structured and consistent codebase makes it easier for developers to &lt;strong&gt;collaborate and understand&lt;/strong&gt; the code. It also saves time in the future when adding &lt;strong&gt;new features&lt;/strong&gt; or onboarding &lt;strong&gt;new developers.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;Boosts development speed&lt;/strong&gt;&lt;br&gt;
By &lt;strong&gt;automating code analysis&lt;/strong&gt;, developers spend less time debugging and more time building features.&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;Compatible with Prettier&lt;/strong&gt;&lt;br&gt;
ESLint can work alongside &lt;strong&gt;Prettier&lt;/strong&gt; to &lt;strong&gt;format and lint&lt;/strong&gt; your code, ensuring &lt;strong&gt;both style and quality&lt;/strong&gt; are maintained.&lt;/p&gt;

&lt;p&gt;📌 If you don't know what Prettier is, check out my post:&lt;br&gt;
&lt;strong&gt;💅 Why Use Prettier in Your Project?&lt;/strong&gt;&lt;br&gt;
🔗 &lt;a href="https://dev.to/jean_lucas/why-use-prettier-in-your-project-58dp"&gt;https://dev.to/jean_lucas/why-use-prettier-in-your-project-58dp&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Let's see a simple example
&lt;/h2&gt;

&lt;p&gt;Take a look at the code below. We can identify two common issues that might lead to unexpected behavior in an application:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1️⃣ Variable typing is missing.&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;2️⃣ Comparison is done using == instead of ===.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;ESLint &lt;strong&gt;alerts us&lt;/strong&gt; with messages explaining these issues and &lt;strong&gt;prevents the project from building&lt;/strong&gt; until they are fixed. This guarantees &lt;strong&gt;better code quality&lt;/strong&gt; for both local development and deployment.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Without ESLint:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;compareValues&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;firstValue&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;secondValue&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;firstValue&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="nx"&gt;secondValue&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;They are equal&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;They are different&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;With ESLint:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Now, all issues are fixed, making the code &lt;strong&gt;safer and more reliable:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;compareValues&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;firstValue&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;number&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;secondValue&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;number&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;firstValue&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="nx"&gt;secondValue&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;They are equal&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;They are different&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;p&gt;Using &lt;strong&gt;ESLint&lt;/strong&gt; is a &lt;strong&gt;game changer&lt;/strong&gt; for modern development, ensuring &lt;strong&gt;clean, error-free, and maintainable&lt;/strong&gt; code. Combined with tools like &lt;strong&gt;Prettier&lt;/strong&gt;, it helps you and your team &lt;strong&gt;focus on building great software instead of fixing code issues.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;📌 &lt;strong&gt;Do you already use ESLint in your projects?&lt;/strong&gt; How has it helped you? Let’s discuss in the comments! 💬&lt;/p&gt;

</description>
      <category>eslint</category>
      <category>typescript</category>
      <category>javascript</category>
      <category>programming</category>
    </item>
    <item>
      <title>💅 Why Use Prettier in Your Project?</title>
      <dc:creator>Jean Lucas</dc:creator>
      <pubDate>Wed, 26 Feb 2025 12:37:27 +0000</pubDate>
      <link>https://dev.to/jean_lucas/why-use-prettier-in-your-project-58dp</link>
      <guid>https://dev.to/jean_lucas/why-use-prettier-in-your-project-58dp</guid>
      <description>&lt;p&gt;When developing a project, we spend a lot of time ensuring that our code is &lt;strong&gt;efficient&lt;/strong&gt;, &lt;strong&gt;readable&lt;/strong&gt;, and &lt;strong&gt;well-structured&lt;/strong&gt;. However, a major workflow disruptor can be manual code formatting, which consumes time and leads to unnecessary discussions during code reviews.&lt;/p&gt;

&lt;p&gt;That's where Prettier comes in! 🚀&lt;/p&gt;

&lt;p&gt;Let's move on, But from the beginning.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Prettier?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Prettier&lt;/strong&gt; is an opinionated code formatter that automatically enforces a consistent style. It supports multiple languages and integrates seamlessly with &lt;strong&gt;VS Code&lt;/strong&gt;, &lt;strong&gt;WebStorm&lt;/strong&gt;, &lt;strong&gt;Git Hooks&lt;/strong&gt;, and other tools.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why use Prettier?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Less time wasted on formatting.&lt;/strong&gt;&lt;br&gt;
With Prettier configured, you can focus on what truly matters: improving your logic and code quality, while Prettier takes care of formatting for you!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;More productive code reviews.&lt;/strong&gt;&lt;br&gt;
By eliminating discussions about spaces, indentation, and line breaks, teams can concentrate their code reviews on architecture and logic instead.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Consistent codebase.&lt;/strong&gt;&lt;br&gt;
Every file follows the same standard, regardless of who wrote it. This makes code easier to read and maintain.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Automation and easy integration.&lt;/strong&gt;&lt;br&gt;
Prettier can be set up to run automatically when saving a file or before committing, ensuring a standardized codebase at all times.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Follow the example below, a simple function about say hello to someone:&lt;/p&gt;

&lt;p&gt;Without Prrettier:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;sayHello&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Hello, &lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;!&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;With Prrettier:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;sayHello&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Hello, &lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;!&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Even a simple piece of code becomes more readable and structured!&lt;/p&gt;

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

&lt;p&gt;Using Prettier is not just about formatting, is not just become your code beautiful, it's about productivity, collaboration, and code quality. Set it up in your project and experience the difference!&lt;/p&gt;

&lt;p&gt;📌 Do you already use Prettier in your workflow? How has it helped you? Let’s discuss in the comments! 💬&lt;/p&gt;

</description>
      <category>typescript</category>
      <category>prettier</category>
      <category>developer</category>
      <category>programming</category>
    </item>
    <item>
      <title>Handling Errors in TypeScript: Why Use unknown in catch (e: unknown)</title>
      <dc:creator>Jean Lucas</dc:creator>
      <pubDate>Tue, 25 Feb 2025 12:31:14 +0000</pubDate>
      <link>https://dev.to/jean_lucas/handling-errors-in-typescript-why-use-unknown-in-catch-e-unknown-1aji</link>
      <guid>https://dev.to/jean_lucas/handling-errors-in-typescript-why-use-unknown-in-catch-e-unknown-1aji</guid>
      <description>&lt;p&gt;When dealing with exceptions in TypeScript, it’s common to see something like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;try&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// Desired logic.&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;catch &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// This can cause an error!&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;By default, TypeScript assumes that &lt;strong&gt;(e)&lt;/strong&gt; is of type &lt;strong&gt;any&lt;/strong&gt;. However, common errors such as 403, 404, 500, 504, and many others can trigger exceptions, and they don’t always share the same response structure. This can lead to runtime issues if you try to handle the error in a user-friendly way without properly validating its type.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Use &lt;strong&gt;unknown&lt;/strong&gt; ?
&lt;/h2&gt;

&lt;p&gt;The &lt;strong&gt;unknown&lt;/strong&gt; type was introduced as a safer alternative to any. It prevents us from performing direct operations on a variable without first verifying its type, forcing us to handle errors correctly before accessing any properties.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Correct Error Handling Example:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;try&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// Desired logic.&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;catch &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;unknown&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt; &lt;span class="k"&gt;instanceof&lt;/span&gt; &lt;span class="nb"&gt;Error&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// Now it's safe to access .message&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Unknown error:&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;With this approach, we prevent unknown errors from breaking our application and ensure that unexpected issues don’t escape our control or get directly exposed to the end user.&lt;/p&gt;

</description>
      <category>typescript</category>
      <category>angular</category>
      <category>react</category>
      <category>node</category>
    </item>
  </channel>
</rss>
