PDA

View Full Version : [DIS] sử dùng DeBug có hiểu quả?



real_time
03-11-2002, 16:58
Chúng ta lập trình với những chương trình tương đối đớn giản và nhỏ thì có lẽ vấn đề này không đáng quan tâm vì tự đầu ta sẽ tự kiểm tra test và gỡ rối những trường hợp của chương trình một cách dễ dàng. Nhưng đến khi gắp những chương trình lớn hơn phức tạp hơn là đã xuất hiện vấn đề rồi đó. Chương trình mà lỗi là ta sẽ không thể biết được lỗi ở đâu lỗi như thế nào ... Nên dùng Debug sẽ giúp ta không ít. Vậy mọi người hãy cùng thảo luận nghen.

danceswithwolves
05-11-2002, 08:20
1. chia project thành những module nhỏ, code & test kĩ trước khi sử dụng mỗi module.
2. comments đầy đủ, đôi khi ta nghĩ là thừa nhưng khoảng 2 tháng sau đọc lại code sẽ thấy giá trị của nó. Đặt tên biến có ý nghĩa, có naming convention thống nhất cho toàn project.
3. ráng tậu IDE tốt thì Debug tools sẽ tốt -> có lợi cho công việc debug.
4. (phần của bạn)

Kết luận : phòng bệnh tốt thì chữa bệnh khoẻ.

real_time
05-11-2002, 15:50
đúng rồi còn ý kiến nào khác nữa đây mong mọi người tiếp tục đóng góp ý kiến nha!

neverstop
18-12-2003, 11:02
danceswithwolves nói gì mình không hiểu. Giải thích được không?

jiSh@n
19-12-2003, 15:41
Nói đầy đủ thế mà có gì còn chưa hiểu nữa?

michael_huan
24-12-2003, 19:41
Oh !
Kinh nghiệm của tớ nè
1. Từ khóa thì phải viết thường (chắc do tớ nhiễm bịnh của C/C++...).
2. Đặt tên biến có nghĩa !
3. Hằng thì phải viết HOA .
4. Mỗi Procedure, Function thì phải có sự phân cách cho nó.
5. Khi khai báo một Biến, một Hằng, một Modul thì nên ghi chú là Biến, Hằng, Modul này làm nhiệm vụ gì. Trừ trường hợp những cái quen thuộc như: n, i, j, MAX thì khỏi phải nói và Giám khảo cũng tự hiểu.
6. Chương trình phải có sự dễ nhìn: trong sáng, có thuật toán rõ ràng (để người ta biết..) để người khác đọc vào họ sẽ hiểu rằng: "àh thì ra chỗ này là vậy" và để sau này bạn xem lại.
7. Chương trình phải có sự "thụt" vào: nếu như "cái nhỏ" thuộc "cái lớn" thì "cái nhỏ" phải "thụt" vào.
8. Vận dụng tối đa chương trình con (Modul- Procedure và Function)....
9. Viết cái gì phải hiểu cái đó, không hiểu thì đừng viết..
10. Và đối với Huấn điều quan trọng nhất là: mỗi người phải có phong cách riêng trong chương trình của mình !

Hiểu chưa Neverstop


danceswithwolves nói gì mình không hiểu. Giải thích được không?


Và quan trọng nhất là Thuật Toán --> hướng đi của mình mà lị...
Thân

real_time
27-12-2003, 23:39
micheal Huấn viết rất hay! Quá đúng!
tơ bổ xung thêm một phần nhỏ này chắc cũng không thừa! đó là: tên biến, tên hằng, function, procedure một khi đã sử dụng thì nên thống nhất từ trên xuống dưới (chuyện này rất nhỏ nhưng nếu đưa vào thì cũng không thừa)

bichduyen_nt
28-12-2003, 20:24
Duyên ghét nhất là xài ma trận mà cho biến i, j chạy, nhiều bài thiệt tình nhìn náo loạn chả biết cái nào là dòng cái nào là cột, nên kinh nghiệm của Duyên là lúc nào cũng sử dụng tên biết là dong và cot thay cho i, j. Hic...

michael_huan
29-12-2003, 15:15
Duyên hay lắm, i: dòng; j: cột. Đơn giản vì:


for Dong:=1 to N do
for Cot:=1 to M do

Sẽ dễ nhìn, dễ nhớ, dễ hiểu hơn là viết:


for i:=1 to N do
for j:=1 to M do


PS: nói chung là còn nhiều điều. Mà khi chính bạn học thì bạn mới khám phá hết, rút kinh nghiệm.. Chứ nói như vậy thì đến bao giờ mới kết thúc.

Zero
29-12-2003, 23:01
hì vậy là chuyển thành viết code thế nào cho dễ debug ?

Đây là 1 số điều rất cơ bản :)

- Gõ các cặp lệnh đi với nhau cùng lúc kiểu như là begin thì xuống dòng gõ end ngay rồi mới bắt đầu gõ bên trong begin - end :) hay nếu viết if (X > Y) thì khi gõ if ( xong gõ luôn ) hay Assign (F) thì bao giờ cúng có Rewrite (Reset) và Close.
- Các lệnh trong khối begin - end nên thụt vào kc 2 kí tự trở lên (2 là min).
- Nói chung thì nên viết mỗi lệnh 1 dòng.

Đây là các quy tắc viết mà bạn nên tuân theo để code sáng sủa dễ đọc :)

Còn sau đây là một số thói quen của tôi :) có người khen (nhiều) có người chê (ít :D) nên post luôn :)
- Các nhóm lệnh cũng làm 1 việc nên tách ra thành 1 khối = dóng trống hoặc chú thích thì càng tốt
- Các tóan tử như +, -, *, / nên viết cách ra 1 kí tự trống :)
VD :
thay vì viết X:=(X*320+(Y*Images.Height*100+I) + J)/Width);
// thì viết X := (X * 320 + (Y * Images.Height * 100 + I) + J) / Width);

Nhìn dễ đọc hơn hẳn nhỉ ?

+ Đối với viết biến cũng thế :)
// bình thường function X(A,B:Integer;C:Byte;D:Boolean):Byte;
// nên viết function X (A, B : Integer; C : Byte; D : Boolean) : Byte;
// Cool !!!

Nhưng mà lưu ý nhé mấy sở thích này sẽ khiến cho code của bạn dải ra nếu bạn dùng IDE Text thì đây là vấn đề đấy :(

// for I := 1 to 100 do
// begin
// Write ('ASASAS');
// A := A + I;
// Writeln (I);
// if (I > A) and (I < 100) then
//begin
//Dec (I);
//{ Swap ? Kô biết mình đang gõ gì nứa}
// A := I;
// I := J;
// J := A;
// end;
//end;


Nói chung là nên tạo chuẩn viết code cho mình :)

Zero
29-12-2003, 23:50
Hix mất hết mấy cái thụt vào rồi :(