• # Go Go Go :)

    Posté par (site web personnel) . En réponse au journal recherche-totoz en JavaScript. Évalué à 3.

    Hello,
    Pour moi, le Go est dans son élément ici. Les goroutines vous permettent de ne pas vous occuper de l'aspect asynchrone/synchrone.
    Go c'est une application qui tourne avec 10 à 20 Mo d'emprunte mémoire, qui se comporte très bien sur un pod k8s dont les ressources sont inférieures 100 millicore, qui démarre quasi-instantanément, dont le déploiement est simplissime un simple binaire dans un container from scratch, dont la taille sera de quelques mega (ici 6.1Mo pour binaire linux amd64).

    Le tout avec un langage qui reste simple (pour des cas simples), très bien outillé (vet, race ...), génial pour la concurrence, la gestion des timeouts/fin de vie (via les context) et qui va utiliser tous les cores disponibles de façon optimale.

    Bref, qu'en pensez vous ?

    https://play.golang.org/p/ElZ99l4WTd-

    package main
    import (
     "encoding/xml"
     "log"
     "net/http"
    )
    type totozes struct {
     Name []string `xml:"totoz>name"`
    }
    func main() {
     res, err := http.Get("https://totoz.eu/search.xml?terms=plop")
     if err != nil {
     log.Fatal(err)
     }
     if expected, actual := http.StatusOK, res.StatusCode; expected != actual {
     log.Fatalf("unexpected status code [actual: %v] [expected: %v]", actual, expected)
     }
     var (
     d = xml.NewDecoder(res.Body)
     totozList totozes
     )
     if err := d.Decode(&totozList); err != nil {
     log.Fatal(err)
     }
     for _, Name := range totozList.Name {
     log.Println(Name)
     }
    }