a-b-street / a-b-street/ltn

Codebase refactor ideas

Offen
#84 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
Rust
Sterne
21
Forks
7
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

Low priority ideas to improve things.

- Stop manually generating GJ features within "application logic". Write type-safe structs and use `geojson::ser` annotations on geometry, then in the wasm `lib.rs` layer, do the actual serializing. Ideally this could also hook into https://github.com/Aleph-Alpha/ts-rs or similar to generate `wasm.ts` on the other end, rather than manually writing it.
- Try replacing lots of network representation and routing logic with https://github.com/a-b-street/15m/tree/main/graph. That upstream library would have to be generalized for modal filters and turn restrictions. It's certainly going to be faster to initially iterate on those things directly in this codebase.

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Rechercherichtung

Die Issue beschreibt zwei große architektonische Änderungen: das Ersetzen der manuellen GeoJSON-Generierung durch typsichere Structs und die Verwendung von `geojson::ser` sowie das Ersetzen der Netzwerkdarstellung durch eine Upstream-Graphbibliothek. Beginne damit, die aktuelle 'Anwendungslogik', die GJ-Features generiert, und `lib.rs` in der wasm-Schicht zu untersuchen. Für die Graphänderung überprüfe die aktuelle Netzwerk- und Routinglogik sowie die Bibliothek `a-b-street/15m`, um den Umfang der Integration zu verstehen. „Erledigt“ bedeutet, dass beide Refactorings implementiert und integriert sind, ohne bestehende Funktionalität zu beeinträchtigen.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
rust, wasm
Bereich
backend, tooling
Issue-Typ
Refactoring
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.