SlideShare a Scribd company logo
1 of 5
Mã nhân viên: MF1432
Họ và tên: Trần Thái Tuấn
Debug bài Fresher: Nguyễn Văn Quang
Mô tả luồng tính năng Thêm Mới dữ liệu
 Front-end:
- Bắt đầu từ sự kiện: Cất và Thêm
- Gọi tới hàm: saveAndAddBtnOnClick()
- Xử lý hàm:
 Validate dữ liệu với hàm isValid().
 Kiểm tra isAdd, nếu isAdd == true thì thực hiện thêm.
 Gọi tới API thêm mới
- API: https://localhost:7199/api/v1/Employees
- Sau khi có dữ liệu từ api trả về:
 Xử lý dữ liệu:
 Reset form nhân viên
 Emit truyền dữ liệu cho component cha chưa đóng
component con
 Lỗi:
 Errorcode: 0
 DevMsg: Xảy ra exception
 UserMsg: Có lỗi xảy ra! Vui lòng liên hệ MISA
 MoreInfo: Exception.Message
 TraceID: HttpContext.TraceIdentifier
 Back-end:
o Được tổ gồm 5 project:
 API
 BL
 BL.UnitTests
 DL
 Common
o Từ Api thêm mới gọi tới các hàm nào, thuộc Project nào, làm gì
Tên hàm Tên
Project
Công việc
public IActionResult
Insert(T newRecord)
API Trả về statuscode và các thông tin
kèm theo
public ServiceResult
Insert(T newRecord)
BL  Chuyển dữ liệu sang JSON
 Trả về:
- ServiceResult tình trạng
thêm thành công hay chưa
- Số bản ghi bị ảnh hưởng
trong database
public virtual ServiceResult
ValidateRequiredData(T
record)
BL  Thực hiện validate dữ liệu
public override void
BeforeInsertOrUpdate(ref
Employee employee)
BL  Thực hiện xử lý tách mã nhân
viên làm 2 phần
public int Insert(Guid
newRecordId, string
newRecord)
DL  gọi tới procedure thêm mới trong
database
 Xử lý lỗi/ dữ liệu trả về cho Front-end phía Back-end:
 Thành công:
 Trả về status code 201
 Số bản ghi bị ảnh hưởng
 Lỗi:
 Errorcode: 0
 DevMsg: Xảy ra exception
 UserMsg: Có lỗi xảy ra! Vui lòng liên hệ MISA
 MoreInfo: Exception.Message
 TraceID: HttpContext.TraceIdentifier
 Mô tả các phím tắt mở các cửa sổ Debug trong Visual Studio và ý nghĩa
của các của sổ:
 Phím tắt mở các cửa sổ Debug:
 Call Stack:
 Ý nghĩa, vai trò: Dùng để xem các lời gọi hàm hoặc thủ tục hiện có
trong Stack
 Phím tắt: Ctrl + Alt + C
 Autos:
 Ý nghĩa, vai trò: Theo dõi các biến global
 Phím tắt: Ctrl + Alt + V, A
 Locals: Theo dõi các biến local
 Ý nghĩa, vai trò:
 Phím tắt: Ctrl + Alt + V, L
 Quick Watch: Theo dõi nhanh biến nào đó
 Ý nghĩa, vai trò:
 Phím tắt: Shift + F9
 Watch:
 Ý nghĩa, vai trò: Watch Window là cửa sổ sử dụng để theo dõi sự
thay đổi giá trị của các biến (local hay global đều được hết)
 Phím tắt: Ctrl + Alt + W, 1 | 2 | 3
 BreackPoints:
 Ý nghĩa, vai trò: Theo dõi các breakpoint được đặt
 Phím tắt: Ctrl + Alt + B
 Các phím tắt sử dụng trong quá trình Debug:
 F5: Nhảy đến vị trí breakpoint tiếp theo
 Shift + F5: Tắt debug
 F9: Đặt/Gỡ breakpoint tại vị trí nháy chuột
 F10: Nhảy xuống dòng
 Ctrl+10: Nhảy đến dòng vị trí nháy chuột
 F11: Nhảy vào hàm vị trí nháy chuột
 F12: Nhảy vào interface của hàm vị trí nháy chuột
 Ctrl + -: Quay lại vị trí trước
 Debug Condition là debug với breakpoint có điều kiện
 Ý nghĩa: Nhảy tới breakpoint này khi thỏa mãn điều kiện đã được thêm
 Phím tắt: Alt + F9, C (sau khi bật debug)
 Ý nghĩa cửa sổ Output, Error List, Task List
 Output:
 Ý nghĩa: Cửa sổ Đầu ra hiển thị thông báo trạng thái cho các tính
