<?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: Negar</title>
    <description>The latest articles on DEV Community by Negar (@negarjf).</description>
    <link>https://dev.to/negarjf</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%2F103228%2F6a6013d7-8a14-438c-b08c-f61ab291f446.jpg</url>
      <title>DEV Community: Negar</title>
      <link>https://dev.to/negarjf</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/negarjf"/>
    <language>en</language>
    <item>
      <title>To All of My Talented Sisters</title>
      <dc:creator>Negar</dc:creator>
      <pubDate>Sun, 07 Mar 2021 23:00:55 +0000</pubDate>
      <link>https://dev.to/negarjf/to-all-of-my-talented-sisters-28jk</link>
      <guid>https://dev.to/negarjf/to-all-of-my-talented-sisters-28jk</guid>
      <description>&lt;p&gt;"Why shouldn't I give it a try?" I wonder, sitting in the living room four years ago.&lt;/p&gt;

&lt;p&gt;Growing up, I always had huge dreams about my future, from being a superhero to becoming an astronaut. Hopefully, my parents never stopped me from dreaming big and never question any of my goals.&lt;/p&gt;

&lt;p&gt;But around age 22, in the middle of my plan for becoming an astrophysicist at the physics faculty, I realized that this is not a job that makes me want to wake up every day and go back to work. I was feeling like that I had a plan for my life for years and now I am lost. I have always been the girl with the plan since I was 6 and now the same person didn't even know what should she do after graduation.&lt;/p&gt;

&lt;p&gt;It was almost 4 years ago when my friend sent me a photo of a girl who was working as a developer and said "Look how successful she is!", that one picture made me wonder "Why shouldn't I give it a try?".&lt;/p&gt;

&lt;p&gt;I have always been into technology. Ever since I've got my very first computer I couldn't get my hands off it. Even when I should study for my exams I rather read the book from the PDF instead of the physical book, just because then I didn't have to leave my computer. But programming was never something for me to think of. &lt;/p&gt;

&lt;p&gt;The summer after my graduation I registered for a short frontend Bootcamp. Compared to the others in the same class I was one of the people with the least related background knowledge. I was scared and fragile. Compared to a person with a programming degree, I was lacking 4 years of studying. With all of that fears and doubts, I kept my mind open and gave all of my attention to the courses. Sometimes, I found myself opening the 20th browser tab to search for the meaning of another new concept just to be able to read an article to the end.&lt;/p&gt;

&lt;p&gt;Nine months later I found my very first job as a Frontend developer with HTML, CSS, Javascript, JQuery, and Bootstrap on my skillset in my resume. I remember promising my employer in the interview that I won't be the same person in two months due to all the new things that would learn. I stood by my words and in two years of working in that team, I never let them down with anything that was assigned to me.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqqpdrjpfq74wacv1mjiq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqqpdrjpfq74wacv1mjiq.png" alt="Alt Text" width="800" height="542"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Meanwhile, I start writing articles and making videos in my free time to share my knowledge as little as it was with the new fellow developers to help them have fewer struggles at the beginning of the road. With all the supports and encouragement that I've got from people online, there were always a few destructive comments, making fun of the simplicity of the topics or accusing me to get attention &lt;strong&gt;just because I am a girl&lt;/strong&gt;, not that I am doing anything valuable. I have to confess that some of these comments dissipate my motivation for showing up and providing more content for a while. But then I've learned no matter how experienced and professional you are, there are always some people feeling insecure about your growth and try to feel better by making you feel insecure on some levels. The best reaction to these destructive behaviors is to keep moving on.&lt;/p&gt;

&lt;p&gt;In the past four years, I've learned that you never know everything and you never have all the answers, even if you have all the degrees and experiences. I've learned that tools and frameworks can be learned in two months but what you need years of experience are the fundamentals that happen to seem less important and useful. I've learned that sometimes your soft skills, morals, and communications are more important factors to make you a valuable employee for a good company than the number of programming languages that you have mastered.&lt;/p&gt;

