Này, lập trình viên, bạn đã có Vịt cao su chưa?
Liệu bạn có biết rằng, ngày nay, Vịt cao su là một phương pháp debug hữu hiệu và thời thượng dành cho giới lập trình trên toàn thế giới. Điều thú vị ở chỗ, đây hoàn toàn không phải là một câu chuyện đùa. Cùng đọc tiếp nhé 😉
Lần đầu tiên khái niệm “Rubber Duck Debugging” xuất hiện là ở trong cuốn “The Pragmatic Programmer” của Andy Hunt and David Thomas. Cụ thể là như thế này:
Bản chất của phương pháp Debugging với Vịt cao su là bạn mua (hoặc thuê) một chú Vịt cao su về, để trên bàn ở nơi trang trọng nhất, và giải thích một cách ngắn gọn và dễ hiểu từng dòng một trong đoạn code của mình với nó. Và rồi BOOM!, điều kì diệu sẽ xảy ra, mọi vấn đề dường như sáng tỏ và việc debug chỉ nằm trong bàn tay bạn. Nghe tưởng vô lý, nhưng trên thực tế, nó có cả lý giải đầy tính khoa học hẳn hoi.
Lời giải thích cho phương pháp này nằm ở quá trình bạn biểu đạt vấn đề của mình một cách rành mạch, dễ hiểu cho một đối tượng không có chút hiểu biết nào về những việc bạn đang làm. Quan trọng là trong quá trình ấy, bạn sẽ phải huy động mọi giác quan bao gồm: mắt để nhìn, miệng để nói, não bộ để sắp xếp các suy nghĩ trong đầu. Việc này sẽ giúp cho bạn dễ dàng tìm thấy những lỗ hổng trong mạch tư duy mà có thể bạn chưa bao giờ nhìn ra, và tìm được giải pháp đơn giản nhất để giải quyết chúng.
Việc giải thích code cho một chú Vịt cao su, về mặt bản chất, chẳng khác gì việc bạn viết note khi học thuộc lòng, hay giảng bài cho người khác khi muốn củng cố lại kiến thức của mình. Tất cả đều có điểm chung là cố gắng vận dụng nhiều nhất các giác quan có thể để hỗ trợ quá trình tư duy và giải quyế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ứ 😉
Những mẩu chuyện hài hước xung quanh Rubber Duck Debugging:
1. Quack (Overflow)!
Vào ngày 1.4.2018, trên Stack Overflow xuất hiện một popup của người trợ lý Vịt cao su, luôn luôn lắng nghe, lâu lâu mới hiểu vấn đề mà bạn gặp phải với code của mình.
Nó thậm chí còn khuyến khích dev chia sẻ suy nghĩ của mình, lắng nghe rất chăm chú và phản hồi vô cùng tận tâm.
2. Mua Debugging Vịt cao su:
Nếu bạn thật sự nghiêm túc về công việc của mình, hãy thuê/mua những chuyên gia có trình độ “đại học” để tư vấn về code cho mình nhé. Ở đây người ta có bán những chú Vịt cao su với rất nhiều chuyên ngành phong phú cho các anh em lựa chọn.
3. Những chú Vịt Online
Có riêng một trợ lý Vịt dĩ nhiên là rất tốt rồi, nhưng nếu bạn chưa có tiền để thuê chú trợ lý này thì sao? Đừng lo nhé, vẫn có những trợ lý ảo sẵn sàng “Quack! Quack!” vì bạn.
Vậy thì, sau khi đọc bài viết này, bạn đã sẵn sàng để tậu một chú Vịt cao su chưa? 😉
Có thể bạn quan tâm:
- Sau 7 năm lập trình! Bạn sẽ là ai?
- Kinh nghiệm khởi nghiệp dành cho lập trình viên
- Kinh nghiệm phỏng vấn IT: Đi xin việc cũng như đi tán gái!
Xem ngay những tin đăng tuyển dụng IT mới nhất trên TopDev
TopDev via Spiderum
- B BenQ RD Series – Dòng Màn Hình Lập Trình 4k+ Đầu Tiên Trên Thế Giới
- F Framework nào tốt nhất cho dự án của bạn? – Checklist chi tiết
- K Kinh nghiệm xử lý responsive table hiệu quả
- S Stackoverflow là gì? Bí kíp tận dụng Stack Overflow hiệu quả
- 7 7 kinh nghiệm hữu ích khi làm việc với GIT trong dự án
- B Bài tập Python từ cơ bản đến nâng cao (có lời giải)
- B Bảo mật API là gì? Một số nguyên tắc và kỹ thuật cần biết
- H Hướng dẫn cài đặt và tự học lập trình Python cơ bản từ A-Z
- C Chinh Phục Phân Tích Dữ Liệu Với Pandas Trong Python: Hướng Dẫn Từng Bước
- D Display CSS là gì? Cách khai báo và sử dụng thuộc tính display trong CSS