Skip to content

BMI Calculator to demo basic Javascript ES6 + Unit Test

Notifications You must be signed in to change notification settings

TechMaster/bmi_calculator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ví dụ hướng dẫn học viên lớp Node.js bắt tay vào nghề

Một số mã nguồn lớp thực tập sẽ được chia sẻ miễn phí Full stack Node.js 2017

Học lập trình Node.js cần những gì?

  1. Hiểu rõ cú pháp JavaScript (thực ra rất lộn xộn), do đó càng phải học kỹ qua ví dụ

  2. Hiểu cơ chế Asynchronous Function hay Callback function sau đó chuyển qua Promise (sử dụng BlueBird)

  3. Nên chuyển sang dùng ES6 để viết code ngắn, ít lỗi hơn

  4. Các JavaScript Patterns (module hóa, SOLID pattern, OOP)

  5. Luôn viết Unit Test để verify lại code mình viết

Rồi sau đó chào mừng bạn đến với thế giới của Node.js

Tác giả: Trịnh Minh Cường ([email protected])

Ví dụ này demo hàm tính chỉ số BMI, Body Mass Index

  1. Cách viết hàm trong JavaScript, sử dụng Arrow function chuẩn ES 6
  2. Sử dụng mocha, chai, should để viết unit test
  3. Muốn Unit test được thì function phải tách bạch ra, separate concern
  4. Chia tách ứng dụng thành các file nhỏ, export và require

Chạy thử ứng dụng

git clone https://github.com/TechMaster/basicjs.git
cd basicjs
npm install
npm test
node demo_bmi.js

Cần chú ý điểm gì

Luôn viết unit test kiểm thử hàm logic

Tham khảo Testing Node.js With Mocha and Chai Một giờ tiếc rẻ không viết hàm kiểm thử sẽ trả giá bằng 20-100 giờ ngồi fix bug.

Separate concern thể hiện ở chỗ hàm tính BMI hãy chỉ tính BMI từng viết console.log hay bất kỳ hàm nhập xuất giao diện, network vào. Chia nhỏ hàm ra, càng ít phụ thuộc càng tốt.

Kiểm thử xem error được ném ra trong một function

Cần gói hàm đó trong một anonymous function. Chỉ cần kiểm tra error message là được

(() => {
      function_that_throw_error
    }).should.throw('Error message');

export constant

const pound_to_kg = 0.45359237;
exports.pound_to_kg = pound_to_kg;

export hàm chuẩn ES 6

exports.function_name = (params) => {
  
}

Bài tập nâng cao

  • Bài 1: Hãy trang trí giao diện nhập dữ liệu đẹp như thế này. Tham khảo module readline-sync

demo

  • Bài 2: Viết hàm giải phương trình bậc 2, sau đó sử dụng module plot.ly để vẽ đồ thị hàm bậc 2

Đồ thị hàm bậc 2

About

BMI Calculator to demo basic Javascript ES6 + Unit Test

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published