
Znáte to, nechcete hned složitě debugovat, ale rádi byste věděli, jak dlouho něco ve vašem kódu trvá a chtěli byste, aby se to používalo co nejjednodušeji.
Pak možná třeba takto:
package main
import (
"log"
"time"
)
// Timer func for measuring the duration of the function
func Timer(name string) func() {
st := time.Now()
log.Println(name, "START")
return func() {
et := time.Now().Sub(st)
log.Println(name, "DURATION", et)
}
}
func doIt() {
doItTimer := Timer("doIt()")
defer doItTimer()
time.Sleep(time.Duration(5 * time.Second))
}
func main() {
mainTimer := Timer("main()")
defer mainTimer()
doIt()
}
Použití je z kódu jasné: měření odstartujete zavoláním funkce Timer, kter8 vám vrátí funkci pro ukončení měření s výpisem informace o spotřebovaném čase,
Výsledek pak bude vypadat následovně:

řešení je postavené na closures, což bude asi povědomé každému kdo píše v NodeJS.
PS
V Insideru mi přestal fungovat plugin pro získávání screenshotů s náhlady na zdrojový kód a nenašel jsem žádnou náhradu…
A tak jsem si znovu nainstaloval Atom. A byl jsem opravdu příjmně překvapenej. S Go funguje bezchybně.
A na 1. dobrou fungoval i plugin atom-screenshot a tady je výsledek:

To nevypadá vůbec špatně, že?