Go: cmd/go: Gehe standardmäßig extrem langsam ohne Feedback

Erstellt am 17. Nov. 2016  ·  3Kommentare  ·  Quelle: golang/go

Welche Version von Go verwenden Sie ( go version )?

$ go version
go version go1.7.3 darwin/amd64

Was haben Sie gemacht?

go get scheint standardmäßig kein nützliches Feedback zu haben.

Fortpflanzen:
go get github.com/die-net/dhtproxy
Dies scheint dann für etwa 10-15 Minuten zu gefrieren. Es gibt keine Rückmeldung.

Schließlich habe ich herausgefunden, dass ich Folgendes kann:
go get -u -v github.com/die-net/dhtproxy
Um den Fortschritt zu sehen, und es scheint, dass youtube/vitess absolut gigantisch ist, dauert dieser Befehl ewig.

Was hast du erwartet zu sehen?

Ich hatte erwartet, etwas in der Art von "Projekt abrufen, Deps abrufen, Deps installieren usw." mit einer Art Fortschrittsbalken zu sehen.

Was hast du stattdessen gesehen?

Nichts. Es sitzt nur etwa 10 Minuten da. Ich dachte, es sei kaputt.

Die Lösung liegt auf der Hand – aktivieren Sie standardmäßig -v . Es ist ein schreckliches CLI-Design, wenn ein Prozess standardmäßig 10 Minuten lang ohne Ausgabe ausgeführt wird, es scheint nur, als wäre er kaputt.

FrozenDueToAge

Hilfreichster Kommentar

Die Regel der Stille besagt nicht, dass Programme absolut geräuschlos sein sollten, es sei denn, es liegt ein Fehler vor oder eine Ausgabe wird ausdrücklich angefordert, sondern Programme sollten nicht unnötig ausgegeben werden. Angesichts der Rückmeldung, dass ein Prozess, der 15 Minuten dauert, nicht hängen geblieben ist, ist dies nicht unnötig, sondern ein gutes CLI-Design.

Als Referenz ist keiner (0) der anderen von mir getesteten Paketmanager standardmäßig stumm.

$ pip install test
Collecting test
  Downloading test-2.3.4.5.tar.gz
Building wheels for collected packages: test
  Running setup.py bdist_wheel for test ... done
  Stored in directory: /Users/rjones/Library/Caches/pip/wheels/0e/83/0d/f0f92214b5cce4bcbce4958ddacebf926e1c54c8445f0ba167
Successfully built test
Installing collected packages: test
Successfully installed test-2.3.4.5
$ npm install test
/tmp/
└─┬ [email protected] 
  └── [email protected] 

( npm hat ein --silent Flag für diese Funktion)

$ brew install test
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 2 taps (homebrew/core, homebrew/versions).
==> New Formulae
homebrew/versions/postgresql95
==> Updated Formulae
ruby ✔                                                                          tig                                                                             tile38
==> Deleted Formulae
homebrew/versions/postgresql93

Error: No available formula with the name "test" 
==> Searching for similarly named formulae...
These similarly named formulae were found:
cpptest                   cxxtest                   gjstest                   homebrew/science/swetest  memtester                 slowhttptest              testdisk                  unittest                  vttest
cpputest                  git-test                  homebrew/games/minetest   js-test-driver            phoronix-test-suite       speedtest_cli             testssl                   unittest-cpp
To install one of them, run (for example):
  brew install cpptest
==> Searching taps...
These formulae were found in taps:
homebrew/completions/ctest-completion                       Caskroom/cask/aja-system-test                               Caskroom/cask/nsregextester                                 Caskroom/versions/emacs-pretest
homebrew/emacs/test-simple                                  Caskroom/cask/colortester                                   Caskroom/cask/sqlitestudio
To install one of them, run (for example):
  brew install homebrew/completions/ctest-completion

usw.

Ich denke, zu sagen "weil es Unix ist" ist ein bisschen unaufrichtig. Es ist _extrem_ üblich, dass Unix-Programme mit lang laufenden Aufgaben Fortschrittsbalken haben - siehe rsync, wget, git usw.

Was ist der Vorteil, hier keinen Fortschrittsbalken zu haben? Es scheint, als ob die Vorteile von "nicht völlig kaputt zu sein" die Vorteile von "nicht einen kleinen Prozentsatz von Benutzern zu ärgern, die Feedback hassen und sich auch weigern, --silent zu verwenden", bei weitem überwiegen.

