Rubber ducking – Kỹ thuật debug đỉnh cao với Vịt cao su
Kỹ thuật debug đỉnh cao với Vịt cao su
Vịt cao su (Rubber ducking) không chỉ là một cụm từ hài hước mà nó là một kỹ thuật debug vô cùng hiệu quả cho các developer. Đơn giản về bản chất nhưng mạnh mẽ trong việc thực hiện. Rubber ducking có thể giúp bạn tiết kiệm rất nhiều thời gian khi gặp khó khăn với những dòng mã mà chính mình viết ra.
Rubber ducking là gì?
Phương pháp gỡ lỗi đằng sau khái niệm này thực sự rất đơn giản – bạn hãy cố gắng giải thích mã của bạn cho ai đó hoặc với một vật vô tri, như là con vịt cao su chẳng hạn. Điều này sẽ giúp bạn có thể phá vỡ những khúc mắc đang khiến bạn phải loay hoay với những dòng code của mình. Bằng cách đó, bạn buộc phải thoát ra khỏi dòng những suy nghĩ ban đầu về code của mình và bắt đầu giải thích về những gì đang xảy ra với code của bạn. Cứ lặp đi lặp lại các này, một lập trình viên có thể nhập tâm vào vấn đề và xử lý nó mà không cần phải dùng đến Google.
Nguồn gốc của từ vịt cao su này cũng rất thú vị, bắt nguồn từ một câu chuyện trong cuốn sách Pragmatic Programmer về một chàng lập trình viên luôn mang theo một con vịt cao su bên mình và anh luôn giải thích từng dòng mã của anh với con vịt cao su đó. Thật buồn cười đúng không? Nhưng nó lại mang lại hiệu quả bất ngờ trong việc tìm ra lỗi và sửa chữa nó.
Phương pháp này hoạt động như thế nào?
Chúng ta đều hiểu rằng vịt cao su không biết gì về code, nên khi giải thích cho nó, bạn phải dùng các thuật ngữ thực sự đơn giản, theo cách mà một người mới bắt đầu có thể hiểu được. Điều này sẽ loại bỏ các thông tin không liên quan trong lời giải thích của bạn và mọi thứ sẽ được làm sáng tỏ hoàn toàn.
Hãy nhớ rằng, rubber ducking không phải là một phương pháp kỹ thuật đòi hỏi kiến thức cao siêu về lập trình. Mà rubber ducking đơn giản chỉ là một phương pháp đánh vào tâm lý. Rubber ducking cho phép bạn thoát ra khỏi tâm thế là một người viết code và bạn đang giải thích về nó dưới góc nhìn của một người thứ ba và ko biết về lập trình
Có một lưu ý bên lề là, dù sao thì vịt cao su cũng là một vật vô tri vô giác, vậy tại sao không áp dụng điều này với đồng nghiệp của mình? Nếu bạn nghĩ rằng việc giải thích với con vịt cao su dễ thương có thể làm nên điều kỳ diệu, hãy tưởng tượng cảm giác tuyệt vời khi bạn nói chuyện với người khác và họ có thể cho bạn một số lời khuyên về vấn đề của bạn.
Cơ hội cho các developer từ Vịt cao su
Kỹ thuật Rubber Duck Debugging đi ngược lại với những gì anh em developer vẫn thường làm. Đó là mỗi khi gặp lỗi thì họ sẽ cuống cuồng “cầu cứu” Google. Hay thậm chí chạy đi hỏi ngược hỏi xuôi bạn bè và đồng nghiệp mà không biết giải thích lỗi thế nào cho hợp lý. Thông qua Rubber Duck, đây là cơ hội để các developer học cách giữ bình tĩnh và tính cẩn trọng, tỉ mỉ trong công việc. Cũng như trao dồi thêm được khả năng giải thích, phân tích và giải quyết vấn đề trong kỹ thuật phần mềm.
Ngay bây giờ, nếu bạn đang gặp khúc mắc với các dòng code, hãy thử kiếm một vật vô tri nào đó và cố gắng giải thích cho chúng. Hoặc nếu có thể, hãy thử ngồi nói chuyện với một bạn tester hoặc comtor trong dự án của mình. Điều này thực sự có ý nghĩa khi bạn và cả những người trong dự án đều có thể lắng nghe nhau và tìm ra giải pháp cho một vấn đề.
Nhưng tại sao lại là Vịt cao su?
Đến đây thì nên nhắc tới tính cách đặc trưng của anh em Dev một chút. Dĩ nhiên, nếu chỉ là tìm một đối tượng không hiểu biết gì về code để áp dụng phương pháp “ồn ào” này, thì đâu có thiếu?
– Một cô nàng ư? – Dev nào mà lại dám ngồi đàm đạo về code với gái cơ chứ?
– Bố mẹ hay bạn bè? – Ai sẽ có thời gian và kiên nhẫn cơ chứ? Liệu họ hỏi lại có phải là mất công để giải thích không?
– Một chú cún? – Quá ồn ào
– Một chú mèo? – Quá thiếu sự tập trung
– Một chú chim? – Quá phiền hà
vân vân và mây mây…
Vậy thì cái gì đáng yêu, tích cực và tập trung tuyệt đối vào những gì mình nói hơn là một chú Vịt cao su xinh xắn nằm gọn ở góc bàn, như một người chiến hữu cơ chứ.
Một lưu ý nho nhỏ, nếu bạn cố giải thích code của bạn với vợ/ người yêu của mình, bạn có khả năng vào bệnh viện sớm hơn dự kiến!
Kết
Kỹ thuật này thật sự không cần áp dụng bất kỳ kiến thức lập trình nào. Nó rất dễ thực hiện nhưng hiệu quả lại vô cùng bất ngờ. Thay vì debug, bạn cũng có thể áp dụng nó vào các khúc mắc trong cuộc sống hằng ngày để tìm ra lời giải cho chính bản thân mình.
Nguồn tham khảo: CodeLearn.io, TopDev
Để biết thêm thông tin, hãy liên hệ cho chúng tôi
Số điện thoại: 097 175 0028
Fanpage: Akdemy.net học lập trình cho người mới bắt đầu
Trang web: akdemy.net
Email: Training@arrowhitech.com
Địa chỉ: Tầng 11 tòa nhà MITEC, Dương Đình Nghệ, Yên Hòa, Cầu Giấy, Hà Nội