Các câu trả lời khác đã rất tốt và tôi biết ví dụ của bạn chỉ là một ví dụ, nhưng tôi muốn chỉ ra một phần lớn của quy trình này chưa được thảo luận:
Bạn cần xác định các giả định của mình và sau đó kiểm tra các giả định đó đối với các trường hợp góc.
Nhìn vào ví dụ của bạn, tôi thấy một vài giả định:
- Cách tiếp cận đệ quy cuối cùng sẽ gây ra lỗi.
- Không ai sẽ thấy lỗi này vì video mất quá nhiều thời gian để phát để đạt đến giới hạn ngăn xếp.
Những người khác đã thảo luận về giả định đầu tiên, nhưng hãy nhìn vào giả định thứ hai: nếu video của tôi chỉ dài một phần giây thì sao?
Và chắc chắn, có lẽ đó không phải là trường hợp sử dụng rất phổ biến. Nhưng bạn có thực sự chắc chắn rằng không ai sẽ tải lên một video rất ngắn? Bạn đang cho rằng video có thời lượng tối thiểu và thậm chí bạn có thể không nhận ra mình đang giả sử bất cứ điều gì! Giả định này có thể gây ra bất kỳ lỗi nào khác ở những nơi khác trong ứng dụng của bạn không?
Các giả định không xác định là một nguồn lỗi rất lớn.
Như tôi đã nói, tôi biết rằng ví dụ của bạn chỉ là một ví dụ, nhưng quá trình xác định các giả định của bạn (thường khó hơn âm thanh) và sau đó nghĩ đến các ngoại lệ cho các giả định đó là một yếu tố rất lớn trong việc quyết định sử dụng thời gian của bạn.
Vì vậy, nếu bạn thấy mình suy nghĩ "Tôi không cần phải lập trình xung quanh vấn đề này, vì nó sẽ không bao giờ xảy ra" thì bạn nên dành chút thời gian để thực sự kiểm tra giả định đó. Bạn sẽ thường nghĩ về các trường hợp góc có thể phổ biến hơn bạn nghĩ ban đầu.
Điều đó đang được nói, có một điểm mà điều này trở thành một bài tập vô ích. Bạn có thể không quan tâm nếu ứng dụng JavaScript của bạn hoạt động hoàn hảo trên máy tính TI-89, do đó, việc dành bất kỳ khoảng thời gian nào cho việc đó chỉ là lãng phí.
Các câu trả lời khác đã đề cập đến vấn đề này, nhưng đưa ra câu hỏi giữa "điều này quan trọng" và "đây là một sự lãng phí thời gian" không phải là một khoa học chính xác, và nó phụ thuộc vào rất nhiều yếu tố có thể hoàn toàn khác với một người hoặc công ty khác.
Nhưng một phần rất lớn của quá trình đó trước tiên là xác định các giả định của bạn và sau đó cố gắng nhận ra các ngoại lệ đối với các giả định đó.