<?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: M Ilham</title>
    <description>The latest articles on DEV Community by M Ilham (@mcilhm).</description>
    <link>https://dev.to/mcilhm</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%2F2262366%2Fd8c01edb-a97e-485a-b229-c6da3f50107c.jpeg</url>
      <title>DEV Community: M Ilham</title>
      <link>https://dev.to/mcilhm</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mcilhm"/>
    <language>en</language>
    <item>
      <title>Repositories Explained: A Simple Analogy</title>
      <dc:creator>M Ilham</dc:creator>
      <pubDate>Thu, 07 Nov 2024 03:43:22 +0000</pubDate>
      <link>https://dev.to/mcilhm/repositories-explained-a-simple-analogy-2np4</link>
      <guid>https://dev.to/mcilhm/repositories-explained-a-simple-analogy-2np4</guid>
      <description>&lt;h2&gt;
  
  
  Analogy
&lt;/h2&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%2Fruws7zhmd79yyksbq5lk.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%2Fruws7zhmd79yyksbq5lk.png" alt="analogy" width="288" height="77"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Imagine you're preparing a complex meal. You have a variety of raw ingredients: vegetables, meat, spices, and so on. To maintain organization and efficiency, you'd group these ingredients into separate containers. Each container could be likened to a small repository in the context of your kitchen.&lt;/p&gt;

&lt;p&gt;When you start cooking, you'll take ingredients from these containers and process them according to the recipe. This process is similar to how we take code from various repositories and combine them to build an application.&lt;/p&gt;

&lt;h2&gt;
  
  
  Repositories in Programming: More Than Just Storage
&lt;/h2&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%2F6nwoaqbrbpg4w7gglgn4.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%2F6nwoaqbrbpg4w7gglgn4.png" alt="git-and-github" width="588" height="200"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In programming, a repository is far more than just a storage place. It's the heart of version control systems like Git, allowing us to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;&lt;strong&gt;Track changes&lt;/strong&gt;&lt;/em&gt;: Every change we make to the code is recorded in the repository. This allows us to view the history of changes, compare different versions, and even revert the code to a previous version if errors occur.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;&lt;strong&gt;Collaborate&lt;/strong&gt;&lt;/em&gt;: Multiple developers can work simultaneously on the same project using the same repository. Features like branching allow each developer to work on different parts of the code without interfering with the work of others.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;&lt;strong&gt;Create versions&lt;/strong&gt;&lt;/em&gt;: Each significant change to the code can be labeled as a version. This allows us to release different versions of an application with different features and improvements.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Monorepo vs Multirepo
&lt;/h2&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%2Fz4apebazbuhyq3fuhfp6.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%2Fz4apebazbuhyq3fuhfp6.png" alt="Monorepo-vs-Multirepo" width="800" height="337"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As far as I know, the repo concept comes in two forms: Multi-repo and Monorepo. Both concepts have advantages and disadvantages. Not all problems can be solved using the same concept. Some can be solved with one concept, while others with the other.&lt;/p&gt;

&lt;p&gt;Common problems encountered include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;em&gt;Lack of a solid pattern&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;em&gt;Difficulty in maintenance&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;em&gt;Duplicate dependencies&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;em&gt;Lack of standardization&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;em&gt;Rewriting the same code&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;em&gt;etc.&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So, which concept is most suitable for building a system? This depends on the available resources and our needs. As programmers, we must also be able to determine which concept to use before building a system. Because if the initial step is wrong, it will only make things more difficult for us later.&lt;/p&gt;

&lt;p&gt;Let's delve deeper into the benefits of both multi-repo and monorepo approaches. Understanding these concepts will enhance our development strategy significantly.&lt;/p&gt;

&lt;p&gt;Happy Coding and don’t forget to make it Coffee😍😎&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>designsystem</category>
      <category>programming</category>
    </item>
    <item>
      <title>The Backend Brew: A Developer’s Daily Dose</title>
      <dc:creator>M Ilham</dc:creator>
      <pubDate>Mon, 28 Oct 2024 04:43:24 +0000</pubDate>
      <link>https://dev.to/mcilhm/the-backend-brew-a-developers-daily-dose-153n</link>
      <guid>https://dev.to/mcilhm/the-backend-brew-a-developers-daily-dose-153n</guid>
      <description>&lt;p&gt;Hola!&lt;/p&gt;

&lt;p&gt;Welcome to my first post. I’m a Backend Engineer. As a backend engineer, I often find myself drawn to the meticulous nature of crafting software. Much like a skilled barista meticulously prepares each cup of coffee, I take pride in crafting clean, efficient, and elegant code. From the initial spark of an idea to the final deployment, I find immense satisfaction in the entire development process.&lt;/p&gt;

&lt;p&gt;I’m constantly exploring the ever-evolving landscape of backend technologies, from the robust foundations of Node.js and the power of TypeScript to innovative frameworks like NestJS. I’m passionate about writing code that not only functions flawlessly but also delights users with its performance and reliability.&lt;/p&gt;

&lt;p&gt;In this blog, I’ll share my experiences, insights, and lessons learned. We’ll delve into topics ranging from architectural patterns to performance optimization, from database design to API development. Together, we’ll unravel the complexities of backend development, one function at a time.&lt;/p&gt;

&lt;p&gt;Thankyouu!! Happy Coding and don’t forget to make it Coffee😍😎&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>javascript</category>
      <category>programming</category>
      <category>introduce</category>
    </item>
  </channel>
</rss>
