go version
)?$ go version
go version go1.7.3 darwin/amd64
go get
tampaknya tidak memiliki umpan balik yang berguna secara default.
Untuk mereproduksi:
go get github.com/die-net/dhtproxy
Ini kemudian tampak membeku selama sekitar 10-15 menit. Tidak ada umpan balik.
Akhirnya saya tahu bahwa saya bisa:
go get -u -v github.com/die-net/dhtproxy
Untuk melihat kemajuannya, dan tampaknya karena youtube/vitess
benar-benar besar, perintah ini membutuhkan waktu lama.
Saya berharap untuk melihat sesuatu di sepanjang baris "Mengambil proyek, mengambil deps, menginstal deps, dll", dengan semacam bilah kemajuan.
Tidak. Itu hanya duduk di sana selama sekitar 10 menit. Saya pikir itu rusak.
Solusinya jelas - aktifkan -v
secara default. Ini desain CLI yang mengerikan untuk menjalankan proses selama 10 menit tanpa output secara default, sepertinya itu rusak.
Itulah cara Unix: diam secara default, kecuali verbositas diminta atau ada kesalahan.
Saya tidak berpikir ini adalah sesuatu yang akan kita ubah. Bahkan lebih banyak orang akan menentang apa yang mereka anggap sebagai spam (-v) secara default.
Aturan Keheningan bukanlah bahwa program harus benar-benar diam kecuali ada kesalahan atau keluaran yang diminta secara khusus, tetapi program tidak boleh mengeluarkan keluaran yang tidak perlu. Mengingat umpan balik bahwa proses yang memakan waktu 15 menit tidak macet tidak perlu, pada kenyataannya, itu adalah desain CLI yang bagus.
Sebagai referensi, tidak ada (0) dari manajer paket lain yang saya uji yang diam secara default.
$ 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
memiliki tanda --silent
untuk fitur ini)
$ 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
dll.
Saya pikir untuk mengatakan "karena itu Unix" agak tidak jujur. Ini _sangat_ umum untuk program Unix dengan tugas yang berjalan lama untuk memiliki bilah kemajuan - lihat rsync, wget, git, dll.
Apa keuntungan tidak memiliki bilah kemajuan di sini? Sepertinya manfaat "tidak tampak benar-benar rusak" jauh lebih besar daripada manfaat "tidak mengganggu sebagian kecil pengguna yang membenci umpan balik dan juga menolak untuk menggunakan --silent
".
Meskipun saya tidak berpikir bahwa manajer paket mana pun yang Anda sebutkan adalah contoh yang baik (mereka semua terlalu berisik sepanjang waktu), saya setuju bahwa beberapa indikasi kemajuan untuk go get
tidak ada salahnya . GitHub khususnya memiliki rentang kecepatan klon yang agak lambat, dan waktu proses keseluruhan tergantung pada jumlah dependensi, yang tidak jelas atau diketahui pengguna sebelumnya, jadi harus secara aktif memutuskan untuk menggunakan -v
bukanlah benar-benar solusi yang bagus.
Sekarang, bilah kemajuan sebenarnya bukan pilihan -- secara default terlalu berisik, dan tidak semua VCS mendukung bilah kemajuan secara default. Mengaktifkan -v
secara default juga terlalu berisik.
Sayangnya saya tidak bisa memikirkan mekanisme yang tidak berisik dan pada saat yang sama memberikan informasi yang cukup saat dibutuhkan.
Komentar yang paling membantu
Aturan Keheningan bukanlah bahwa program harus benar-benar diam kecuali ada kesalahan atau keluaran yang diminta secara khusus, tetapi program tidak boleh mengeluarkan keluaran yang tidak perlu. Mengingat umpan balik bahwa proses yang memakan waktu 15 menit tidak macet tidak perlu, pada kenyataannya, itu adalah desain CLI yang bagus.
Sebagai referensi, tidak ada (0) dari manajer paket lain yang saya uji yang diam secara default.
(
npm
memiliki tanda--silent
untuk fitur ini)dll.
Saya pikir untuk mengatakan "karena itu Unix" agak tidak jujur. Ini _sangat_ umum untuk program Unix dengan tugas yang berjalan lama untuk memiliki bilah kemajuan - lihat rsync, wget, git, dll.
Apa keuntungan tidak memiliki bilah kemajuan di sini? Sepertinya manfaat "tidak tampak benar-benar rusak" jauh lebih besar daripada manfaat "tidak mengganggu sebagian kecil pengguna yang membenci umpan balik dan juga menolak untuk menggunakan
--silent
".