ĐỪNG SỬ DỤNG CONSOLE.LOG() NỮA!!

Ngày đăng: 17/10/2020   -    Cập nhật: 17/10/2020
Bất kỳ một lập trình viên nào muốn debug JavaScript hiệu quả, họ đều sử dụng DevTool của trình duyệt, thiết lập break point và di chuyển qua chúng.


Điều này, hiệu quả hơn nhiều so với cách rắc các câu lệnh console.log() xung quanh code mà bạn đã biết từ khi mới bắt đầu HỌC JAVASCRIPT.



ĐỪNG SỬ DỤNG CONSOLE.LOG() NỮA!!


Trong bài viết này, mình sẽ giải thích 4 lý do tại sao bạn nên ngừng sử dụng console.log() và các mẹo tốt nhất để làm việc debug chuyên nghiệp và tốt hơn.


#1: THIẾU THÔNG TIN NGỮ CẢNH



console.log() buộc bạn phải chọn thông tin để ghi log trước khi gỡ lỗi một cách có ý thức.


Nhưng những gì bạn chọn hiển thị ra ngay từ đầu là không đủ hoặc thậm chí hoàn toàn không liên quan.


Bởi bạn thường chưa có bất kỳ ý tưởng nào về những gì đang xảy ra.


Mỗi khi bạn khởi chạy ứng dụng của mình, bạn lại tiến thêm một bước nữa, nhận ra rằng bạn vẫn chưa ghi đúng thông tin vào đúng thời điểm, mất hàng giờ đồng hồ để thay đổi log, lặp đi lặp lại, để hiển thị thông tin mới và ẩn những thông tin không liên quan.


Mẹo debug JavaScript:



  • Hiển thị / xem bất kỳ biến JS nội tuyến nào trong khi debug (đối số, biến cục bộ, biến toàn cục, v.v.).
  • Mở call stack để có được bối cảnh hoàn chỉnh về sự cố vừa xuất hiện.


#2: QUÁ NHIỀU THÔNG TIN



Các thuật toán thường được thiết kế để tự động hóa nhiều tác vụ nhỏ, vòng lặp và đệ quy... là những công việc cơ bản đằng sau nó.


Với console.log(), nó có thể mang đến rất nhiều dòng hiển thị trước mặt bạn, tức là rất khó tìm được thông tin phù hợp.


Mẹo debug JavaScript:



  • Tạo các break point có điều kiện để tạm dừng việc thực thi vào đúng thời điểm để bạn có thể phân tích những gì đang diễn ra.
  • Xem các biểu thức JS tùy chỉnh (biến, điều kiện, v.v.) để bạn không lãng phí thời gian để lấy ra cùng một biểu thức ở mỗi bước của vòng lặp.
  • Bổ sung chức năng ghi log tiêu chuẩn cho ứng dụng của bạn để theo dõi mọi thứ diễn ra.


#3: THÔNG TIN KHÔNG ĐÁNG TIN CẬY



Hầu hết thời gian gọi console.log() khi console chưa hoạt động chỉ dẫn đến đối tượng được xếp hàng đợi chứ không phải đầu ra mà console sẽ chứa.


Để giải quyết vấn đề, bạn sẽ cần sao chép thông tin hoặc tuần tự hóa nó.



Quá trình kết xuất diễn ra không đồng bộ (được điều chỉnh để cập nhật giới hạn tốc độ), vì các tương tác trong tương lai với các đối tượng được ghi lại như mở rộng thuộc tính đối tượng trong console của trình duyệt.


Mẹo debug JavaScript:



  • Asynchronous stack trace (hiện là mặc định trong Chrome) cho phép bạn kiểm tra các lệnh gọi hàm ngoài vòng lặp sự kiện hiện tại.


#4: HÀNH VI CODE ĐÃ THAY ĐỔI



Cách “tiêu chuẩn” để debug code không đồng bộ là console log “1”, “2”, “3”, “4”, v.v. tức là tất cả các bước được thực hiện trước đầu ra mà bạn mong đợi cho đến khi bạn nhận được thứ tự phù hợp.


Vậy thì, cách nó chạy, dẫn đến việc theo dõi các hành vi không ổn định thực sự khó khăn.


Và sau khi hoàn tất quá trình debug, bạn lại cũng phải nhớ để xóa tất cả console.log thừa trong code của mình.


Mẹo debug JavaScript:



  • Debug không chỉ đơn giản là kiểm tra code. Đó là cả một quá trình, kiểm tra, thay đổi và sau đó tiếp tục debug. Nếu bạn dành nhiều thời gian để thiết lập các break point, liệu chúng có còn ở đó sau khi sửa đổi code và làm mới không? .... Gợi ý cho bạn: DevTools làm điều này khá tốt.


Để kết thúc bài viết này, mình đề nghị bạn tìm hiểu winston hoặc loglevel là các trình ghi nhật ký có thể tùy chỉnh khá tốt.


Hoặc tận dụng DevTools trên trình duyệt như đa số các lập trình viên vẫn hay làm. Nó vừa đơn giản lại hiệu quả lại giúp bạn HỌC LẬP TRÌNH WEB dễ dàng hơn.



---
HỌC VIỆN ĐÀO TẠO CNTT NIIT - ICT HÀ NỘI
Học Lập trình chất lượng cao (Since 2002). Học làm Lập trình viên. Hành động ngay!
Đc: Tầng 3, 25T2, N05, Nguyễn Thị Thập, Cầu Giấy, Hà Nội
SĐT: 02435574074 - 0914939543
Email: hello@niithanoi.edu.vn
Fanpage: https://facebook.com/NIIT.ICT/
 
#niit #niithanoi #niiticthanoi #hoclaptrinh #khoahoclaptrinh #hoclaptrinhjava #hoclaptrinhphp #java #php #python
Bình luận Facebook
Khóa học liên quan đến bài viết

Khóa học PHP Full stack [2023] cho người mới bắt đầu

96 giờ
Khóa học Lập trình PHP Full stack, phiên bản cập nhật lần thứ 8. Dạy Lập trình PHP bài bản từ Front end đến Back end + Laravel. Hướng dẫn làm 2 Dự Án Web lớn

KHÓA HỌC PYTHON HƯỚNG ĐỐI TƯỢNG

50 giờ
Khóa học giúp học viên sử dụng thành thạo ngôn ngữ Lập trình Python (3x). Hiểu và phát triển được Ứng dụng Web với Django Framework. Học thực hành với Giảng viên cao cấp.

Lập trình PHP với Laravel Framework

42 giờ
Khóa học Lập trình PHP với Laravel Framework được NIIT - ICT HÀ NỘI xây dựng nhằm hoàn thiện kỹ năng lập trình web các các bạn đã biết Lập trình Web PHP thuần.

Khóa học Java Full stack (IJFD)

104 giờ
Học lập trình Java Fullstack với khóa học được xây dựng theo lộ trình bài bản, từ JAVA CƠ BẢN đến JAVA WEB và nâng cao về JAVA FRAMEWORK như: Spring Boot, Hibernate

KHÓA HỌC ANGULAR & TYPESCRIPT (FRONT END)

48 giờ
Khóa học Angular & TypeScript (Front end) sẽ giúp bạn làm chủ được nền tảng Angular từ đó phát triển được các ứng dụng mạnh mẽ, đa nền tảng.
Mục lục
Đăng ký tư vấn
Nhân viên gọi điện tư vấn miễn phí sau khi đăng ký
Được cập nhật các ưu đãi sớm nhất
Hotline: 0383180086
Tên không được để trống
Số điện thoại không được để trống
Email không được để trống
Hãy đăng ký để nhận những thông tin mới nhất về học bổng mới nhất tại NIIT - ICT Hà Nội
top
Đóng lại Đăng ký học tại NIIT - ICT Hà Nội
6260+ học viên đã theo học tại NIIT - ICT Hà Nội và có việc làm tốt trong ngành lập trình. Nắm lấy cơ hội ngay hôm nay!
Chọn khóa học
  • KHÓA HỌC LẬP TRÌNH FRONT END VỚI REACT.JS
  • KHÓA HỌC LẬP TRÌNH PHP WEB
  • Khóa học PHP Full stack [2023] cho người mới bắt đầu
  • Khóa học BIG DATA với Hadoop và Spark
  • Khóa học Lập trình Android tại Hà Nội
  • [Tuyển sinh 2023] Lập trình viên Quốc tế DigiNxt
  • Khóa học Tiền lương & Phúc lợi (C&B Excel) tại Hà Nội
  • LẬP TRÌNH GAME
    • Khóa học Lập trình Game Unity
  • LẬP TRÌNH WEB FRONT END
    • KHÓA HỌC PYTHON HƯỚNG ĐỐI TƯỢNG
    • KHÓA HỌC ANGULAR & TYPESCRIPT (FRONT END)
  • LẬP TRÌNH WEB BACK END
    • LẬP TRÌNH JAVA WEB VỚI FRAME WORK
    • Lập trình Web với Django
    • Lập trình PHP với Laravel Framework
  • CHƯƠNG TRÌNH ĐÀO TẠO ỨNG DỤNG CÔNG NGHỆ
    • Khóa học Tiền lương & Phúc lợi (C&B Excel) tại TP HCM
  • LẬP TRÌNH WEB FULL STACK
    • Khóa học Java Full stack (IJFD)
  • LẬP TRÌNH MOBILE
    • FRONT-END VỚI REACTJS VÀ REACT NATIVE
    • Lập trình Android Nâng cao
  • ĐÀO TẠO CHO DOANH NGHIỆP
    • KHÓA HỌC BUSINESS ANALYSIC TỪ CƠ BẢN ĐẾN NÂNG CAO 2023
    • Khóa học Magento: Làm chủ CMS TMĐT lớn nhất
    • Khóa học IOT: Xây dựng Sản phẩm IOT với Raspberry Pi
    • Khóa học Automation Testing Chuyên nghiệp
  • KHÓA HỌC DỰ ÁN
    • Học sử dụng bộ Office: Word, Excel, Power Point, Mail chuyên nghiệp
  • KHÓA HỌC KHÁC
    • VBA Excel Toàn Tập (Cơ Bản - Nâng Cao)
    • VBA Excel Nâng cao
    • Khóa học JMeter: Performance Testing
    • Khóa học Tester đạt chuẩn Quốc tế ISTQB Foundation Level
    • Khoá Học Tester đạt chuẩn quốc tế ISTQB Advanced Level
Bạn chưa chọn khóa học cần đăng ký
Tên không được để trống
Số điện thoại không được để trống
Email không được để trống
Đăng ký học thành công!
Cảm ơn bạn đã đăng ký học tại NIIT - ICT HÀ NỘI!