Những lập trình viên như vậy hầu như không bao giờ biết họ đã làm đúng, chỉ tin như vậy. Và sự khác biệt có thể không dễ nhận biết.
Tôi nhớ cách tôi đã sử dụng để lập trình trước khi tôi biết về thử nghiệm đơn vị. Và tôi nhớ rằng cảm giác tự tin và tin tưởng ở một cấp độ hoàn toàn khác sau khi tôi chạy bộ thử nghiệm đơn vị đàng hoàng đầu tiên của mình. Tôi đã không biết mức độ tin cậy như vậy trong mã của tôi tồn tại trước đây.
Đối với một người thiếu kinh nghiệm này, không thể giải thích sự khác biệt. Vì vậy, họ thậm chí có thể tiếp tục phát triển trong chế độ cầu nguyện trong suốt cuộc đời, nhân từ (và thờ ơ) tin rằng họ đang cố gắng hết sức để xem xét hoàn cảnh.
Điều đó nói rằng, thực sự có thể có những lập trình viên tuyệt vời và những trường hợp đặc biệt, khi một người thực sự xoay sở để giữ toàn bộ không gian vấn đề trong tâm trí của mình, trong một trạng thái hoàn chỉnh. Tôi đã trải qua những khoảnh khắc hiếm hoi như thế này, khi tôi hoàn toàn biết phải viết gì, mã chỉ bay ra khỏi tôi một cách dễ dàng, tôi có thể thấy trước tất cả các trường hợp đặc biệt và điều kiện biên, và mã kết quả chỉ hoạt động . Tôi không nghi ngờ gì nữa, có những thiên tài lập trình ngoài kia, những người có thể ở trong tình trạng dòng chảy như vậy trong thời gian dài hoặc thậm chí hầu hết thời gian của họ, và những gì họ tạo ra là mã đẹp, dường như không cần nỗ lực. Tôi đoán những người như vậy có thể cảm thấy không cần phải viết bài kiểm tra đơn vị trừng phạt để xác minh những gì họ đã biết. Và nếu bạn thực sự là một thiên tài như vậy, điều đó có thể ổn (mặc dù sau đó, bạn sẽ không ở bên dự án đó mãi mãi và bạn nên nghĩ về những người kế nhiệm của mình ...). Nhưng nếu không...
Và hãy đối mặt với nó, rất có thể là bạn không. Tôi, cho chính tôi, biết tôi không. Tôi đã có một số khoảnh khắc hiếm hoi của dòng chảy - và vô số giờ đau buồn và đau khổ, thường là do sai lầm của chính tôi. Tốt hơn là thành thật và thực tế. Trên thực tế, tôi tin rằng các lập trình viên vĩ đại nhất nhận thức đầy đủ về khả năng sai lầm của chính họ và những sai lầm trong quá khứ, vì vậy họ đã có ý thức phát triển thói quen kiểm tra lại các giả định của họ và viết các bài kiểm tra đơn vị nhỏ đó, để giữ an toàn cho bản thân. ( "Tôi không phải là một lập trình viên tuyệt vời - chỉ là một lập trình viên giỏi với những thói quen tuyệt vời." - Kent Beck.)