Alle 3 Kommentare

Das ist der Unix-Weg: Seien Sie standardmäßig ruhig, es sei denn, es wurde Ausführlichkeit angefordert oder es liegt ein Fehler vor.

Ich glaube nicht, dass wir das ändern werden. Noch mehr Leute wären gegen das, was sie standardmäßig als Spam (-v) bezeichnen würden.

Die Regel der Stille besagt nicht, dass Programme absolut geräuschlos sein sollten, es sei denn, es liegt ein Fehler vor oder eine Ausgabe wird ausdrücklich angefordert, sondern Programme sollten nicht unnötig ausgegeben werden. Angesichts der Rückmeldung, dass ein Prozess, der 15 Minuten dauert, nicht hängen geblieben ist, ist dies nicht unnötig, sondern ein gutes CLI-Design.

Als Referenz ist keiner (0) der anderen von mir getesteten Paketmanager standardmäßig stumm.

$ pip install test
Collecting test
  Downloading test-2.3.4.5.tar.gz
Building wheels for collected packages: test
  Running setup.py bdist_wheel for test ... done
  Stored in directory: /Users/rjones/Library/Caches/pip/wheels/0e/83/0d/f0f92214b5cce4bcbce4958ddacebf926e1c54c8445f0ba167
Successfully built test
Installing collected packages: test
Successfully installed test-2.3.4.5
$ npm install test
/tmp/
└─┬ [email protected] 
  └── [email protected] 

( npm hat ein --silent Flag für diese Funktion)

$ brew install test
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 2 taps (homebrew/core, homebrew/versions).
==> New Formulae
homebrew/versions/postgresql95
==> Updated Formulae
ruby ✔                                                                          tig                                                                             tile38
==> Deleted Formulae
homebrew/versions/postgresql93

Error: No available formula with the name "test" 
==> Searching for similarly named formulae...
These similarly named formulae were found:
cpptest                   cxxtest                   gjstest                   homebrew/science/swetest  memtester                 slowhttptest              testdisk                  unittest                  vttest
cpputest                  git-test                  homebrew/games/minetest   js-test-driver            phoronix-test-suite       speedtest_cli             testssl                   unittest-cpp
To install one of them, run (for example):
  brew install cpptest
==> Searching taps...
These formulae were found in taps:
homebrew/completions/ctest-completion                       Caskroom/cask/aja-system-test                               Caskroom/cask/nsregextester                                 Caskroom/versions/emacs-pretest
homebrew/emacs/test-simple                                  Caskroom/cask/colortester                                   Caskroom/cask/sqlitestudio
To install one of them, run (for example):
  brew install homebrew/completions/ctest-completion

usw.

Ich denke, zu sagen "weil es Unix ist" ist ein bisschen unaufrichtig. Es ist _extrem_ üblich, dass Unix-Programme mit lang laufenden Aufgaben Fortschrittsbalken haben - siehe rsync, wget, git usw.

Was ist der Vorteil, hier keinen Fortschrittsbalken zu haben? Es scheint, als ob die Vorteile von "nicht völlig kaputt zu sein" die Vorteile von "nicht einen kleinen Prozentsatz von Benutzern zu ärgern, die Feedback hassen und sich auch weigern, --silent zu verwenden", bei weitem überwiegen.

Obwohl ich nicht denke, dass einer der von Ihnen erwähnten Paketmanager ein gutes Beispiel ist (sie sind alle die ganze Zeit viel zu laut), stimme ich zu, dass eine Fortschrittsanzeige für go get nicht schaden kann . GitHub hat vor allem Strecken eher langsam Klon Geschwindigkeiten und die Gesamtlaufzeit ist abhängig von der Anzahl der Abhängigkeiten, die für den Benutzer vorher nicht offensichtlich oder bekannt ist, so hat sich aktiv entscheiden verwenden -v ist nicht wirklich eine tolle lösung.

Nun, ein Fortschrittsbalken ist nicht wirklich eine Option – er ist standardmäßig zu laut und nicht alle VCSs unterstützen standardmäßig Fortschrittsbalken. Die standardmäßige Aktivierung von -v ist ebenfalls zu laut.

Leider fällt mir nicht wirklich ein Mechanismus ein, der nicht laut ist und gleichzeitig bei Bedarf genügend Informationen liefert.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen