Haskell-tuki Maguyva-palvelussa: koodigraafit tyyppiluokille ja moduuleille
Haskellin tyypit kertovat paljon. Graafi näyttää, kuka nojaa niihin.
Päätteet
.hs, .lhs
Maguyva tukee Elixiriä AST-jäsennyksellä, symboleilla ja graafilla, jotta tekoälyagentit voivat seurata moduuleja, behaviour-määrityksiä, protokollia ja structeja Phoenix- ja OTP-koodissa.
Lähes kaikki Elixirissä on makrokutsu. defmodule, def, use, alias ja @impl jäsennetään kaikki kutsuina, ja use GenServer tuo mukanaan toimintaa, joka ei koskaan näy tiedostossa. Työkalu, joka näkee vain kutsusyntaksin, ei erota määritelmää riippuvuudesta eikä GenServerin callbackia apufunktiosta.
Maguyva muuntaa nämä makrot suhteiksi, joten agentti näkee, mitkä moduulit toteuttavat behaviourin ja kuka kutsuu kontekstifunktiota.
Maguyva kattaa .ex- ja .exs-tiedostot. Elixirin makroista tulee suhteita näin:
alias, import ja require tallentavat tuonteja.use tallentaa tuonnin. OTP:n ja kehysten behaviour-määrityksille, kuten GenServer, Supervisor, Agent, Task, Phoenix.Controller, Phoenix.LiveView ja Ecto.Schema, se tallentaa myös sen, että moduuli toteuttaa kyseisen behaviourin.@behaviour-attribuutit ja defimpl-lohkot tallentavat behaviourin tai protokollan toteutuksen.@doc, @spec, @impl ja @callback, tallennetaan seuraavan funktion annotaatioiksi. Arvoattribuutit, kuten @timeout 5_000, eivät.%User{}-struct-literaalit lasketaan instanssin luonneiksi, raise tallentaa poikkeuksen heiton, ja rescue ja catch tallentavat sen sieppauksen.Kielen makrot, kuten def, defp, defmodule, case ja with, suodatetaan pois kutsuista, joten kutsugraafi näyttää omat funktiosi.
Accounts.register_user ja mistä kontrollereista?” (find_symbol, sitten dependency_search incoming)GenServer?” (dependency_search)get_task_context)def-, defmodule-, alias- ja import-muodot ovat kieliopissa kutsusolmuja, joten structural_search-työkalussa tuloksia palauttaa vain esiasetus functions, ja sekin vain nimettömille fn-funktioille. Käytä nimettyihin funktioihin ja moduuleihin find_symbol-työkalua.IO.puts, String.*, Enum.take ja Process.*, suodatetaan pois suhteista. Käytä niihin text_pattern_search-työkalua.Yhdistä repositorio pikaoppaan avulla ja tarkista sitten tukimatriisi yhteensopivuussivulta. Muissa funktionaalisissa koodikannoissa lue Haskell-opas.
Parhaiten sopii
Agenttien työnkulut
Moottorin yksityiskohdat
Hyödylliset MCP-liittymäkohdat
Käytä sitä kontekstifunktiolle tai moduulille, kun tarvitset määritelmän ja kutsujat; rakenteelliset esiasetukset eivät valitse nimettyjä `def`-muotoja.
Käytä incoming-läpikäyntiä behaviourille tai protokollalle nähdäksesi, mitkä moduulit toteuttavat sen.
Käytä sitä kehotteisiin kuten ”jäljitä maksupyyntö kontrollerista tietokantaan asti”.
Aiheeseen liittyvät oppaat
Haskellin tyypit kertovat paljon. Graafi näyttää, kuka nojaa niihin.
Päätteet
.hs, .lhs
Ruby luetaan kuin proosaa. Sen takana olevat riippuvuudet tarvitsevat silti kartan.
Päätteet
.gemfile, .gemspec, .rake, .rakefile, +2 lisää