Test Driven Development(TDD) with Node and Typescript

  • TTDG35
  • Classroom
  • Fundamental
  • Thai | 0
Digital Technology

ในหลักสูตรนี้จะมุ่งเน้นไปที่การพัฒนา REST API ด้วย Node ในการเขียนแบบ TypeScript เพื่อให้เห็นว่าการพัฒนา Node ด้วย TypeScript นั้นต้องมีกระบวนการและขั้นตอนในการทำอะไรบ้าง และแนวทางในการพัฒนา REST API นั้นต้องแบ่งเป็น Layer อย่างไรบ้างหลักการ TDD (Test-Driven Development) กับ Node.js โดยการใช้ TypeScript เป็นเรื่องของการเสริมสร้างคุณภาพของ Code และลดการเกิดปัญหาของงานได้ดีขึ้น 

Course description

Time
Days :
3 Day(s)
Duration :
18 Hour(s)
Time :
09:00:00 - 16:00:00
Training Date :
20-22 November 2024
Status :
Open Register
Instructor
Language :
Thai
Venue
Venue :
Software Park Training Room 3rd floor, Software Park Building Chaengwattana Road, Pakkred
Type :
Classroom
Test Driven Development(TDD) with Node and Typescript

Node เป็น Runtime ของภาษา JavaScript ที่ทำให้ JavaScript ทำงานในฝั่ง Server ได้ ประกอบกับการที่ JavaScript เป็นภาษาที่นักพัฒนา Software ทั่วโลกให้การยอมรับและมีการใช้มากที่สุดภาษาหนึ่ง เนื่องจากเป็นภาษาที่เหมาะกับการทำ Web Application และสามารถทำให้ Web Application มีลูกเล่นที่ทำให้ผู้ใช้งานสะดวกยิ่งขึ้น หลังจากที่ Node ได้เปิดตัวมาก็ได้รับความนิยมเป็นอย่างมากเนื่องจากใช้ภาษา JavaScript เป็น หลักในการพัฒนา

เมื่อ Node ได้รับความนิยมสูงมากพอเริ่มนำมาใช้ในการพัฒนา Application ขนาดใหญ่ก็ทำให้เกิดปัญหาหลายๆ อย่างจึงเกิดภาษา TypeScript ที่เข้ามาแก้ปัญหาหลาย ๆ อย่างของ JavaScript ทำให้การเขียนภาษา JavaScript เป็นไปได้อย่างมีประสิทธิภาพ มีความสามารถหลาย ๆ อย่างที่ JavaScript ไม่มี ทำให้การพัฒนา Application ขนาดใหญ่เป็นไปได้อย่างมีประสิทธิภาพมากยิ่งขึ้น

ในหลักสูตรนี้จะมุ่งเน้นไปที่การพัฒนา REST API ด้วย Node ในการเขียนแบบ TypeScript เพื่อให้เห็นว่าการพัฒนา Node ด้วย TypeScript นั้นต้องมีกระบวนการและขั้นตอนในการทำอะไรบ้าง และแนวทางในการพัฒนา REST API นั้นต้องแบ่งเป็น Layer อย่างไรบ้างหลักการ TDD (Test-Driven Development) กับ Node.js โดยการใช้ TypeScript เป็นเรื่องของการเสริมสร้างคุณภาพของ Code และลดการเกิดปัญหาของงานได้ดีขึ้น ในการทำ TDD นั้นจะมีแนวทางสำคัญ ๆ ดังนี้

  • เขียนทดสอบก่อน (Write tests first) โดยการเขียน test อิงตามความต้องการของการทำงานก่อน
  • เขียน Code ให้ผ่านการทดสอบ (Write just enough code) โดยเป็นการเขียนเพื่อหวังผลการผ่านการทดสอบก่อน
  • Refactor เป็นการปรับปรุงคุณภาพการเขียนให้มีประสิทธิภาพมากยิ่งขึ้น

โดยในหลักสูตรนี้จะเน้นไปที่การทำ workshop เพื่อให้เห็นการทำงานของ TDD และแนวทางการนำไปประยุกต์ใช้ในงานต่อไป

กลุ่มลูกค้าเป้าหมาย

  • นักเรียน, นักศึกษา, ผู้ประกอบการ, Developer ที่มีความรู้ในการพัฒนาโปรแกรมในด้าน Web ทั้งสาย .NET, PHP, Java และอื่น ๆ
  • ผู้ที่ทำงานทางด้าน IT อื่น ๆ ที่อยากศึกษาเพิ่มเติมความรู้ หรืออยากเปลี่ยนมาทำงานสายนี้

