Best formalism to define the interface
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 25/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Da chiarire
- Stato di attività
- Ferma
- Stack tecnologico
- julia
- Ambito
- api, backend-api-design
Direzione di ricerca
Inizia esaminando le scelte dell’interfaccia proposte in questa issue e la pull request #262 di Graphs.jl a cui si fa riferimento. Confronta gli approcci della funzione senza metodo e dell’errore predefinito, insieme alle opzioni collegate Interfaces.jl e InterfaceSpecs.jl. Il lavoro è completato quando i maintainer hanno concordato e documentato il formalismo per la nuova API.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
When we define the new API, there will be abstract types with some methods that must be implemented. In base Julia, I see two main ways of specifying this (as in, defining the function name, possibly with a generic docstring):
julia> function myfunc1 end
myfunc1 (generic function with 0 methods)
julia> myfunc2(args...) = error("Not implemented")
myfunc2 (generic function with 1 method)
julia> myfunc1(1)
ERROR: MethodError: no method matching myfunc1(::Int64)
Stacktrace:
[1] top-level scope
@ REPL[4]:1
julia> myfunc2(1)
ERROR: Not implemented
Stacktrace:
[1] error(s::String)
@ Base ./error.jl:35
[2] myfunc2(args::Int64)
@ Main ./REPL[2]:1
[3] top-level scope
@ REPL[5]:1
I believe a methodless function is better than a single method throwing an error by default. The end result is nearly the same in terms of user experience, but I find the first error clearer because it directly tells you what to implement. @simonschoelly what do you think?
Of course we could also consider more advanced options like Interfaces.jl or InterfaceSpecs.jl but maybe it's a bit overkill?
- Lingua principale
- Julia
- Stelle
- 11
- Fork
- 2
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di JuliaGraphs/GraphsBase.jl
-
Constructors for 2.0Apertaquestion
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
JuliaGraphs/GraphsBase.jl#34 ·
-
question
Difficoltà 5/5 Più di una settimana Idoneità per principianti 15/100
JuliaGraphs/GraphsBase.jl#28 ·
-
question
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
JuliaGraphs/GraphsBase.jl#27 · 1 commento · 1 reazione ·
-
question
Difficoltà 5/5 Più di una settimana Idoneità per principianti 22/100
JuliaGraphs/GraphsBase.jl#26 · 6 commenti · 2 reazioni ·
-
question
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
JuliaGraphs/GraphsBase.jl#25 · 3 commenti · 1 reazione ·
Tutte le issue di JuliaGraphs/GraphsBase.jl
Issue simili
-
documentation
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
I maintainer di solito rispondono entro 1 giorno
-
Truncated discrete ccdf and logccdf return incorrect values at the lower atomForse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
JuliaStats/Distributions.jl#2095 ·
-
documentation 📜 microphysics💧 ❄️
Difficoltà 2/5 1-3 ore Idoneità per principianti 63/100
NumericalEarth/Breeze.jl#1073 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 Meno di un'ora Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
CliMA/ClimaAtmos.jl#4891 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno