Những TIPs quan trọng và đơn giản giúp bạn Debug .NET hiệu quả hơn

0
115

Các bạn đang phải đối mặt hàng ngày với những lỗi .NET. Tuy nhiên có nhiều bạn chưa có được cho mình những giải pháp tốt nhất để gỡ rối. Chính vì vậy bài viết hôm nay mình sẽ chia sẻ cho các bạn 10 tips Debug .NET. Hãy cùng theo dõi ngay thôi nào

Top 10 TIPs giúp bạn Debug .NET hiệu quả

1. Cài đặt Breakpoints

Breakpoint là một trong những TIP Debug .Net được nhiều người biết đến. Có thể coi đây là một gợi ý hoàn toàn thú vị cho các bạn. Nếu các bạn đang sử dụng IDE Visual Studio phiên bản đầy đủ, việc tạo breakpoint sẽ trở nên vô cùng đơn giản. Các bạn chỉ cần nhấp trực tiếp vào đó vào tạo breakpoint, thật tuyệt vời phải không nào.

Cài đặt Break Point
Cài đặt Break Point

Các bạn hoàn toàn có thể tạo breakpoint vào bất cứ dòng mã code đang được thực thi nào đó. Điều này đồng nghĩa với việc các bạn không thể tạo breakpoint trên thuộc tính [Fact] trong mã này hay với hàm thực tế.

2. Tạo Breakpoint có điều kiện

Đôi khi các bạn cần tạo Breakpoint có điều kiện. Chẳng hạn như bạn đang làm việc với bộ sưu tập và gặp phần tử thứ 93 mắc lỗi. Nhiệm vụ của bạn chính là gỡ lỗi cho phần tử này. Cách thứ nhất bạn có thể làm chính là nhấn F5 92 lần để chuyển đến bản ghi bạn đang quan tâm. Cách thứ hai tối ưu hơn chính là sử dụng Breakpoint có điều kiện. Breakpoint có điều kiện sẽ chỉ khiến quá trình tạm dừng khi ít nhất một điều kiện được đáp ứng. Có thể điều kiện đó rất đơn giản như việc đếm số lần một dòng bị tấn công. Hoặc có thể phức tạp hơn là kiểm tra nếu một số giá trị được coi là đúng.

Breakpoint có điều kiện
Breakpoint có điều kiện

Một tính năng được nhắc đến trong hộp thoại điều kiện chính là đặt breakpoint khi giá trị đó thay đổi. Cách làm này thực sự hữu ích nếu bạn đang cố gắng theo dõi những thứ đang thay đổi giá trị của một vài biến. Bên cạnh đó trong hộp kiểm có điều kiện các bạn có thể thực hiện một vài hành động khi điểm dừng được nhấn. Theo đó bạn có thêm thêm nhật ký tạm thời vào một ứng dụng bằng cách này.

3. Xem giá trị trả về

Với hầu hết mọi trường hợp các bạn hoàn toàn có thể sử dụng chuột để đi đến biến cần được gỡ lỗi. Tuy nhiên một nơi mà các bạn không thể sử dụng chuột để kiểm tra lỗi này chính là giá trị trả về từ một hàm. Các bạn không thể di chuột một cách đơn giản để qua câu lệnh return và xem trước nội dung sẽ được trả về từ hàm. Thay vào đó các bạn có thể nhìn vào hai vị trí một là Watch, hai là Locals.

Trong cửa sổ Locals các bạn dễ dàng quan sát thấy giá trị trả về bằng cách tìm tên của hàm (có điều kiện), theo sau là hồi âm trả lại. Cùng quan sát mô tả:

Cửa sổ Locals
Cửa sổ Locals

Trong cửa sổ xem các bạn có thể tham khảo giá trị trả về hiện tại qua cách kiểm tra đặc biệt với tên $ ReturnValue. Cùng quan sát mô tả:

Cửa sổ Watch
Cửa sổ Watch

4. Chỉnh sửa giá trị

Nếu các bạn cần mô phỏng một số giá trị trả về hoặc kiểm tra xem điều gì đang xảy ra với một bộ biến cụ thể, khó tái tạo. Các bạn hoàn toàn có thể sử dụng cách chọc vào những giá trị hiển thị trong cửa sổ cục bộ. Đây là một kỹ thuật hữu ích với những bạn cần kiểm tra nhưng lại không chắc chắn làm thế nào để thiết lập đầu vào để có được đầu ra theo mong muốn. Hãy tham khảo mô tả hình ảnh dưới đây

Chỉnh sửa giá trị
Chỉnh sửa giá trị

5. Mã nguồn

Visual Studio cung cấp đầy đủ khiến cho việc gỡ lỗi của các bạn trở nên đơn giản và dễ dàng hơn bao giờ hết. Đặc biệt với những thay đổi mà nó tạo ra với những hiển thị mã trong phiên gỡ lỗi đơn giản hơn bao giờ hết. Bên cạnh đó với những đối tượng phức tạp hơn hay những bộ sưu tập cũng hỗ trợ cho những giá trị cụ thể. Hãy quan sát mô tả hình ảnh dưới đây:

Mã Nguồn
Mã Nguồn

Những tính năng của OzCode các bạn có thể tìm hiểu thêm trong một số bài đọc khác. Đây là một công cụ trả phí, tuy nhiên OzCode hỗ trợ đánh giá cho công cụ của các bạn rất nhiều. Nếu các bạn đang làm việc trong một cơ sở mã không dễ dàng kiểm tra bằng bài kiểm tra đơn vị, thì việc trả phí trở nên vô cùng đáng giá.

6. Thêm một bài kiểm tra đơn vị

Đôi khi việc gỡ lỗi của các bạn thực sự chưa chính xác với nhiều dòng lệnh. Bởi vì gỡ lỗi có xu hướng khá chậm. Các bạn cần thiết lập môi trường thử nghiệm, đặt một số breakpoint và chạy qua ứng dụng để đến nơi các bạn cần để thực hiện hành vi bạn muốn gỡ lỗi. Có lẽ những điều này khiến cho các bạn trở nên thiếu kiên trì trong gỡ lỗi. Hơn nữa với những ứng dụng đồ họa các bạn thường mất nhiều thời gian hơn để đi đến vị trí có vấn đề xảy ra.

Do đó để tối ưu thời gian các bạn thiết lập thêm một bài kiểm tra đơn vị để thực hiện chức năng được trở nên dễ dàng hơn, chính xác hơn cho các giá trị bạn cần. Những kỹ thuật được trình bày cho đến thời điểm này có thể sẽ hữu ích cho việc đi đến giá trị đang có sự cố. Các bạn hoàn toàn có thể gỡ lỗi trong chính bài kiểm tra đơn vị để chắc rằng các bạn đang không thực sự gặp vấn đề.

Có rất nhiều công cụ quản lý vả theo dõi bug tuyệt vời, có một vài công cụ có thể tạo ra những thử nghiệm cho bạn. Vì thế các bạn nên tận dụng các công cụ đó và xây dựng một bộ các bài kiểm tra đơn vị để giảm số lần gỡ lỗi trong tương lai. Kết quả mà bạn nhận đượ chính là sự thoải mái, happy hơn khi bạn có mạng lưới kiểm tra an toàn để quay trở lại.

7. Điểm dừng trong LINQ

LINQ là một cái tên được nhiều người hoạt động trong ngành biết đến. Về bản chất LINQ hỗ trợ những chức năng của việc có thể sắp xếp, lọc và dán một cách rất ngắn gọn. Tuy nhiên có một vài nhược điểm của LINQ chính là một vài câu lệnh chưa được trau truốt do đó khiến cho người dùng khó hiểu. Theo truyền thống để gỡ lỗi LINQ rất phức tạp, hơn nữa những tư liệu được cung cấp bởi Microsoft là khá ít. Tuy nhiên bạn có thể gỡ lỗi bằng cách chọn các khối truy vấn tại một thời điểm nhất định và tham khảo chúng qua cửa sổ xem nhanh hoặc cửa sổ xem.

OzCode hỗ trợ một trình hiển thị trực quan đẹp mắt giúp các bạn thấy dữ liệu trong truy vấn LINQ được thay đổi ở mỗi bước. Tại đây các bạn có thể truy vấn một loạt các từ và lọc chúng theo chiều dài lấy chữ đầu tiên và nhóm chúng sau đó tìm số lượng lớn nhất.

Điểm dừng trong LINQ
Điểm dừng trong LINQ

Truy vấn của bạn sẽ hiển thị dưới dạng một loạt các bảng hiển thị trạng thái của dữ liệu sau khi thực hiện một bước. Hiện tại các bạn chỉ nhận được hỗ trợ truy vấn LINQ toàn khung cho .NET mà thôi.

8. Đánh giá các chức năng không có tác dụng phụ

Đánh giá các chức năng không có tác dụng phụ là phương pháp tương đối tốt. Các bạn hoàn toàn có thể chạy cùng một lúc với một chức năng nhiều lần cho một đầu vào và kết quả cho ra là gống nhau. Đây là một trong những chức năng cơ bản. Tuy nhiên điều này hãn hữu mới xảy ra. Trên thực tế các bạn sẽ gặp phải chức năng không thuần túy và có thể có tác dụng phụ nhiều hơn. Các bạn hãy quan sát ví dụ sau:

 

Mỗi khi gọi hàm này kết quả cho ra sẽ là khác nhau:0,1,2,3. Điều này đúng nếu các bạn đang đánh giá chức năng trong cửa sổ xem nhanh.

Mỗi khi chức năng được đánh giá các bạn sẽ được ghi nhận một tác dụng phụ. Đây được coi là điều kiện dễ gặp khi bạn gỡ lỗi. Để thay đổi trạng thái chương trình đang gỡ lỗi các bạn có thể không sử dụng biểu thức sau:

9. Debug .NET trong VSCode

Nếu các bạn đang sử dụng Visual Code phiên bản không đầy đủ các bạn vẫn có thể trải nghiệm gỡ lỗi với chính VSCode. Tuy các bạn sẽ không nhận được sự hoàn hảo trong gỡ lỗi nhưng nó vẫn rất tối ưu. Công cụ swish được tìm thấy trong OzCode chưa thấy có trong VSCode. Các bạn có thể gỡ lỗi một loạt các ngôn ngữ khác nhau bằng VSCode từ Java cho đến Python rồi C# đều được hỗ trợ thông qua một loạt các plugin.

10. Talk it out

Đây là cách làm được cho là quan trọng nhất để bạn gỡ lỗi mã của mình. Các bạn tìm đến một người bạn đồng nghiệp hoặc một vật vô tri để chia sẻ vấn đề các bạn đang gặp phải. Việc làm này giúp các bạn tập hợp được những vấn đề cũng như hướng giải quyết cho các bạn. Do đó các bạn sẽ có được hướng đi tốt nhất cho mình.

III. Kết luận

Trên đây là Top 10 TIPs Debug .NET. Hy vọng với bài viết các bạn sẽ có thêm tư liệu cho bản thân về tips debug .NET tốt nhất. Chúc cá bạn có một ngày làm việc vui vẻ và hiệu quả!!!