Écrivez la fosse sur laquelle Go a marché récemment | log, cohésion et réutilisation, gjson, ajustement de la mentalité

Continuez à créer, accélérez la croissance ! C'est le 7ème jour de ma participation au "Nuggets Daily New Plan · June Update Challenge", cliquez pour voir les détails de l'événement

Aujourd'hui, je vais partager la fosse que j'ai rencontrée récemment :

Les exemples de code suivants utilisent le framework GoFrame, ci-après dénommé le framework gf.

Format de journal unifié

J'ai une mauvaise habitude, que je développais PHP avant ou que je développe GO maintenant, j'ai l'habitude d'utiliser dump() pour imprimer des données à déboguer pendant le processus de développement.

Bien que le débogage local soit cool, il serait idiot de ne pas trouver de journaux dans l'environnement de test ou même dans l'environnement de développement, et de ne pas pouvoir localiser facilement le problème.

Par conséquent, nous devons développer une bonne habitude d'imprimer des journaux pour les étapes clés et d'unifier le format du journal.

prendre une châtaigne

journal d'impression

scm.Log.Info("测试的日志都打印在这里,res:%v", res)
复制代码

Une méthode d'encapsulation du journal d'impression

Spécifiez le répertoire d'impression du journal

var Log = g.Log().Path(g.Log().GetPath() + "/scm")
复制代码

Grâce au g.log fourni par gf, couplé à notre propre encapsulation, les journaux peuvent être distingués par des modules fonctionnels, ce qui est pratique pour localiser les problèmes.

Cohésion et réutilisation

Le framework gf a une conception : interne, c'est-à-dire des méthodes qui n'autorisent que les appels internes.

Je pense que l'auteur a conçu interne, d'une part, pour des considérations de sécurité, et d'autre part, pour des considérations de forte cohésion.

Cependant, ne soyez pas trop cohérent.Le problème que j'ai rencontré aujourd'hui est de savoir comment mieux implémenter la réutilisation du code.

Par conséquent, le répertoire de méthodes public partagé est extrait du projet et la logique réutilisable écrite à l'origine dans l'interne est migrée.

gjson

J'ai trouvé une classe d'outils très utile aujourd'hui : gjson

gjson peut lire json/xml/toml/ et d'autres fichiers ou contenus de fichiers, créer un objet et obtenir la valeur correspondant à l'objet via la méthode get

package main

import (
   "fmt"
   "github.com/gogf/gf/encoding/gjson"
)

func main() {
   jsonContent := `{"k5":1}`
   jsonObj, err := gjson.LoadContent(jsonContent)
   if err != nil {
      panic(err)
   }
   fmt.Println(jsonObj.Get("k5"))
}
复制代码

résultat d'impression

image.png

calmer

Récemment, j'ai résolu un problème très embarrassant et je n'ai pas réussi à me calmer.Je pense toujours aux petits problèmes qui doivent être causés et je pense toujours à résoudre rapidement le problème. Cependant, ce genre de mentalité consistant à rechercher une solution rapide au problème a fait en sorte que le problème reste à la surface. Au lieu de résoudre le problème fondamentalement, il a traîné les progrès et rendu les progrès de plus en plus lents.

Résumer

Une journée inhabituellement épuisante est terminée, avec une charge de travail étonnamment lourde.

Amis de loin, êtes-vous aussi fatigués que moi ?

Regardez le ventre qui a repoussé, en plus du travail et des blogs, vous devriez également commencer à faire de l'exercice.

enfin

Merci d'avoir lu, et bienvenue à tous : j'aime, favori,pièce de monnaie(concentrer sur)! ! !

8e95dac1fd0b2b1ff51c08757667c47a.gif

Je suppose que tu aimes

Origine juejin.im/post/7103887534299545613
conseillé
Classement