BT

Go 1.9 introduit les alias de type et améliore le moteur d'exécution et l'outillage

| par Sergio De Simone Suivre 12 Abonnés , traduit par Nicolas Frankel Suivre 7 Abonnés le 04 sept. 2017. Durée de lecture estimée: 2 minutes |

Dans la version 1.9 récemment publiée de Go, le plus grand changement est l'amélioration du support pour la réparation incrémentale du code via l'utilisation des déclarations des alias de type. Go 1.9 améliore également le ramasse-miettes et le compilateur.

La réparation incrémentale du code, expliquée par l'ingénieur Google Russ Cox, est une approche utile pour le refactoring de code, surtout pour d'importantes bases de code. En bref, l'amélioration progressive du code vise à diviser un refactoring important en une série d'étapes, c'est-à-dire des commits, par rapport à apporter tous les changements de manière atomique, c'est-à-dire en un commit unique. L'approche du refactoring atomique est généralement plus simple au niveau conceptuel, mais avec de larges bases de code, elle peut provoquer des commits, difficiles à réviser et à fusionner. Avec la réparation incrémentale du code, vous refactorez votre code en trois étapes : d'abord, vous introduisez la nouvelle API, qui devrait pouvoir coexister avec l'ancienne API, de sorte qu'il ne soit pas nécessaire de modifier toutes les utilisations de l'ancienne API à la fois. Deuxièmement, vous convertissez toutes les utilisations de l'ancienne API dans la nouvelle API. Enfin, vous pouvez supprimer l'ancienne API.

Pour permettre une réparation incrémentale du code, il est possible de créer des noms alternatifs pour les constantes, les fonctions, les variables et les types. Maintenant, Go permet de définir un alias de type en utilisant une déclaration comme :

type OldAPI = NewPackage.API

Cela peut être utilisé pour que toutes les références à OldAPI utilisent automatiquement le type refactoré. Pour une discussion plus large sur la réparation incrémentale du code, ne manquez pas l'exposé de Russ Cox.

Comme l'explique l'ingénieur Google Francesc Campoy, la plupart des efforts d'ingénierie pour Go 1.9 ont permis d'améliorer le moteur d'exécution, la bibliothèque principale et l'outillage. Les changements les plus significatifs sont les suivants:

  • Go collector fournit maintenant de meilleures performances grâce à un certain nombre de fonctions de la bibliothèque déclenchant le ramasse-miettes concurrent, qui bloque uniquement le goroutine appelante et non le programme dans son entier. De plus, l'allocation d'objets volumineux sur le tas a été considérablement améliorée.
  • Le compilateur Go 1.9 peut maintenant compiler des fonctions appartenant au même package en parallèle. Cela s'ajoute à la compilation parallèle de paquets distincts, qui était déjà disponible dans les versions précédentes du compilateur.
  • Sur le front de la bibliothèque de base, Go 1.9 rend l'utilisation du paquet time sécurisée grâce au suivi monotone de temps. Cela facilite la comparaison avec les valeurs de Time même en présence d'ajustements de l'horloge. En outre, le nouveau type Map appartenant au package sync fournit un dictionnaire accessible par des accès concurrents, avec un chargement, un stockage et une suppression en temps constant.

Pour en savoir plus sur tous les changements disponibles dans Go 1.9, assurez-vous de lire les notes de version officielles.

Evaluer cet article

Pertinence
Style

Bonjour étranger!

Vous devez créer un compte InfoQ ou cliquez sur pour déposer des commentaires. Mais il y a bien d'autres avantages à s'enregistrer.

Tirez le meilleur d'InfoQ

Donnez-nous votre avis

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet
Commentaires de la Communauté

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet

Discuter

Se connecter à InfoQ pour interagir sur ce qui vous importe le plus.


Récupérer votre mot de passe

Follow

Suivre vos sujets et éditeurs favoris

Bref aperçu des points saillants de l'industrie et sur le site.

Like

More signal, less noise

Créez votre propre flux en choisissant les sujets que vous souhaitez lire et les éditeurs dont vous désirez suivre les nouvelles.

Notifications

Restez à jour

Paramétrez vos notifications et ne ratez pas le contenu qui vous importe

BT