&lt;p&gt;Last month I proudly had a talk at the &lt;a href="https://frontenddeveloperlove.com/"&gt;JS World Conference&lt;/a&gt;, one of the conferences that I have always been dreaming about. And when it was happening it didn't seem like a dream anymore; It was reality, and it was achievable. I still have my doubts and fears when it comes to doing the things that I have never done, but from the bottom of my heart, I know that all the dreams can become reality, and then they won't seem impossible anymore. There is no such thing as a superhero because everyone can achieve anything, they just need to keep on trying and take a new step forward once in a while.&lt;/p&gt;

&lt;p&gt;...&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Photos form &lt;a href="https://undraw.co/"&gt;unDraw&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>wecoded</category>
      <category>womenintech</category>
      <category>choosetochallenge</category>
    </item>
    <item>
      <title>Use Git More Efficiently: A Simple Git Workflow</title>
      <dc:creator>Negar</dc:creator>
      <pubDate>Fri, 07 Jun 2019 13:17:21 +0000</pubDate>
      <link>https://dev.to/negarjf/use-git-more-efficiently-a-simple-git-workflow-3c0a</link>
      <guid>https://dev.to/negarjf/use-git-more-efficiently-a-simple-git-workflow-3c0a</guid>
      <description>&lt;p&gt;Git without a doubt is one of the essential tools for every developer. As helpful as Git is, not following best practices will make it completely useless. That's why there are different standard workflows to make most out of Git and its awesome features.&lt;br&gt;
For a long time, my inception of Git and GitHub was a tool that back-ups the codes and let us access them online; Which was not completely wrong, but there are so much more about them that I didn't know until I start my work as a developer in &lt;a href="https://yasna.team" rel="noopener noreferrer"&gt;YasnaTeam&lt;/a&gt;.&lt;br&gt;
In our team, about 10 developers are actively working on the same repository. Having the same habit and so-called culture is necessary to avoid conflicts and chaos. With over 100 commits per day, things could get out of hand very soon. To avoid such problems we implement a modified version of &lt;a href="https://datasift.github.io/gitflow/IntroducingGitFlow.html" rel="noopener noreferrer"&gt;Gitflow&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This post has been published on Medium, too.&lt;/em&gt;&lt;/p&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="https://medium.com/@negarjf/use-git-more-efficiently-a-simple-git-workflow-c4e650289ec8" class="ltag__link__link" rel="noopener noreferrer"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afill%3A88%3A88%2F1%2AKARUe8hP075JfcnwzuFHOw.jpeg" alt="Negar Jamalifard"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://medium.com/@negarjf/use-git-more-efficiently-a-simple-git-workflow-c4e650289ec8" class="ltag__link__link" rel="noopener noreferrer"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Use Git More Efficiently: A Simple Git Workflow | by Negar Jamalifard | Medium&lt;/h2&gt;
      &lt;h3&gt;Negar Jamalifard ・ &lt;time&gt;Jun 8, 2019&lt;/time&gt; ・ 
      &lt;div class="ltag__link__servicename"&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%2Fassets%2Fmedium-f709f79cf29704f9f4c2a83f950b2964e95007a3e311b77f686915c71574fef2.svg" alt="Medium Logo"&gt;
        Medium
      &lt;/div&gt;
    &lt;/h3&gt;
&lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;





&lt;h1&gt;
  
  
  How it works
&lt;/h1&gt;

&lt;p&gt;Instead of having one single &lt;code&gt;master&lt;/code&gt; branch, we have another extra branch named &lt;code&gt;dev&lt;/code&gt;. These both branches are locked and no one can push directly into them.&lt;br&gt;
&lt;code&gt;master&lt;/code&gt; is reserved for production only. ‌After testing new features, the repository owner updates &lt;code&gt;master&lt;/code&gt; before each release.&lt;br&gt;
&lt;code&gt;dev&lt;/code&gt; is the default branch that all of the developers create a branch from and merge back into. &lt;code&gt;dev&lt;/code&gt; is always ahead of master and it's the only branch that will be merged into &lt;code&gt;master&lt;/code&gt;, frequently.&lt;/p&gt;
&lt;h1&gt;
  
  
  Naming Branches
