<?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: Muddhit Baid</title>
    <description>The latest articles on DEV Community by Muddhit Baid (@mukulbaid63).</description>
    <link>https://dev.to/mukulbaid63</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%2F479102%2F64d9a240-4f06-4fee-8a43-e4687cab4400.jpeg</url>
      <title>DEV Community: Muddhit Baid</title>
      <link>https://dev.to/mukulbaid63</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mukulbaid63"/>
    <language>en</language>
    <item>
      <title>Learn Design Patterns: Part 1</title>
      <dc:creator>Muddhit Baid</dc:creator>
      <pubDate>Mon, 15 Aug 2022 13:11:46 +0000</pubDate>
      <link>https://dev.to/mukulbaid63/learn-design-patterns-part-1-d2h</link>
      <guid>https://dev.to/mukulbaid63/learn-design-patterns-part-1-d2h</guid>
      <description>&lt;p&gt;Hey folks!!! Happy to see you here.&lt;/p&gt;

&lt;p&gt;We will be starting with our series on Design Patterns, where you will get to see the patterns in the most basic form with an extensive set of examples.&lt;/p&gt;

&lt;p&gt;Let's start with setting up the context for today's article.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/d31vTpVi1LAcDvdm/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/d31vTpVi1LAcDvdm/giphy.gif" alt="Designer" width="480" height="362"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Design Patterns. What and Why?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Design Patterns are a blueprint or reusable template for commonly recurring challenges in Object oriented software design.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Design patterns are nowhere directly related to code, which also makes them independent of the programming language. They are high-level solutions carved out after identifying the patterns in the problems encountered frequently by developers. Once you understand the pattern, that is used to construct the solution for the use case underlying the pattern.&lt;/p&gt;

&lt;p&gt;Also, adding a pattern as a solution reduces engineering and helps retain uniformity in systems, which is really important while you are building a system in teams. Along with that, it also helps maintainability and readability of the code because of the common vocabulary design patterns provides.&lt;/p&gt;

&lt;p&gt;In other words, it can be referred to as a description of a solution, that can be used in different situations. Note that, design patterns should not be confused with the algorithms, as algorithms are sequences of actions to be executed that are pre-defined.&lt;/p&gt;

&lt;p&gt;Now that, we know what design patterns are, and their importance, let's move to the different types of patterns. They can be mainly broken down into three parts, on the basis of their intent.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ROEgGM0f--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://miro.medium.com/max/1400/1%2AEHEZA9d_ArShK5fUX7ZHmg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ROEgGM0f--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://miro.medium.com/max/1400/1%2AEHEZA9d_ArShK5fUX7ZHmg.png" alt="Design Patterns" width="880" height="1251"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Creational, Structural, and Behavioral patterns&lt;/strong&gt; are the three main types of patterns which we will also be discussed along with their various patterns under these buckets. Basically, these are the patterns meant to cover the lifecycle of process of building a system, which tells how to create objects, structure classed to form a sub-system, and how to make your objects interact with each other.&lt;/p&gt;

&lt;p&gt;Let’s get an overview of the above three main types of patterns.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Creational Patterns:&lt;/strong&gt;&lt;br&gt;
These are basically related to the way classes are instantiated and objects are created. These are used when we have specific use-cases where some action is needed right when the object is created or at the time of instantiation of the class. These are aimed to provide a more general and flexible approach of creating an object.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--1F3wePVg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://miro.medium.com/max/1400/1%2A0lVbRefb7dWGu8Vfb9Sb3Q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1F3wePVg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://miro.medium.com/max/1400/1%2A0lVbRefb7dWGu8Vfb9Sb3Q.png" alt="Creational Pattern" width="857" height="427"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Example of a creational pattern&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Structural Design Patterns:&lt;/strong&gt;&lt;br&gt;
These patterns are concerned with assembling the objects and classes together to form a larger subsystem that is extensible and offers additional functionality.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--jqHhXWvv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://miro.medium.com/max/1400/1%2Arh1qW5q2FtukT4aYIKb38g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jqHhXWvv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://miro.medium.com/max/1400/1%2Arh1qW5q2FtukT4aYIKb38g.png" alt="Structural Pattern" width="880" height="527"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Example of a structural design pattern&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Behavioral Design Patterns&lt;/strong&gt;:&lt;br&gt;
These patterns are concerned with algorithms and the assignment of responsibilities of new objects, and also focus on how objects communicate with each other while still being loosely coupled.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--uGH6V1eY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://miro.medium.com/max/1400/1%2A2uNlAr6FvzWlskygQb0BuQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--uGH6V1eY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://miro.medium.com/max/1400/1%2A2uNlAr6FvzWlskygQb0BuQ.png" alt="Behavioral Pattern" width="880" height="533"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Example of a behavioral design pattern&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;We have learned about the overview of design patterns, their importance, and the three main types in brief. In upcoming articles, I will be bringing you extensive coverage of each pattern under all types, with code examples for free.&lt;/p&gt;