năng khác nhau trong môi trường
 Phím tắt: Ctrl + Alt + O
 Error List:
 Ý nghĩa: Cửa sổ hiển thị danh sách lỗi, cảnh báo và tin nhắn
 Phím tắt: Ctrl +  + E
 Task List:
 Ý nghĩa: Để theo dõi các code comments sử dụng token như TODO
và HACK, hoặc các custom token và để quản lý lối tắt đến vị trí
được xác định trước trong mã
 Phím tắt: Ctrl +  + T
 Mô tả các cửa sổ hỗ trợ Debug trong ChromeDevTool:
o Call Stack: Dùng để xem các lời gọi hàm hoặc thủ tục hiện có trong Stack
(Thường dùng để tìm tên hàm được gọi đến trong quá trình thực thi một chức
năng).
o Local: Theo dõi các biến trong phạm vi cục bộ.
o Watch: Theo dõi sự thay đổi của biến bất kể phạm vi toàn cục hay cục bộ.
o XHR/fetch Breakpoints:
 Sử dụng XHR breakpoint khi request URL chứa một chuỗi được chỉ
định. DevTools dừng tại dòng code nơi xuất hiện chuỗi.
o Console: Theo dõi biến nhanh
o Network:
 Xem các request đã được gửi đi
 Xem các thông tin nhận về
 Block các request không mong muốn
 Kiểm thử trang web với các điều kiện khác nhau (internet chậm nhanh,
cache có hoặc không...)
 Nêu các bước thực hiện sửa lỗi trong ứng dụng.
- Bước 1: Tái lặp và phân tích để khoanh vùng phần code lỗi
- Bước 2: Xác định nguyên nhân lỗi, nguyên nhân gốc rễ gây ra lỗi
- Bước 3: Sửa lỗi và kiểm tra lại. Phân tích phạm vi ảnh hưởng.

More Related Content

Similar to Kỹ năng debug c#

Lap trinh c_tu_co_ban_den_nang_cao
Lap trinh c_tu_co_ban_den_nang_caoLap trinh c_tu_co_ban_den_nang_cao
Lap trinh c_tu_co_ban_den_nang_caoHuy Nguyễn
 
Lap trinh c_tu_co_ban_den_nang_cao
Lap trinh c_tu_co_ban_den_nang_caoLap trinh c_tu_co_ban_den_nang_cao
Lap trinh c_tu_co_ban_den_nang_caoBác Luân
 
Meo lap trinh_tech24.vn
Meo lap trinh_tech24.vnMeo lap trinh_tech24.vn
Meo lap trinh_tech24.vnphiagame
 
Cq lt hdt-th2011-02-tuan04
Cq lt hdt-th2011-02-tuan04Cq lt hdt-th2011-02-tuan04
Cq lt hdt-th2011-02-tuan04. .
 
Bài tập mẫu C và C++ có giải
Bài tập mẫu C và C++ có giảiBài tập mẫu C và C++ có giải
Bài tập mẫu C và C++ có giảiTrung Thanh Nguyen
 
Chiêu thức lập trình
Chiêu thức lập trìnhChiêu thức lập trình
Chiêu thức lập trìnhlongkenj
 
Lập trình C cơ bản cho vi điều khiển
Lập trình C cơ bản cho vi điều khiểnLập trình C cơ bản cho vi điều khiển
Lập trình C cơ bản cho vi điều khiểnMr Giap
 
Giao trinh bai tap c va c++
Giao trinh bai tap c va c++Giao trinh bai tap c va c++
Giao trinh bai tap c va c++Congdat Le
 
Jniについて
JniについてJniについて
JniについてChu Chu
 
Hàm và nạp chồng hàm
Hàm và nạp chồng hàmHàm và nạp chồng hàm
Hàm và nạp chồng hàmLAnhHuy4
 

Similar to Kỹ năng debug c# (20)

Unit Test
Unit TestUnit Test
Unit Test
 
Asp
AspAsp
Asp
 
Con tro ham c++
Con tro ham c++Con tro ham c++
Con tro ham c++
 
