Trong dự án hiện tại của tôi (một trò chơi, trong C ++), tôi đã quyết định rằng tôi sẽ sử dụng Test Driven Development 100% trong quá trình phát triển.
Về chất lượng mã, điều này thật tuyệt vời. Mã của tôi chưa bao giờ được thiết kế tốt hoặc không có lỗi. Tôi không co rúm người khi xem mã tôi đã viết cách đây một năm khi bắt đầu dự án và tôi đã hiểu rõ hơn về cách cấu trúc mọi thứ, không chỉ dễ kiểm tra hơn mà còn đơn giản hơn để thực hiện và sử dụng .
Tuy nhiên ... đã một năm kể từ khi tôi bắt đầu dự án. Cấp, tôi chỉ có thể làm việc với nó trong thời gian rảnh rỗi, nhưng TDD vẫn làm tôi chậm lại đáng kể so với những gì tôi đã từng làm. Tôi đọc được rằng tốc độ phát triển chậm trở nên tốt hơn theo thời gian và tôi chắc chắn nghĩ rằng việc kiểm tra dễ dàng hơn rất nhiều so với trước đây, nhưng tôi đã ở đó được một năm và tôi vẫn đang làm việc với tốc độ của ốc sên.
Mỗi lần tôi nghĩ về bước tiếp theo cần làm việc, tôi phải dừng lại mỗi lần và nghĩ về cách tôi sẽ viết một bài kiểm tra cho nó, để cho phép tôi viết mã thực tế. Đôi khi tôi sẽ bị mắc kẹt trong nhiều giờ, biết chính xác mã tôi muốn viết, nhưng không biết làm thế nào để phá vỡ nó đủ tốt để hoàn toàn bao quát nó với các bài kiểm tra. Những lần khác, tôi sẽ nhanh chóng nghĩ ra hàng tá bài kiểm tra và dành một giờ để viết bài kiểm tra để bao quát một đoạn mã thực sự nhỏ mà nếu không thì sẽ mất vài phút để viết.
Hoặc, sau khi hoàn thành bài kiểm tra thứ 50 để bao quát một thực thể cụ thể trong trò chơi và tất cả các khía cạnh của việc tạo và sử dụng nó, tôi nhìn vào danh sách việc cần làm của mình và thấy thực thể tiếp theo được mã hóa, và kinh hãi khi nghĩ đến việc viết 50 thử nghiệm tương tự khác để thực hiện nó.
Đã đến lúc, nhìn vào sự tiến bộ của năm ngoái, tôi đang xem xét từ bỏ TDD vì mục đích "hoàn thành dự án chết tiệt". Tuy nhiên, từ bỏ chất lượng mã đi kèm với nó không phải là điều tôi mong đợi. Tôi sợ rằng nếu tôi dừng viết bài kiểm tra, thì tôi sẽ bỏ thói quen làm cho mã trở nên mô-đun và có thể kiểm tra được.
Có lẽ tôi đang làm gì đó sai để vẫn chậm như vậy lúc này? Có những lựa chọn thay thế giúp tăng tốc năng suất mà không mất hoàn toàn lợi ích? TAD? Bảo hiểm ít kiểm tra? Làm thế nào để những người khác sống sót TDD mà không giết chết tất cả năng suất và động lực?