&lt;p&gt;That’s it and if you found this article helpful, please click the clap 👏button below, you can also follow me on &lt;a href="https://twitter.com/Muddhit"&gt;Twitter&lt;/a&gt;, subscribe to my weekly newsletter &lt;a href="https://muddhit.substack.com/?r=1npetb&amp;amp;s=w&amp;amp;utm_campaign=pub&amp;amp;utm_medium=web"&gt;here&lt;/a&gt;, and if you have any doubt, feel free to comment! I’d be happy to help. 🤘🏻&lt;/p&gt;

</description>
      <category>designpattens</category>
      <category>cleancode</category>
      <category>oop</category>
      <category>pattern</category>
    </item>
    <item>
      <title>Getting Started: Git and Github for beginners with Hacktoberfest 2021</title>
      <dc:creator>Muddhit Baid</dc:creator>
      <pubDate>Sun, 03 Oct 2021 11:18:40 +0000</pubDate>
      <link>https://dev.to/mukulbaid63/getting-started-git-and-github-for-beginners-with-hacktoberfest-2021-3b51</link>
      <guid>https://dev.to/mukulbaid63/getting-started-git-and-github-for-beginners-with-hacktoberfest-2021-3b51</guid>
      <description>&lt;p&gt;&lt;strong&gt;At the stroke of the midnight hour, when the world sleeps, Programmers will awake to celebrate Hacktoberfest. A moment comes, which comes but once in a year, when we step in the Open Source Planet— when PR’s rain, when the swags wait for you&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Beginning of the October, marks the beginning of Open source journey of a developer and the &lt;a href="https://hacktoberfest.digitalocean.com/"&gt;Hacktoberfest🎉&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;For all the aspiring developers, this article is for you to start the contribution. We will be having look towards overview on Git &amp;amp; Github and also the steps to make you first PR.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;P.S: PR → Pull request.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Git is a version control system used for collaboration and tracking software in the development process. It’s largely used from solo programmers to big tech giants.&lt;/p&gt;

&lt;p&gt;Github, along with being a software for version control, feature tracking, hosting &amp;amp; lot more functionalities, its also a gigantic community for developers.&lt;/p&gt;

&lt;p&gt;To get started:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Create a Github account by signing up here.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;After signing up, you will land up to you account dashboard. After it, create a new Repository by navigating in the repositories tab, and click on the Create New button.&lt;br&gt;
&lt;a href="https://ibb.co/VT4PbFd"&gt;New Repo Demo&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Now Download and install the latest version of git from &lt;a href="https://git-scm.com/downloads"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;After the installation is done, open the Terminal or Command Prompt and execute the following commands to configure your git setup.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;code&gt;git config --global user.name "&amp;lt;Enter your github username&amp;gt;"&lt;/code&gt;&lt;br&gt;
&lt;code&gt;git config --global user.email "&amp;lt;Enter your github email&amp;gt;"&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;You have successfully setup you git and github!! Yay🎉.&lt;br&gt;
Now heading towards the PR.&lt;/p&gt;

&lt;p&gt;First select the repository &lt;em&gt;(Newbies don’t worry, i have handpicked some top repos for you at the end)&lt;/em&gt; which you want to work on and then open it. Finding good repositories might require some effort but whenever you’re looking a repo, Please firstly check if the Opened Issues(in Issues tab) can be solved by you or not. You can then comment inside a issue, asking the repository maintainers to assign it to you. After its assigned to you, Fork the repository by clicking on the fork button on the top right corner, this will fork and create a copy of original repo in your account.&lt;br&gt;
&lt;a href="https://ibb.co/4FPsnQH"&gt;Fork Demo&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click in the Code button and copy the url. I have taken one of my repository for the demo, you can also commit here.&lt;/p&gt;

&lt;p&gt;Now execute the following command in your terminal( GIT BASH will be preferred, this comes along with the git) along with the copied URL.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;git clone &amp;lt;COPIED_URL&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Eg: &lt;code&gt;git clone https://github.com/Mukulbaid63/Hack-with-JavaScript&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://ibb.co/qDcQKv1"&gt;Successful clone message&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The Above command clones the repository in the your local system.&lt;/p&gt;