คุณสมบัติของผู้เข้าอบรม

  • นักพัฒนาที่มีความรู้ในการเขียนโปรแกรมภาษาใดภาษาหนึ่ง
  • นักพัฒนาที่มีความรู้ความเข้าใจในการทำงานของ Web Application เป็นอย่างดี

  • เรียนรู้วิธีการเขียน Node แบบ JavaScript
  • เรียนรู้วิธีการเขียน Node แบบ TypeScript
  • เรียนรู้วิธีการเขียน REST API ด้วย Node
  • เรียนรู้วิธีการเชื่อม Node เข้ากับฐานข้อมูล RDBMS ต่าง ๆ
  • เรียนรู้วิธีการเชื่อมต่อฐานข้อมูลแบบ ORM ด้วย TypeORM
  • เรียนรู้วิธีการทำ Unit Test ด้วย Jest
  • เรียนรู้วิธีการทำ Automate api testing ด้วย supertest

Day 1 : Programming Node.js with TypeScript

ความรู้เบื้องต้นเกี่ยวกับ Node.js

  • ประวัติ ความเป็นมา สถานการณ์ที่เหมาะแก่การใช้งาน
  • การติดตั้ง (Installation)

Node.js การใช้งาน Core APIs

  • การติดตั้งและเรียกใช้ Modules
  • การประมวลผลข้อมูลแบบชนิดต่างๆ (Data Manipulation) เช่น ข้อมูลแบบ Text,Binary, และ JSON เป็นต้น

Typescript เบื้องต้น

  • การพัฒนาโปรแกรมด้วย Typescript
  • การ compile Typescript ให้เป็น Javascript

การบริหารการประมวลผลแบบ Asynchronous (Asynchronous Control Flow)

  • แบบแผนการทำงาน (Asynchronous Pattern)
  • การใช้งาน Asynchronous Control Flow Module

Day 2 : Rest API with Express

การสร้าง REST API ด้วย Express

  • การติดตั้ง และการเตรียมการ
  • การใช้งาน Web Template
  • การใช้งาน URL Routing
  • การใช้งาน Simple Route Middleware
  • การใช้งาน JWT ร่วมกับ Nest.js

การต่อเข้าหา Database MongoDB และ MySQL ด้วย TypeORM

  • การติดตั้ง และการเตรียมการ
  • การเขียน node ติดต่อ mysql ด้วย TypeORM

Day 3 : Automate test

Unit Test

  • การติดตั้ง jest framework สำหรับการทำ unit test
  • ฝึกปฏิบัติการเขียน unit test ด้วย jest
  • การติดตั้ง super test สำหรับการทำ API testing
  • ฝึกปฏิบัติการใช้งาน expect ในรูปแบบต่าง ๆ
  • ฝึกปฏิบัติการใช้งาน spy ในรูปแบบต่าง ๆ
  • ฝึกปฏิบัติการทำ code coverage
  • แนวทางการนำ automate test มาใช้งานร่วมกับการทำ CI/CD

Payment can be made by:

  1. Cash or Credit Card or Bank Cheque payable to
    สำนักงานพัฒนาวิทยาศาสตร์และเทคโนโลยีแห่งชาติ or National Science and Technology Development Agency
    (a post-dated cheque is not accepted) on the first day of the service or within the last day of the service.

  2. Account transfer and send the proof of the payment (the deposit slip) via email  patsorn@swpark.or.th

    • ธนาคารกรุงเทพ สาขาอุทยานวิทยาศาสตร์
      Saving Account Number: 080-0-00001-0
      Account Name: สำนักงานพัฒนาวิทยาศาสตร์และเทคโนโลยีแห่งชาติ

    • ธนาคารกรุงไทย สาขาตลาดไท
      Saving Account Number: 152-1-32668-1
      Account Name: สำนักงานพัฒนาวิทยาศาสตร์และเทคโนโลยีแห่งชาติ

Notes:

  • Withholding tax (3%) is exempt.
  • Should you need to withdraw, you must send the notice of the withdrawal in writing no later than 7 working days before the commencement date. The cancellation less than 7 days will be subject to a fine of 40% of the fee.
  • Software Park Thailand reserves the rights to cancel courses due to unforeseen circumstances.

Contact Person

For more information, contact our course coordinator on:

คุณภัสสร พรทิพย์

Ms. Patsorn Pornthip

Tel: +66-2583-9992 Ext. 81422

Email:  patsorn@swpark.or.th

You are encouraged to use the course schedule as a guide to plan your training.
The schedule is accessible at www.swpark.or.th for more information. 

เพิ่มเพื่อน

12,000 THB .

สำคัญ!!! กรุณารอการยืนยันเปิดการอบรมจากเจ้าหน้าที่ก่อนการชำระค่าลงทะเบียน

วันอบรมเปลี่ยนจาก 11-13 พ.ย. เป็น 20-22 พ.ย.  67

Enroll now

Course Detail :
Days :
3 Day(s)
Duration :
18 Hour(s)
Time :
09:00:00 - 16:00:00
Training Date :
20-22 November 2024
Status :
Open Register

Instructor info
avatar
Mr.Sommai Krangpanich