Chuong 01
Chuong 01Chuong 01
Chuong 01
 
Chuong 01 mo dau
Chuong 01 mo dauChuong 01 mo dau
Chuong 01 mo dau
 
Lap trinh c_tu_co_ban_den_nang_cao
Lap trinh c_tu_co_ban_den_nang_caoLap trinh c_tu_co_ban_den_nang_cao
Lap trinh c_tu_co_ban_den_nang_cao
 
Lap trinh c_tu_co_ban_den_nang_cao
Lap trinh c_tu_co_ban_den_nang_caoLap trinh c_tu_co_ban_den_nang_cao
Lap trinh c_tu_co_ban_den_nang_cao
 
Meo lap trinh_tech24.vn
Meo lap trinh_tech24.vnMeo lap trinh_tech24.vn
Meo lap trinh_tech24.vn
 
Phu luc a
Phu luc aPhu luc a
Phu luc a
 
Cq lt hdt-th2011-02-tuan04
Cq lt hdt-th2011-02-tuan04Cq lt hdt-th2011-02-tuan04
Cq lt hdt-th2011-02-tuan04
 
Bài tập mẫu C và C++ có giải
Bài tập mẫu C và C++ có giảiBài tập mẫu C và C++ có giải
Bài tập mẫu C và C++ có giải
 
Co ban ve_matlab
Co ban ve_matlabCo ban ve_matlab
Co ban ve_matlab
 
Chiêu thức lập trình
Chiêu thức lập trìnhChiêu thức lập trình
Chiêu thức lập trình
 
Lập trình C cơ bản cho vi điều khiển
Lập trình C cơ bản cho vi điều khiểnLập trình C cơ bản cho vi điều khiển
Lập trình C cơ bản cho vi điều khiển
 
Giao trinh bai tap c va c++
Giao trinh bai tap c va c++Giao trinh bai tap c va c++
Giao trinh bai tap c va c++
 
Giao trinh bai tap c va c++
Giao trinh bai tap c va c++Giao trinh bai tap c va c++
Giao trinh bai tap c va c++
 
Nmlt c06 ham
Nmlt c06 hamNmlt c06 ham
Nmlt c06 ham
 
Jniについて
JniについてJniについて
Jniについて
 
Hàm và nạp chồng hàm
Hàm và nạp chồng hàmHàm và nạp chồng hàm
Hàm và nạp chồng hàm
 
Access vba 052009
Access vba 052009Access vba 052009
Access vba 052009
 

