<?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: Zied Ghalleb</title>
    <description>The latest articles on DEV Community by Zied Ghalleb (@zied_ghalleb).</description>
    <link>https://dev.to/zied_ghalleb</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%2F23025%2F2154b841-39bb-454e-9078-9075c7b265c3.png</url>
      <title>DEV Community: Zied Ghalleb</title>
      <link>https://dev.to/zied_ghalleb</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/zied_ghalleb"/>
    <language>en</language>
    <item>
      <title>How to show diff in Markdown file</title>
      <dc:creator>Zied Ghalleb</dc:creator>
      <pubDate>Sun, 11 Feb 2024 14:40:04 +0000</pubDate>
      <link>https://dev.to/zied_ghalleb/how-to-show-diff-in-markdown-file-e2p</link>
      <guid>https://dev.to/zied_ghalleb/how-to-show-diff-in-markdown-file-e2p</guid>
      <description>&lt;p&gt;In software development, accurately communicating code changes is crucial for collaboration. Markdown is a lightweight markup language widely used for documentation, including README files.&lt;br&gt;
One powerful feature of Markdown is its ability to display code differences using the diff syntax.&lt;/p&gt;

&lt;p&gt;🔄 What is Markdown diff ?&lt;br&gt;
Markdown diff is a syntax used to represent the difference between two pieces of code by highlighting additions, deletions within the code, making it easier for software engineers to see the changes.&lt;/p&gt;

&lt;p&gt;✨ How to Use Markdown diff ?&lt;br&gt;
Very simple&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Identify changes: Determine the changes you want to showcase.&lt;/li&gt;
&lt;li&gt;Format changes: Use the diff syntax to format your code differences.&lt;/li&gt;
&lt;li&gt;Prefix the line: Use a minus sign (-) to indicate deletions and a plus sign (+) to indicate additions.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media.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%2Ftgc8mi4649x3ltjk69dj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Ftgc8mi4649x3ltjk69dj.png" alt="Diff in Markdown"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Join me on this learning journey for more software engineering tips and tricks 🙌 🚀&lt;/p&gt;

</description>
      <category>markdown</category>
      <category>readme</category>
      <category>programming</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>Dependencies in the JavaScript ecosystem</title>
      <dc:creator>Zied Ghalleb</dc:creator>
      <pubDate>Sun, 14 Jan 2024 18:22:48 +0000</pubDate>
      <link>https://dev.to/zied_ghalleb/dependencies-in-the-javascript-ecosystem-52kp</link>
      <guid>https://dev.to/zied_ghalleb/dependencies-in-the-javascript-ecosystem-52kp</guid>
      <description>&lt;p&gt;What do dependencies mean in the JavaScript ecosystem, what are their types, and how do you choose between them?&lt;/p&gt;

&lt;h3&gt;
  
  
  What are Dependencies in JS:
&lt;/h3&gt;

&lt;p&gt;Dependencies are simply external pieces of code or libraries that your project relies on to function properly.&lt;/p&gt;

&lt;h3&gt;
  
  
  Types of Dependencies:
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1- Dependencies:&lt;/strong&gt;&lt;br&gt;
These are the regular dependencies that your project needs to run&lt;br&gt;
(ex: React)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2- Development Dependencies (devDependencies):&lt;/strong&gt;&lt;br&gt;
These are the dependencies which only needed during development and testing but not while running your code&lt;br&gt;
(ex: jest, babel, eslint...)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3- Peer Dependencies (peerDependencies):&lt;/strong&gt;&lt;br&gt;
These are the dependencies that you provide when you publish your project.&lt;br&gt;
It helps you letting other consumers of your project know that they need to install the same exact dependency your project expect to work correctly.&lt;br&gt;
It also helps preventing version conflicts.&lt;br&gt;
(ex: React is a peer dependency for React DOM)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4- Optional Dependencies (optionalDependencies):&lt;/strong&gt;&lt;br&gt;
These are the dependencies that are not crucial for the project to work&lt;br&gt;
If they fail to install, the main project can still function&lt;br&gt;
(ex: extra features that enhance the user experience but are not mandatory)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5- Bundle Dependencies (bundleDependencies):&lt;/strong&gt;&lt;br&gt;
These are the dependencies that are bundled with your project when it is published.&lt;br&gt;
It ensures specific versions are used, regardless of what might be installed in the consumer's environment. It's useful when you want to control the versions of certain dependencies that are critical for your project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6- Peer Dependencies Meta (peerDependenciesMeta):&lt;/strong&gt;&lt;br&gt;
These are the metadata dependencies which serves to provide npm more information on how your peer dependencies are to be used.&lt;br&gt;
It also helps to resolve conflicting peer dependencies more effectively.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to choose Dependencies:
&lt;/h3&gt;

