История изменений
Исправление kaldeon, (текущая версия) :
[Docker Compose] ж, вроде как, одна из икон того, что сделано на Go.
Примерно как Notepad++ икона того, что сделано на C++.
Чтобы быть нейтральными, оставим Docker Compose, но добавим ещё, к примеру, Caddy [1].
Только что произвёл подсчёты:
Docker Compose: 722 функции, возвращающие ошибку, 5,212 возвратов, учитывающих ошибку, и 835 простых «return err.»
Caddy: 920 функций, возвращающих ошибку, 9,208 возвратов, учитывающих ошибку, и 688 простых «return err.»
Это даёт право утверждать, что «return err» - это нечастый метод.
Команда Go ранее уже приходила к подобному выводу:
«We recently scanned all the open source projects we could find and discovered that this snippet [if err != nil {return err}] occurs only once per page or two, less often than some would have you believe.» [2]
Считал так:
# no of err-ret funcs
% find . -type f |9 grep '\.go$' |cat `{cat} |9 grep '^func' |9 grep 'error.? {$' |wc -l
# no of err-aware rets
% find . -type f |9 grep '\.go$' |cat `{cat} |ssam -e 'x/^func.+error.?.{\n([^}].*\n|\n)*}\n/' |9 grep '^ *return( |$)' |wc -l
# no of ret err
% find . -type f |9 grep '\.go$' |cat `{cat} |9 grep -n '^ *return.* err$' |wc -l
Исходная версия kaldeon, :
[Docker Compose] ж, вроде как, одна из икон того, что сделано на Go.
Примерно как Notepad++ икона того, что сделано на C++.
Чтобы быть нейтральными, оставим Docker Compose, но добавим ещё, к примеру, Caddy [1].
Только что произвёл подсчёты:
Docker Compose: 722 функции, возвращающие ошибку, 5,212 возвратов, учитывающих ошибку, и 835 простых «return err.»
Caddy: 920 функций, возвращающих ошибку, 9,208 возвратов, учитывающих ошибку, и 688 простых «return err.»
Это даёт право утверждать, что «return err» - это нечастый метод.
Команда Go ранее уже приходила к подобному выводу:
«We recently scanned all the open source projects we could find and discovered that this snippet occurs only once per page or two, less often than some would have you believe.» [2]
Считал так:
# no of err-ret funcs
% find . -type f |9 grep '\.go$' |cat `{cat} |9 grep '^func' |9 grep 'error.? {$' |wc -l
# no of err-aware rets
% find . -type f |9 grep '\.go$' |cat `{cat} |ssam -e 'x/^func.+error.?.{\n([^}].*\n|\n)*}\n/' |9 grep '^ *return( |$)' |wc -l
# no of ret err
% find . -type f |9 grep '\.go$' |cat `{cat} |9 grep -n '^ *return.* err$' |wc -l