Kỹ năng debug c#

  • 1. Mã nhân viên: MF1432 Họ và tên: Trần Thái Tuấn Debug bài Fresher: Nguyễn Văn Quang Mô tả luồng tính năng Thêm Mới dữ liệu  Front-end: - Bắt đầu từ sự kiện: Cất và Thêm - Gọi tới hàm: saveAndAddBtnOnClick() - Xử lý hàm:  Validate dữ liệu với hàm isValid().  Kiểm tra isAdd, nếu isAdd == true thì thực hiện thêm.  Gọi tới API thêm mới - API: https://localhost:7199/api/v1/Employees - Sau khi có dữ liệu từ api trả về:  Xử lý dữ liệu:  Reset form nhân viên  Emit truyền dữ liệu cho component cha chưa đóng component con  Lỗi:  Errorcode: 0  DevMsg: Xảy ra exception  UserMsg: Có lỗi xảy ra! Vui lòng liên hệ MISA  MoreInfo: Exception.Message  TraceID: HttpContext.TraceIdentifier  Back-end: o Được tổ gồm 5 project:  API  BL  BL.UnitTests  DL  Common o Từ Api thêm mới gọi tới các hàm nào, thuộc Project nào, làm gì
  • 2. Tên hàm Tên Project Công việc public IActionResult Insert(T newRecord) API Trả về statuscode và các thông tin kèm theo public ServiceResult Insert(T newRecord) BL  Chuyển dữ liệu sang JSON  Trả về: - ServiceResult tình trạng thêm thành công hay chưa - Số bản ghi bị ảnh hưởng trong database public virtual ServiceResult ValidateRequiredData(T record) BL  Thực hiện validate dữ liệu public override void BeforeInsertOrUpdate(ref Employee employee) BL  Thực hiện xử lý tách mã nhân viên làm 2 phần public int Insert(Guid newRecordId, string newRecord) DL  gọi tới procedure thêm mới trong database  Xử lý lỗi/ dữ liệu trả về cho Front-end phía Back-end:  Thành công:  Trả về status code 201  Số bản ghi bị ảnh hưởng  Lỗi:  Errorcode: 0  DevMsg: Xảy ra exception  UserMsg: Có lỗi xảy ra! Vui lòng liên hệ MISA  MoreInfo: Exception.Message  TraceID: HttpContext.TraceIdentifier
  • 3.  Mô tả các phím tắt mở các cửa sổ Debug trong Visual Studio và ý nghĩa của các của sổ:  Phím tắt mở các cửa sổ Debug:  Call Stack:  Ý nghĩa, vai trò: Dùng để xem các lời gọi hàm hoặc thủ tục hiện có trong Stack  Phím tắt: Ctrl + Alt + C  Autos:  Ý nghĩa, vai trò: Theo dõi các biến global  Phím tắt: Ctrl + Alt + V, A  Locals: Theo dõi các biến local  Ý nghĩa, vai trò:  Phím tắt: Ctrl + Alt + V, L  Quick Watch: Theo dõi nhanh biến nào đó  Ý nghĩa, vai trò:  Phím tắt: Shift + F9  Watch:  Ý nghĩa, vai trò: Watch Window là cửa sổ sử dụng để theo dõi sự thay đổi giá trị của các biến (local hay global đều được hết)  Phím tắt: Ctrl + Alt + W, 1 | 2 | 3  BreackPoints:  Ý nghĩa, vai trò: Theo dõi các breakpoint được đặt  Phím tắt: Ctrl + Alt + B  Các phím tắt sử dụng trong quá trình Debug:  F5: Nhảy đến vị trí breakpoint tiếp theo  Shift + F5: Tắt debug  F9: Đặt/Gỡ breakpoint tại vị trí nháy chuột  F10: Nhảy xuống dòng  Ctrl+10: Nhảy đến dòng vị trí nháy chuột  F11: Nhảy vào hàm vị trí nháy chuột  F12: Nhảy vào interface của hàm vị trí nháy chuột  Ctrl + -: Quay lại vị trí trước  Debug Condition là debug với breakpoint có điều kiện
  • 4.  Ý nghĩa: Nhảy tới breakpoint này khi thỏa mãn điều kiện đã được thêm  Phím tắt: Alt + F9, C (sau khi bật debug)  Ý nghĩa cửa sổ Output, Error List, Task List  Output:  Ý nghĩa: Cửa sổ Đầu ra hiển thị thông báo trạng thái cho các tính năng khác nhau trong môi trường  Phím tắt: Ctrl + Alt + O  Error List:  Ý nghĩa: Cửa sổ hiển thị danh sách lỗi, cảnh báo và tin nhắn  Phím tắt: Ctrl + + E  Task List:  Ý nghĩa: Để theo dõi các code comments sử dụng token như TODO và HACK, hoặc các custom token và để quản lý lối tắt đến vị trí được xác định trước trong mã  Phím tắt: Ctrl + + T  Mô tả các cửa sổ hỗ trợ Debug trong ChromeDevTool: o Call Stack: Dùng để xem các lời gọi hàm hoặc thủ tục hiện có trong Stack (Thường dùng để tìm tên hàm được gọi đến trong quá trình thực thi một chức năng). o Local: Theo dõi các biến trong phạm vi cục bộ. o Watch: Theo dõi sự thay đổi của biến bất kể phạm vi toàn cục hay cục bộ. o XHR/fetch Breakpoints:  Sử dụng XHR breakpoint khi request URL chứa một chuỗi được chỉ định. DevTools dừng tại dòng code nơi xuất hiện chuỗi. o Console: Theo dõi biến nhanh o Network:  Xem các request đã được gửi đi  Xem các thông tin nhận về  Block các request không mong muốn  Kiểm thử trang web với các điều kiện khác nhau (internet chậm nhanh, cache có hoặc không...)
  • 5.  Nêu các bước thực hiện sửa lỗi trong ứng dụng. - Bước 1: Tái lặp và phân tích để khoanh vùng phần code lỗi - Bước 2: Xác định nguyên nhân lỗi, nguyên nhân gốc rễ gây ra lỗi - Bước 3: Sửa lỗi và kiểm tra lại. Phân tích phạm vi ảnh hưởng.