&lt;p&gt;🎯 Identify specific functionalities required for your project.&lt;br&gt;
🚀 Choose dependencies that scale with your project size.&lt;br&gt;
📚 Evaluate well-documented dependencies for ease of use.&lt;br&gt;
🌐 Opt for dependencies with an active and supportive community.&lt;br&gt;
🤝 Opt for packages that promote collaboration and integration.&lt;br&gt;
🔄 Prefer dependencies regularly updated to ensure compatibility.&lt;br&gt;
🛠️ Select dependencies offering features aligned with your project goals.&lt;br&gt;
🔐 Prioritize dependencies with a good security track record.&lt;br&gt;
💼 Choose dependencies likely to be maintained for the long term.&lt;br&gt;
🧐 Only use dependencies when there is a clear need. Avoid unnecessary dependencies to keep your project lightweight and maintainable.&lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;Understanding what are dependencies, its types and making informed choices ensures that your project is efficient, scalable and meets its functional requirements.&lt;/p&gt;

&lt;p&gt;Join me on this learning journey as I simplify the intricacies of software engineering!&lt;br&gt;
🚀 Let's grow together and become better software engineers 🙌&lt;br&gt;
Ready to level up your skills? 🌐 💻&lt;/p&gt;

</description>
      <category>npm</category>
      <category>softwareengineering</category>
      <category>javascript</category>
      <category>programming</category>
    </item>
    <item>
      <title>What is Semantic Versioning and why you should use it for your software ?</title>
      <dc:creator>Zied Ghalleb</dc:creator>
      <pubDate>Sun, 07 Jan 2024 14:56:00 +0000</pubDate>
      <link>https://dev.to/zied_ghalleb/what-is-semantic-versioning-and-why-you-should-use-it-for-your-software--3449</link>
      <guid>https://dev.to/zied_ghalleb/what-is-semantic-versioning-and-why-you-should-use-it-for-your-software--3449</guid>
      <description>&lt;h3&gt;
  
  
  Introduction
&lt;/h3&gt;

&lt;p&gt;Have you ever wonder why software have those strange numbers attached to them like &lt;strong&gt;1.0.0&lt;/strong&gt; ? Well, that's how we use versioning.&lt;/p&gt;

&lt;h3&gt;
  
  
  Let's break these numbers down:
&lt;/h3&gt;

&lt;p&gt;🎉 &lt;strong&gt;Major version&lt;/strong&gt; (left side number): When you have a version changed from &lt;strong&gt;1.0.0&lt;/strong&gt; to &lt;strong&gt;2.0.0&lt;/strong&gt;, this means there is an incompatible change or breaking change.&lt;br&gt;
🔧 &lt;strong&gt;Minor version&lt;/strong&gt; (middle number): When you have a version changed from &lt;strong&gt;1.0.0&lt;/strong&gt; to &lt;strong&gt;1.1.0&lt;/strong&gt;, this means there is a new feature backward compatible.&lt;br&gt;
🩹 &lt;strong&gt;Patch version&lt;/strong&gt; (right side number): When you have a version changed from &lt;strong&gt;1.0.0&lt;/strong&gt; to &lt;strong&gt;1.0.1&lt;/strong&gt;, this means there is a fix to a tiny bug or issue.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why it's essential:
&lt;/h3&gt;

&lt;p&gt;🌪️ It helps avoid chaos by giving you a clear way to track changes and upgrade&lt;br&gt;
🤝 It helps everyone on the team be on the same page&lt;br&gt;
🐛 It helps teams fix issues and glitches without creating a whole new app&lt;br&gt;
🌟 It helps showing new cool features&lt;br&gt;
⏰ It helps going back to older versions if something goes wrong with last change&lt;/p&gt;

&lt;p&gt;In conclusion, versioning is a crucial aspect of software development, ensuring order, collaboration and efficient management of code evolution.&lt;/p&gt;

&lt;p&gt;For a more detailed and comprehensive guide on semantic versioning, visit &lt;a href="https://semver.org"&gt;https://semver.org&lt;/a&gt;&lt;/p&gt;

</description>
      <category>version</category>
      <category>softwareengineering</category>
      <category>programming</category>
      <category>semver</category>
    </item>
  </channel>
</rss>
