J'ai inclus la version miniature de cette invite ici parce que la série "Mes invites préférées" est censée être compacte, concise et autonome. Mais aujourd'hui, j'ai transformé cela en un système vraiment fou. Ce n'est pas pertinent si vous créez un autre programme CRUD en React ou une liste de tâches, mais si vous faites quelque chose de plutôt compliqué en Rust ou Golang, ou quelque chose impliquant des données complexes, cette approche est presque effrayante par ce qu'elle peut faire. C'est un processus en 2 étapes. Voici la première étape : --- Lisez TOUT le fichier AGENTS dot md et le fichier README dot md très attentivement et comprenez TOUT des deux ! Ensuite, utilisez votre mode agent d'investigation de code pour comprendre pleinement le code, l'architecture technique et l'objectif du projet. Ensuite, une fois que vous avez fait un travail extrêmement approfondi et méticuleux sur tout cela et que vous avez profondément compris l'ensemble du système existant et ce qu'il fait, son objectif, et comment il est mis en œuvre et comment toutes les pièces se connectent les unes aux autres, j'ai besoin que vous enquêtiez hyper intensivement et étudiiez et réfléchissiez à ces questions en rapport avec ce projet : Y a-t-il d'autres inefficacités grossières dans le système central ? Des endroits dans la base de code où 1) des changements feraient réellement bouger les choses en termes de latence/réactivité et de débit global ; 2) de sorte que nos changements seraient prouvablement isomorphes en termes de fonctionnalité afin que nous sachions avec certitude qu'ils ne changeraient pas les résultats donnés les mêmes entrées ; 3) où vous avez une vision claire d'une approche manifestement meilleure en termes d'algorithmes ou de structures de données (notez que pour cela, vous pouvez inclure dans vos réflexions des structures de données moins connues et des algorithmes plus ésotériques/sophistiqués/mathématiques ainsi que des façons de reformuler le(s) problème(s) afin qu'un autre paradigme soit exposé, comme la liste montrée ci-dessous (Remarque : Avant de proposer toute optimisation, établissez des métriques de référence (latence p50/p95/p99, débit, mémoire maximale) et capturez les profils CPU/allocation/I/O pour identifier les véritables points chauds) : - Élimination du modèle de requête/fetch N+1 - zéro-copie / réutilisation de tampon / I/O scatter-gather - coûts de format de sérialisation (surcharge de parse/encode) - files d'attente limitées + pression arrière (prévenir l'explosion de mémoire et la latence de fin) - sharding / verrous rayés pour réduire la contention - mémoïsation avec des stratégies d'invalidation de cache - techniques de programmation dynamique - théorie de l'optimisation convexe - évaluation paresseuse / calcul différé - motifs d'itérateur/générateur pour éviter de matérialiser de grandes collections - traitement en streaming/chunké pour un travail limité en mémoire - pré-calcul et tables de recherche - recherche basée sur l'index vs reconnaissance par balayage linéaire - recherche binaire (sur les données et sur l'espace de réponse) - techniques de deux pointeurs et de fenêtre glissante - sommes préfixes / agrégats cumulés...