DANH MỤC TÀI LIỆU
Các sai lầm thường mắc phải khi Debug
Các sai l m th ng m c ph i khi Debug ườ ắ ả
Ch c h n t t c chúng ta đ u không còn l l m gì v i các khái ni m Bug ạ ẫ
và Debug n a r i. Tuy nhiên tôi v n s nh c l i v hai khái ni m quen ắ ạ
thu c này:
Bug trong ti ng anh là b , b đây ám ch nh ng l i trong ch ng trình, ế ọ ở ươ
h th ng làm cho ch ng trình, h th ng đó không ho t đ ng đ c ho c ệ ố ươ ệ ố ạ ộ ượ
ho t đ ng khác v i kì v ng đã đ ra. Bug ti m n m i n i ,chúng ta khó ạ ộ ọ ơ
mà có th l ng tr c đ c t t c các tình hu ng mà ch có th c g ng ể ườ ướ ượ
đ gi m thi u t i đa s l ng c a nó tuỳ thu c vào công ngh và kh ể ả ể ố ượ
năng c a chúng ta vào th i đi m phát tri n và b o trì ch ng trình, h ờ ể ươ
th ng.
Debug chính là quá trình tìm ki m ra bug và nguyên nhân gây ra bug, t đó ế ừ
có th đ a ra h ng gi i quy t v n đ bug gây ra.ể ư ướ ế
L p trình viên là nh ng ng i có “ti m năng” t o ra bug nh t và cũng ữ ườ
chính là nh ng ng i debug hi u qu nh t, Bug và Debug s theo chúng ta ườ ả ấ
xuyên su t quá trình phát tri n và b o trì ng d ng. ứ ụ
Trong bài vi t này tôi s d a vào kinh nghi m c a b n thân và ki n th c ế ẽ ự ế
tìm hi u đ c trên m ng đ k ra cho m i ng i m t s l i l p trình viên ượ ườ ố ỗ
chúng ta th ng g p ph i khi debug. T đây chúng ta có th rút kinh ườ ặ ả
nghi m đ bi t mình thi u gì và c n gì đ phát tri n kĩ năng debug-m t kĩ ể ế ế
năng c n có c a m t developer. ủ ộ
Log Messages không thành công
Ch c h n chúng ta đã có ít nh t m t l n r i vào hoàn c nh g p ph i m t ộ ầ ơ
bug làm crash app nh ng khi check log message l i không đ d ki n đ ư ủ ữ
xác đ nh ngu n g c c a bug ho c th m chí là không th y gì đ c log ra. ố ủ ượ
M t cách gi i quy t cho tr ng h p này là chúng ta có th đ t log và th ế ườ ể ặ
l i nhi u l n. M c đích là đ sau m i l n log và th có th d n khoang ể ầ
vùng đ c ph n phát sinh bug.ượ ầ
Đ c ho c hi u sai Error Messages ặ ể
H i m i h c code tôi r t hay g p nh ng message khó hi u và lúng túng ớ ọ
trong vi c gi i quy t các l i này -> gây m t th i gian. Đ c m t th i gian ế ấ ờ ượ ộ ờ
nh s ch d y t n tình c a các đ ng nghi p cùng kinh nghi m g p r t ờ ự
nhi u bug, t đã có th t đ c và tìm hi u v ý nghĩa c a các error ể ự
messages, tuy nhiên đôi khi v n hi u ch a đúng ho c ch a đ y đ . Gi i ư ư ầ
pháp là ngay khi đ i m t v i error messages thì nên tìm hi u (h i đ ng ặ ớ ỏ ồ
nghi p ho c đ n gi n là google-sama) d a vào ng c nh hi n t i đ bi t ơ ữ ả ế
rõ ý nghĩa mà message mu n th hi n. ể ệ
Đ t sai v trí Logặ ị
Vi c đ t sai v trí Log ngoài vi c b i ch a hi u rõ flow c a ch ng trình ệ ặ ệ ở ư ươ
mà còn có th do s xu t. H u qu là chúng ta b đi ch ch h ng khi ti n ơ ấ ướ ế
hành Debug -> m t th i gian và vì quay l i cũng có th b m t track, không ể ị
bi t mình sai đâu. Đ ch c ch n r ng mình không Log sai ,chúng ta có ế ắ ằ
th th l i nhi u l n tr c khi chuy n sang b c debug ti p theo. ử ạ ướ ướ ế
Vi t ra r t nhi u các dòng code m i mà không xen k v i debugế ẽ ớ
Chúng ta đ u hi u s l ng code càng l n thì vi c b i ra đ c bug trong ố ượ ượ
đ y càng g p nhi u khó khăn và t n th i gian. Thay vào đó chúng ta có th ố ờ
t đ t các milestones nh , sau khi có m t s l ng code v a đ thì có th ố ượ
build và ch y th đ n m b t đ c bug ngay khi nó xu t hi n. ử ể ắ ượ
Không th s d ng ph ng pháp lo i trử ử ươ
Đôi khi s có nh ng lúc mà chúng ta g p khó khăn trong vi c tìm ra c i ẽ ữ
ngu n c a l i trong m t tr ng h p đ c bi t. Thay vì c đào b i code và ủ ỗ ườ
liên t c check log, ta có th xem xét v n đ c a l i trong các tr ng h p ề ủ ườ
kém đ c bi t h n, t đó lo i tr d n các kh năng có th x y ra và d n ơ ừ ầ ể ả
d n ti n t i đ c ngu n g c c a l i. ế ượ ủ ỗ
Copy và Paste t trên m ngừ ạ
Đây là l i th ng g p các l p trình viên m i vào ngh . Nh ng ph n code ườ ặ ở
trên m ng th ng khác chung chung và th m chí không hoàn toàn phù h p ạ ườ
v i ng c nh c th c a ch ng trình, h th ng. N u mu n áp d ng ph n ụ ể ươ ệ ố ế
code này vào ch ng trình thì c n xem xét và s a đ i cho phù h p đ ng ươ ử ổ
th i cũng ph i l ng tr c ph m vi nh h ng c a nó. ả ườ ướ ưở
Quên m t cách debug m t l i đã g p ph i r i ộ ỗ
Có m t kĩ thu t debug mà tôi tìm hi u đ c đó là sau khi đã debug thành ể ượ
công m t l i, chúng ta có th tái hi n và debug l i l i ngay sau đó đ n m ể ắ
b t hi u rõ h n v n đ -> “Practice make perfect” ơ ấ ề
Quên m t mình đã code cái gì
Có th b n có h ng code và vi t ra m y trăm dòng code liên t c trong m t ể ạ ế
block ,hôm sau ch y th thì l i b dính l i crash app và sau đó b n ph i ạ ị
ng i track l i t ng dòng code v i vô s logic mà không nh rõ mình đã ạ ừ
code cái gì đây. Thay vì v y chúng ta có th tách riêng t ng ph n c a ầ ủ
block đó thành nh ng block nh h n, “chia đ tr ” không ch làm code c a ỏ ơ
b n d nhìn d đ c h n mà còn làm đ n gi n vi c s a đ i h th ng. ơ ơ ổ ệ ố
Trên đây ch là m t s l i chúng ta th ng g p ph i mà tôi đúc k t + tham ườ ặ ả ế
kh o đ c. Hi v ng là t nh ng l i này chúng ta có th nâng cao đ c ả ượ ừ ữ ượ
trình đ debug c a mình. C m n các b n đã đ c bài vi t này c a tôi. ả ơ ế
thông tin tài liệu
Trong bài viết này tôi sẽ kể ra cho mọi người một số lỗi lập trình viên chúng ta thường gặp phải khi debug. Từ đây chúng ta có thể rút kinh nghiệm để biết mình thiếu gì và cần gì để phát triển kĩ năng debug-một kĩ năng cần có của một developer.
Mở rộng để xem thêm
từ khóa liên quan
xem nhiều trong tuần
yêu cầu tài liệu
Giúp bạn tìm tài liệu chưa có

LÝ THUYẾT TOÁN


×