&lt;/h1&gt;

&lt;p&gt;We have a pattern for naming our branches.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[Module Name]-[Type]-[Detail]
// Example
users-fix-attach-roles-issue#765
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Module Name
&lt;/h2&gt;

&lt;p&gt;Since we have a modular structure in our code base, changes related to each module should be committed on a separated branch with the module name. This part could be removed if you don't have such structure, in your project.&lt;/p&gt;

&lt;h2&gt;
  
  
  Type
&lt;/h2&gt;

&lt;p&gt;According to the type of task, developers should choose between one of these types:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;feature&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;enhance&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cleanup&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;refactor&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;fix&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;hotfix&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Type &lt;code&gt;hotfix&lt;/code&gt; is for urgent fixes on the master branch and won't be used that often.&lt;/p&gt;

&lt;h2&gt;
  
  
  Detail
&lt;/h2&gt;

&lt;p&gt;The detail is a short description of what is going to be delivered by the branch.&lt;/p&gt;

&lt;p&gt;This branching rules force us to separate each task to meaningful chunks and merge frequently into dev and always have fresh branches. One great side-effect of this approach is to minimize conflicts.&lt;/p&gt;

&lt;h2&gt;
  
  
  Commit Messages
&lt;/h2&gt;

&lt;p&gt;In order to have clean and descriptive commit list, we also have a naming rule for commit messages (I love rules!).&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[[Module Name]] [Commit Message]
// Example
[users] add fetch users endpoint
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Having the module name in each commit message might seem redundant since we have the name in our branch, but the truth is after merging all branches into &lt;code&gt;dev&lt;/code&gt; (or &lt;code&gt;master&lt;/code&gt;), looking at the commits history you cannot say which branch each of the commits was belonged to. Because right now they are all belonged to the &lt;code&gt;dev&lt;/code&gt; (or &lt;code&gt;master&lt;/code&gt;) branch. In order to filter through all commits easily, we need to have the module name somewhere inside the commit message.&lt;/p&gt;

&lt;p&gt;The commit message itself should complete the sentence "This commit will…" grammatically.&lt;/p&gt;

&lt;h1&gt;
  
  
  Pull Requests
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Title
&lt;/h2&gt;

&lt;p&gt;Title of the pull request is automatically filled with the branch name. In case the branch name is too generic, more details are expected to be added.&lt;/p&gt;

&lt;h2&gt;
  
  
  Body
&lt;/h2&gt;

&lt;p&gt;The body should contain details about the pull request. In our workflow pull requests are usually related to an existing issue. We create an issue for each bug or feature. So we link to the related issue inside the pull request body. We also mention highlights of the changes that are made inside the pull using bullet points. We have created a &lt;a href="https://help.github.com/en/articles/creating-a-pull-request-template-for-your-repository" rel="noopener noreferrer"&gt;template for our pull requests&lt;/a&gt;, to facilitate the process.&lt;/p&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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fj0wf7ulw3i1ew1ni2f6l.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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fj0wf7ulw3i1ew1ni2f6l.png" alt="A Pull Request Template"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Review
&lt;/h1&gt;

&lt;p&gt;Code review is one of the most important parts of our daily job. Once a pull request is created, the creator should choose two of peers to review the code based on some prespecified criteria.&lt;br&gt;
Once the pull is approved by reviewers, the creator can merge into dev and delete the branch.&lt;/p&gt;




&lt;p&gt;We have been using this workflow for more that one year and update frequently based on our needs. Do you use some other git workflows on your team? Let me know how they are.&lt;/p&gt;

</description>
      <category>git</category>
      <category>github</category>
      <category>gitflow</category>
      <category>workflow</category>
    </item>
  </channel>
</rss>