&lt;p&gt;Exexcute this command to go inside your repo.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;cd &amp;lt;REPO_NAME&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;At this point our commits will be going to the master branch but it’s advised to not commit in master branch, because the reviewers may review and then merge it , if it passes all the checks. So to create a new branch , execute the command below:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;git checkout -b &amp;lt;NEW_BRANCH_NAME&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Let’s decode the above command &lt;code&gt;-b&lt;/code&gt; creates a new branch and checkout switches the branch.&lt;/p&gt;

&lt;p&gt;Now open the cloned folder in VS code(you can use any other code editors also). Now open the file which requires the changes. Complete all the requirements given in it and then save all the files.&lt;/p&gt;

&lt;p&gt;After the issue is resolved and working on your local system, now its time to push it in the original repository.&lt;br&gt;
Open Terminal and Follow the steps:&lt;/p&gt;

&lt;p&gt;Execute the command to add all your changes to STAGING area.&lt;br&gt;
&lt;code&gt;git add .&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;If you want to commit only some files, then add the filename instead instead of .&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Now to commit the changes from STAGING area, execute the command below:&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;code&gt;git commit -am "&amp;lt;COMMIT_MESSAGE&amp;gt;"&lt;/code&gt;&lt;br&gt;
&lt;code&gt;-m&lt;/code&gt;: Sets the commit message.&lt;br&gt;
&lt;code&gt;-a&lt;/code&gt; or &lt;code&gt;— all&lt;/code&gt;: Commits all modified or deleted files.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The last step will be to push the commits to the branch which you created initally.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;code&gt;git push origin &amp;lt;YOUR_BRANCH_NAME&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://ibb.co/542q5pv"&gt;Successful Push&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After successful push, you will see similar message as the above one. Now head towards the forked repo in Github. You will find some change there.&lt;br&gt;
&lt;a href="https://ibb.co/KNLY7qg"&gt;Pull request in Github&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Similar row will appear after successful push, to create a PR , click on Compare &amp;amp; pull request . It will land you to the page shown below.&lt;br&gt;
&lt;a href="https://ibb.co/4FPsnQH"&gt;PR creation Page&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;By adding proper commit name and comments which can help your changes be clear to anyone other who opens your PR, you can now click on Create pull request. This creates the PR😀🎉. You can check the status on the Pull requests tab.&lt;br&gt;
&lt;a href="https://ibb.co/gJNTs2f"&gt;PR created&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And that’s it. &lt;strong&gt;You have successfully created your first PR&lt;/strong&gt;. Now , sit back and enjoy a cup of tea, as now your PR will be merged by the maintainer if it fulfills all the requirements. After its merged here, you can see the changes in the original repo also.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Get 4 PR’s merged in a month and here comes the Hacktoberfest swags for you!!!👏&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you’re struggling to find a Repository to work on, here are some top and handpicked repos by me, especially for beginners.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://github.com/praveenscience/FinalYear-Project-Ideas"&gt;https://github.com/praveenscience/FinalYear-Project-Ideas&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/vinitshahdeo/Hacktoberfest2021"&gt;https://github.com/vinitshahdeo/Hacktoberfest2021&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/HarshCasper/Rotten-Scripts"&gt;https://github.com/HarshCasper/Rotten-Scripts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/AshuKulu/HacktoberFest2021"&gt;https://github.com/AshuKulu/HacktoberFest2021&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/Sushreesatarupa/DSA-cpp-Hacktoberfest2021"&gt;https://github.com/Sushreesatarupa/DSA-cpp-Hacktoberfest2021&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/aritraroy24/HACKTOBERFEST2021_PATTERN"&gt;https://github.com/aritraroy24/HACKTOBERFEST2021_PATTERN&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/designerSaha/status/1443455576852217858"&gt;https://twitter.com/designerSaha/status/1443455576852217858&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Resources:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://hf.praveen.science/"&gt;https://hf.praveen.science/&lt;/a&gt; 👈🏻 Must check this🤩&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://learngitbranching.js.org/(for"&gt;https://learngitbranching.js.org/(for&lt;/a&gt; better visualization)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Connect with me: &lt;strong&gt;&lt;a href="https://www.linkedin.com/in/mukulbaid63/"&gt;Linkedin&lt;/a&gt;&lt;/strong&gt; | &lt;strong&gt;&lt;a href="https://twitter.com/MuddhitCodes"&gt;Twitter&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>hacktoberfest</category>
      <category>opensource</category>
      <category>codenewbie</category>
    </item>
  </channel>
</rss>
