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
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)! ! !