Miniaturní verzi tohoto podnětu jsem sem přidal, protože série "Moje oblíbené podněty" má být kompaktní, sousta, samostatné nugety. Ale dnes jsem z toho udělal opravdu šílený systém. Není to relevantní, jestli děláte další CRUD program v Reactu nebo seznamu úkolů, ale pokud děláte něco složitého v Rustu nebo Golangu, nebo něco složitého s daty, tento přístup je téměř děsivý v tom, co dokáže. Je to dvoukolový proces. Tady je první kolo: --- Nejprve si přečtěte VŠECHNY soubory AGENTS dot md a README dot md soubory velmi pečlivě a pochopte VŠECHNY z obou! Pak použijte režim agenta pro vyšetřování kódu, abyste plně pochopili kód, technickou architekturu a účel projektu. Poté, co odvedete extrémně důkladnou a pečlivou práci a hluboce pochopíte celý existující systém, co dělá, jeho účel, jak je implementován a jak všechny části spolu souvisejí, potřebuji, abyste tyto otázky v souvislosti s tímto projektem velmi intenzivně zkoumali, studovali a přemýšleli: Existují v jádru systému nějaké další hrubé neefektivity? místa v kódové základně, kde 1) změny skutečně posunou jehlu z hlediska celkové latence/odezvy a propustnosti; 2) tak, že naše změny by byly prokazatelně izomorfní z hlediska funkčnosti, takže bychom si byli jisti, že nezmění výsledné výstupy při stejné vstupech; 3) kde máte jasnou vizi zjevně lepšího přístupu z hlediska algoritmů nebo datových struktur (poznámka: pro toto můžete do úvah zahrnout méně známé datové struktury a esoterické/sofistikovanější/matematické algoritmy, stejně jako způsoby, jak problém přeformulovat tak, aby byl odhalen jiný paradigmat, například v seznamu níže (Poznámka: Před návrhem jakékoli optimalizace stanovte základní metriky (latence p50/p95/p99 latence, propustnost, špičková paměť) a zachyťte profily CPU/alokace/I/O pro identifikaci skutečných hotspotů): - Eliminace vzorů dotazů/načtení N+1 - zero-copy / opětovné použití bufferu / scatter-gather I/O - náklady na formátování serializace (režie parsování/enkódování) - omezené fronty + zpětný tlak (zabránit vybuchnutí paměti a latenci ocasu) - střepiny / pruhované zámky pro snížení sporu - memoizace pomocí strategií zneplatnění cache - techniky dynamického programování - teorie konvexní optimalizace - líné hodnocení / odložený výpočet - vzory iterátorů/generátorů, aby se zabránilo materializaci velkých kolekcí - streamování/chunked processing pro práci s omezením paměti - tabulky předvýpočtů a vyhledávání - indexové vyhledávání vs rozpoznávání lineárního skenování - binární vyhledávání (na datech a na prostoru odpovědí) - techniky dvoubodového a posuvného okna - předponové součty / kumulativní agregáty - topologického třídění a DAG-povědomí o grafech závislostí...