Khi tôi mới bắt đầu học PHP (khoảng 5 hoặc 6 năm trước) tôi đã học về Ajax và tôi đã trải qua "các giai đoạn":
- Máy chủ của bạn trả về dữ liệu HTML và bạn đặt nó bên trong một của DOM innerHTML
- Bạn tìm hiểu về các định dạng truyền dữ liệu, chẳng hạn như XML (và nói "oooh vậy đó là những gì nó được sử dụng cho) và sau đó là JSON.
- Bạn trả về JSON và xây dựng giao diện người dùng của mình bằng mã JavaScript vanilla
- Bạn chuyển sang jQuery
- Bạn tìm hiểu về API, tiêu đề, mã trạng thái HTTP, REST , CORS và Bootstrap
- Bạn tìm hiểu SPA và các khung công tác frontend ( React , Vue.js và AngularJS ) và tiêu chuẩn API JSON.
- Bạn nhận được một số mã kế thừa doanh nghiệp và khi kiểm tra nó, thấy rằng họ thực hiện những gì được mô tả trong bước 1.
Khi tôi làm việc với cơ sở mã di sản này, tôi thậm chí không nghĩ rằng nó có thể trả về HTML (ý tôi là, bây giờ chúng tôi là chuyên gia phải không?), Vì vậy tôi đã gặp khó khăn khi tìm kiếm điểm cuối JSON trả về dữ liệu các cuộc gọi Ajax được đưa ra. Mãi đến khi tôi hỏi "lập trình viên" thì anh ta mới nói với tôi rằng nó đang trả lại HTML và được thêm trực tiếp vào DOM bằng InternalHTML.
Tất nhiên, điều này thật khó chấp nhận. Tôi bắt đầu nghĩ cách để cấu trúc lại điểm này thành các điểm cuối JSON, nghĩ về việc đơn vị kiểm tra các điểm cuối, v.v. Tuy nhiên, codebase này không có xét nghiệm. Không một ai. Và đó là hơn 200 nghìn dòng. Tất nhiên một trong những nhiệm vụ của tôi bao gồm đề xuất các phương pháp tiếp cận để kiểm tra toàn bộ, nhưng hiện tại chúng tôi vẫn chưa giải quyết được điều đó.
Vì vậy, tôi không ở đâu, trong một góc, tự hỏi: nếu chúng tôi không có bài kiểm tra nào, vì vậy chúng tôi không có lý do cụ thể nào để tạo điểm cuối JSON này (vì nó không "tái sử dụng": nó trả về dữ liệu chỉ phù hợp với phần đó của ứng dụng, nhưng tôi nghĩ rằng điều này đã được ngụ ý vì nó ... trả về dữ liệu HTML).
Chính xác thì điều gì là sai khi làm điều này?