Sisällytin tähän pienen version tästä kehotteesta, koska "My Favorite Prompts" -sarjan pitäisi olla kompakteja, puremakokoisia, itsenäisiä nuggetteja. Mutta tänään muutin tämän todella hulluksi järjestelmäksi. Se ei ole relevanttia, jos teet toista CRUD-ohjelmaa Reactissa tai TODO-listaa, mutta jos teet jotain melko monimutkaista Rustissa tai Golangissa tai jotain monimutkaista dataa sisältävää, tämä lähestymistapa on melkein pelottava siinä, mitä se voi tehdä. Se on kahden kierroksen prosessi. Tässä on ensimmäinen kierros: --- Lue ensin KAIKKI AGENTS dot md -tiedostot ja README dot md -tiedostot todella tarkasti ja ymmärrä KAIKKI molemmat! Käytä sitten kooditutkimusagenttitilaa ymmärtääksesi täysin koodin, teknisen arkkitehtuurin ja projektin tarkoituksen. Kun olet tehnyt erittäin perusteellisen ja huolellisen työn kaiken tämän parissa ja ymmärtänyt syvällisesti koko olemassa olevan järjestelmän ja sen tarkoituksen, toteutuksen ja miten kaikki osat liittyvät toisiinsa, tarvitsen sinun hyperintensiivisesti tutkivan, tutkivan ja pohtimaan näitä kysymyksiä tämän projektin yhteydessä: Onko ydinjärjestelmässä muita törkeitä tehottomuuksia? Koodipohjan kohdat, joissa 1) muutokset oikeasti siirtäisivät kokonaisviiveen, reagoivuuden ja läpimenon kannalta; 2) siten, että muutoksemme olisivat toiminnallisuudeltaan todistettavasti isomorfisia, jotta tietäisimme varmasti, ettei se muuttaisi tuloksia samoilla syötteillä annettuna; 3) missä sinulla on selkeä visio selvästi paremmasta lähestymistavasta algoritmien tai tietorakenteiden osalta (huomaa, että tähän voit sisällyttää pohdintoihisi vähemmän tunnettuja tietorakenteita ja erikoisempia/kehittyneempiä/matemaattisia algoritmeja sekä tapoja muotoilla ongelma uudelleen niin, että toinen paradigma paljastuu, kuten alla esitetty lista (Huomautus: Ennen optimoinnin ehdottamista määritä lähtömittarit (p50/p95/p99 viive, läpäisy, huippumuisti) ja tallenna CPU/allokointi/I/O-profiilit todellisten hotspottien tunnistamiseksi): - N+1 kysely-/hakukuvion poisto - nollakopioi / puskurin uudelleenkäyttö / scatter-gather I/O - sarjoittamismuotojen kustannukset (jäsennys/koodauskuorma) - rajoitetut jonot + vastapaine (estää muistin räjähtämisen ja hännän viiveen) - sirpaleiset / raidalliset lukot kilpailun vähentämiseksi - muistinkäyttö välimuistin mitätöintistrategioilla - dynaamiset ohjelmointitekniikat - konveksi optimointiteoria - laiska arviointi / viivästetty laskenta - iteraattori-/generaattorimallit, jotta suurten kokoelmien ei muodostuisi - suoratoisto/chunked-prosessointi muistirajoitetussa työssä - esilaskenta- ja hakutaulukot - Indeksipohjainen haku vs lineaarinen skannaustunnistus - binäärihaku (datassa ja vastaustilassa) - kaksipiste- ja liukuikkunatekniikat - etuliitesummat / kumulatiiviset aggregaatit - topologinen lajittelu ja DAG-tietoisuus riippuvuusgraafeille...