<?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: Chalermporn Posoppitakwong</title>
    <description>The latest articles on DEV Community by Chalermporn Posoppitakwong (@chalermporn).</description>
    <link>https://dev.to/chalermporn</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%2F336206%2Ff1c5eb5c-e6d3-4c88-8639-b94f1f9294bd.jpeg</url>
      <title>DEV Community: Chalermporn Posoppitakwong</title>
      <link>https://dev.to/chalermporn</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/chalermporn"/>
    <language>en</language>
    <item>
      <title>Angular13 migrate Jest</title>
      <dc:creator>Chalermporn Posoppitakwong</dc:creator>
      <pubDate>Wed, 17 Aug 2022 05:52:00 +0000</pubDate>
      <link>https://dev.to/chalermporn/angular13-migrate-jest-3a68</link>
      <guid>https://dev.to/chalermporn/angular13-migrate-jest-3a68</guid>
      <description>&lt;h1&gt;
  
  
  Start Angular 13
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ng i -g @angular/cli@13
ng new my-app
npm i --legacy-peer-deps
//or
npm -loglevel info install --legacy-peer-deps -strict-ssl false
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;migrate Jest&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm remove -D @types/jasmine jasmine-core karma-jasmine karma-jasmine-html-reporter karma karma-chrome-launcher karma-coverage

rm -rf karma.conf.js src/test.t
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;bun remove&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;bun remove -d @types/jasmine jasmine-core karma-jasmine karma-jasmine-html-reporter karma karma-chrome-launcher karma-coverage
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;ref: &lt;a href="https://www.npmjs.com/package/@angular-builders/jest"&gt;https://www.npmjs.com/package/@angular-builders/jest&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm i -D jest @types/jest @angular-builders/jest@13.x.x --legacy-peer-deps
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;add script to package.json&lt;/strong&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"clear": "rm -rf node_modules *-lock.* *.lock",
"init": "npm i --legacy-peer-deps",
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;ref: &lt;a href="https://github.com/briebug/jest-schematic"&gt;https://github.com/briebug/jest-schematic&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;benchmark bun vs npm vs yarn vs pnpm command line&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;hyperfine "bun install --backend=hardlink" "yarn install --on-scripts" "npm install --no-scripts --ignore-scripts" "pnpm install --ignore-scripts" --prepare="rm -rf node_modules" --cleanup="rm -rf node_modules" --warmup=8
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
    </item>
    <item>
      <title>Semantic versioning with git flow</title>
      <dc:creator>Chalermporn Posoppitakwong</dc:creator>
      <pubDate>Fri, 19 Nov 2021 10:32:14 +0000</pubDate>
      <link>https://dev.to/chalermporn/semantic-versioning-with-git-flow-m04</link>
      <guid>https://dev.to/chalermporn/semantic-versioning-with-git-flow-m04</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--W_N_a92s--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kvix65tpddjk4grv5m2n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--W_N_a92s--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kvix65tpddjk4grv5m2n.png" alt="Image description" width="880" height="550"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;การเขียน semantic version นั้นมักจะใช้ในการเขียน Library และ API ต่างๆ ซึ่งเลข version ที่เป็น semantic version นั้นจะประกอบไปด้วยเลข 3 ส่วนคือ  x.y.z ( ไม่มี z ก็ได้ )&lt;/p&gt;

&lt;p&gt;โดยที่เลขแต่ละตัวนั้นหมายถึง&lt;/p&gt;

&lt;p&gt;X คือ Major  Version&lt;br&gt;
Y คือ Minor  Version&lt;br&gt;
และสุดท้าย Z คือ Patch Version&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Major&lt;/code&gt; จะเป็นตัวเลขในการเปลี่ยน version ครั้งใหญ่ เช่น เปลี่ยนโฉม UI เลย ตัวเลข Major จะเปลี่ยนเพิ่มขึ้น ก็ต่อเมื่อ API เปลี่ยนแบบ breaking change หมายถึงเปลี่ยนแปลงแบบ application หรือ software รอบข้าง มีสิทธิ์พัง กระทบ จำเป็นต้องอัพเดต code&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Minor&lt;/code&gt;: เป็นการเปลี่ยนในลักษณะการเพิ่มของใหม่ feature ใหม่ ในลักษณะ backward compatible หมายความ การเพิ่มใหม่ ต้องยังคงทำให้เก่ายังทำงานได้ปกติ (คือ code feature เก่าเปลี่ยนแปลงได้ แต่ผลคือ feature เก่ายังต้องทำงานได้เหมือนเดิม)&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Patch&lt;/code&gt;: เป็นตัวเลขย่อยหลักสุดท้าย นั่นคือ มีการเปลี่ยนแปลง code ในลักษณะของการซ่อมแซมของเดิมเท่านั้น (ไม่ทำให้ feature เดิมขาดหายไป) แต่เป็นการ fix ซ่อม เพื่อแก้ bug แก้ defect เท่านั้น&lt;/p&gt;

&lt;h1&gt;
  
  
  Git Flow
&lt;/h1&gt;

&lt;p&gt;รูปแบบการทำงาน &lt;a href="https://nvie.com/posts/a-successful-git-branching-model/"&gt;GitFlow&lt;/a&gt; นั้น ถูกเผยแพร่โดย &lt;a href="https://nvie.com/about/"&gt;Vincent Driessen&lt;/a&gt; เป็นรูปแบบการแตกแขนงที่ช่วยให้สตรีมหลายลําที่มีขอบเขตที่เข้มงวดระหว่างพวกเขา หลักการหลักค่อนข้างง่ายและใช้งานง่าย&lt;br&gt;
Git Flow เป็นความหมายที่เป็นมิตรของ SemVer ที่ช่วยให้นักพัฒนาสามารถสร้างสาขาสําหรับแต่ละคุณสมบัติแพตช์รีลีสหรือ hotfix&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--nQack_JU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3hf608yygvo52l3aab3p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nQack_JU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3hf608yygvo52l3aab3p.png" alt="Image description" width="880" height="1166"&gt;&lt;/a&gt;&lt;br&gt;
From A successful Git branching model&lt;/p&gt;

</description>
    </item>
    <item>
      <title>test</title>
      <dc:creator>Chalermporn Posoppitakwong</dc:creator>
      <pubDate>Sat, 30 May 2020 15:52:28 +0000</pubDate>
      <link>https://dev.to/chalermporn/test-2c5n</link>
      <guid>https://dev.to/chalermporn/test-2c5n</guid>
      <description>

</description>
      <category>test</category>
    </item>
  </channel>
</rss>
