Tôi đã bao gồm phiên bản thu nhỏ của lời nhắc này ở đây vì loạt "Những Lời Nhắc Yêu Thích Của Tôi" được thiết kế để ngắn gọn, dễ hiểu và tự chứa. Nhưng hôm nay tôi đã biến điều này thành một hệ thống thực sự điên rồ. Nó không liên quan nếu bạn đang tạo một chương trình CRUD khác trong React hoặc một danh sách TODO, nhưng nếu bạn đang làm điều gì đó khá phức tạp trong Rust hoặc Golang, hoặc điều gì đó liên quan đến dữ liệu phức tạp, cách tiếp cận này gần như đáng sợ về những gì nó có thể làm. Đó là một quy trình 2 vòng. Đây là Vòng 1: --- Đầu tiên hãy đọc TẤT CẢ các tệp AGENTS dot md và README dot md một cách cực kỳ cẩn thận và hiểu TẤT CẢ cả hai! Sau đó, hãy sử dụng chế độ đại lý điều tra mã của bạn để hiểu rõ mã, kiến trúc kỹ thuật và mục đích của dự án. Sau đó, khi bạn đã thực hiện một công việc cực kỳ kỹ lưỡng và tỉ mỉ trong tất cả những điều đó và hiểu sâu sắc toàn bộ hệ thống hiện có và những gì nó làm, mục đích của nó, và cách nó được triển khai và cách tất cả các phần kết nối với nhau, tôi cần bạn điều tra và nghiên cứu một cách cực kỳ kỹ lưỡng và suy ngẫm về những câu hỏi này liên quan đến dự án này: Có bất kỳ sự không hiệu quả nào khác trong hệ thống cốt lõi không? Những nơi trong mã nguồn mà 1) thay đổi thực sự sẽ làm thay đổi đáng kể về độ trễ/đáp ứng và thông lượng; 2) sao cho những thay đổi của chúng tôi sẽ được chứng minh là đồng nhất về mặt chức năng để chúng tôi biết chắc chắn rằng nó sẽ không thay đổi các đầu ra kết quả khi có cùng đầu vào; 3) nơi bạn có một tầm nhìn rõ ràng về một cách tiếp cận rõ ràng hơn về mặt thuật toán hoặc cấu trúc dữ liệu (lưu ý rằng đối với điều này, bạn có thể bao gồm trong suy nghĩ của mình các cấu trúc dữ liệu ít được biết đến hơn và các thuật toán phức tạp/tinh vi/toán học cũng như các cách để tái cấu trúc vấn đề để một mô hình khác được lộ ra, chẳng hạn như danh sách được hiển thị bên dưới (Lưu ý: Trước khi đề xuất bất kỳ tối ưu hóa nào, hãy thiết lập các chỉ số cơ bản (độ trễ p50/p95/p99, thông lượng, bộ nhớ tối đa) và ghi lại các hồ sơ CPU/phân bổ/I/O để xác định các điểm nóng thực tế): - Loại bỏ mẫu truy vấn/fetch N+1 - không sao chép / tái sử dụng bộ đệm / I/O phân tán-tập hợp - chi phí định dạng tuần tự (chi phí phân tích/mã hóa) - hàng đợi giới hạn + áp lực ngược (ngăn chặn sự bùng nổ bộ nhớ và độ trễ đuôi) - phân mảnh / khóa sọc để giảm sự tranh chấp - ghi nhớ với các chiến lược vô hiệu hóa bộ nhớ đệm - kỹ thuật lập trình động - lý thuyết tối ưu hóa lồi - đánh giá lười biếng / tính toán hoãn lại - mẫu trình lặp/generator để tránh tạo ra các bộ sưu tập lớn - xử lý luồng/khối cho công việc giới hạn bộ nhớ - tính toán trước và bảng tra cứu - tra cứu dựa trên chỉ mục so với quét tuyến tính - tìm kiếm nhị phân (trên dữ liệu và trên không gian câu trả lời) - kỹ thuật hai con trỏ và cửa sổ trượt - tổng tiền tố / tổng tích lũy...