


Premiers pas avec INFINI Framework - Notre framework maison pour créer des applications Golang d'entreprise
Nous avons récemment rendu open source notre framework maison pour créer des applications Golang d'entreprise, appelé INFINI Framework.
Le dépôt github est https://github.com/infinilabs/framework.
Dans cet article, je vais vous montrer comment démarrer avec INFINI Framework.
Créer une nouvelle application
Utilisons le NewAPP comme nouveau projet par exemple.
Créer le dossier du projet
Utilisez le nom new_app comme identifiant du projet et créez le dossier du projet comme ci-dessous :
cd ~/go/src/infini.sh/ mkdir new_app
Remarque : assurez-vous que new_app se trouve dans le même répertoire que le dossier framework. Cette structure est requise pour que le Makefile fonctionne correctement.
Créer le fichier principal
Créez un fichier main.go vide et collez le code comme ci-dessous :
package main import ( "infini.sh/framework" "infini.sh/framework/core/module" "infini.sh/framework/core/util" "infini.sh/framework/modules/api" "infini.sh/new_app/config" ) func main() { terminalHeader := (" __ _ ___ ___ \n") terminalHeader += (" /\ \ \_____ __/_\ / _ \/ _ \\n") terminalHeader += (" / \/ / _ \ \ /\ / //_\\ / /_)/ /_)/\n") terminalHeader += ("/ /\ / __/\ V V / _ \/ ___/ ___/ \n") terminalHeader += ("\_\ \/ \___| \_/\_/\_/ \_/\/ \/ \n\n") terminalFooter := ("Goodbye~") app := framework.NewApp("new_app", "Make a golang application is such easy~.", util.TrimSpaces(config.Version), util.TrimSpaces(config.BuildNumber), util.TrimSpaces(config.LastCommitLog), util.TrimSpaces(config.BuildDate), util.TrimSpaces(config.EOLDate), terminalHeader, terminalFooter) app.IgnoreMainConfigMissing() app.Init(nil) defer app.Shutdown() if app.Setup(func() { module.RegisterSystemModule(&api.APIModule{}) module.Start() }, func() { }, nil) { app.Run() } }
Nous utilisons cet outil en ligne pour générer un en-tête de terminal beauté basé sur ASCII.
Créez le fichier de configuration
touch new_app.yml
Créer le makefile
créez un Makefile vide et collez le code comme ci-dessous :
SHELL=/bin/bash # APP info APP_NAME := new_app APP_VERSION := 1.0.0_SNAPSHOT APP_CONFIG := $(APP_NAME).yml APP_EOLDate ?= "2025-12-31T10:10:10Z" APP_STATIC_FOLDER := .public APP_STATIC_PACKAGE := public APP_UI_FOLDER := ui APP_PLUGIN_FOLDER := plugins PREFER_MANAGED_VENDOR=fase include ../framework/Makefile
Construire l'application
➜ new_app OFFLINE_BUILD=true make build building new_app 1.0.0_SNAPSHOT main /Users/medcl/go/src/infini.sh/new_app framework path: /Users/medcl/go/src/infini.sh/framework fatal: not a git repository (or any of the parent directories): .git update generated info update configs (cd ../framework/ && make update-plugins) || true # build plugins in framework GOPATH=~/go:~/go/src/infini.sh/framework/../vendor/ CGO_ENABLED=0 GRPC_GO_REQUIRE_HANDSHAKE=off GO15VENDOREXPERIMENT="1" GO111MODULE=off go build -a -gcflags=all="-l -B" -ldflags '-static' -ldflags='-s -w' -gcflags "-m" --work -o /Users/medcl/go/src/infini.sh/new_app/bin/new_app WORK=/var/folders/j5/qd4qt3n55dz053d93q2mswfr0000gn/T/go-build435280758 # infini.sh/new_app ./main.go:17:9: can inline main.deferwrap1 ./main.go:21:12: can inline main.func2 ./main.go:18:22: func literal does not escape ./main.go:19:45: &api.APIModule{} escapes to heap ./main.go:21:12: func literal escapes to heap restore generated info
Exécutez l'application
➜ new_app git:(main) ✗ ./bin/new_app __ _ ___ ___ /\ \ \_____ __/_\ / _ \/ _ \ / \/ / _ \ \ /\ / //_\ / /_)/ /_)/ / /\ / __/\ V V / _ \/ ___/ ___/ \_\ \/ \___| \_/\_/\_/ \_/\/ \/ [NEW_APP] Make a golang application is such easy~. [NEW_APP] 1.0.0_SNAPSHOT#001, 2024-12-16 06:15:10, 2025-12-31 10:10:10, HEAD [12-16 14:15:19] [INF] [env.go:203] configuration auto reload enabled [12-16 14:15:19] [INF] [env.go:209] watching config: /Users/medcl/go/src/infini.sh/new_app/config [12-16 14:15:19] [INF] [app.go:311] initializing new_app, pid: 64426 [12-16 14:15:19] [INF] [app.go:312] using config: /Users/medcl/go/src/infini.sh/new_app/new_app.yml [12-16 14:15:19] [INF] [api.go:214] local ips: 192.168.3.17 [12-16 14:15:19] [INF] [api.go:312] api server listen at: http://0.0.0.0:2900 [12-16 14:15:19] [INF] [module.go:159] started module: api [12-16 14:15:19] [INF] [module.go:184] all modules are started [12-16 14:15:19] [INF] [instance.go:101] workspace: /Users/medcl/go/src/infini.sh/new_app/data/new_app/nodes/ctfs8hbq50kevmkb3m6g [12-16 14:15:19] [INF] [app.go:537] new_app is up and running now. ^C [NEW_APP] got signal: interrupt, start shutting down [12-16 14:15:23] [INF] [module.go:213] all modules are stopped [12-16 14:15:23] [INF] [app.go:410] new_app now terminated. [NEW_APP] 1.0.0_SNAPSHOT, uptime: 4.13334s Goodbye~
Conclusion
Le code démo peut être trouvé ici.
En tirant parti du framework INFINI, la création d'une application Go devient nettement plus simple et plus efficace.
Le framework fournit des commandes et des modules intégrés, rationalisant le processus de développement et vous permettant de vous concentrer sur la création des fonctionnalités de base de votre application.
Suivez-nous sur : https://github.com/infinilabs
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

GO Language fonctionne bien dans la construction de systèmes efficaces et évolutifs. Ses avantages incluent: 1. Haute performance: compilé en code machine, vitesse de course rapide; 2. Programmation simultanée: simplifier le multitâche via les goroutines et les canaux; 3. Simplicité: syntaxe concise, réduction des coûts d'apprentissage et de maintenance; 4. Plate-forme multipliée: prend en charge la compilation multiplateforme, déploiement facile.

Golang est meilleur que C en concurrence, tandis que C est meilleur que Golang en vitesse brute. 1) Golang obtient une concurrence efficace par le goroutine et le canal, ce qui convient à la gestion d'un grand nombre de tâches simultanées. 2) C Grâce à l'optimisation du compilateur et à la bibliothèque standard, il offre des performances élevées près du matériel, adaptées aux applications qui nécessitent une optimisation extrême.

Golang est meilleur que Python en termes de performances et d'évolutivité. 1) Les caractéristiques de type compilation de Golang et le modèle de concurrence efficace le font bien fonctionner dans des scénarios de concurrence élevés. 2) Python, en tant que langue interprétée, s'exécute lentement, mais peut optimiser les performances via des outils tels que Cython.

Golang et C ont chacun leurs propres avantages dans les compétitions de performance: 1) Golang convient à une concurrence élevée et à un développement rapide, et 2) C fournit des performances plus élevées et un contrôle fin. La sélection doit être basée sur les exigences du projet et la pile de technologie d'équipe.

C est plus adapté aux scénarios où le contrôle direct des ressources matérielles et une optimisation élevée de performances sont nécessaires, tandis que Golang est plus adapté aux scénarios où un développement rapide et un traitement de concurrence élevé sont nécessaires. 1.C's Avantage est dans ses caractéristiques matérielles proches et à des capacités d'optimisation élevées, qui conviennent aux besoins de haute performance tels que le développement de jeux. 2. L'avantage de Golang réside dans sa syntaxe concise et son soutien à la concurrence naturelle, qui convient au développement élevé de services de concurrence.

Golang et Python ont chacun leurs propres avantages: Golang convient aux performances élevées et à la programmation simultanée, tandis que Python convient à la science des données et au développement Web. Golang est connu pour son modèle de concurrence et ses performances efficaces, tandis que Python est connu pour sa syntaxe concise et son écosystème de bibliothèque riche.

GOIMIMPACTSDEVENCEMENTSPOSITIVEMENTS INSPECT, EFFICACTION ET APPLICATION.1) VITESSE: GOCOMPILESQUICKLYANDRUNSEFFIÉMENT, IDEALFORLARGEPROROSTS.2) Efficacité: ITSCOMPEHENSIVESTANDARDLIBRARYREDUCEEXTERNEDENDENCES, EnhancingDevelovefficiency.3) Simplicité: Simplicité: Implicité de la manière

Les différences de performance entre Golang et C se reflètent principalement dans la gestion de la mémoire, l'optimisation de la compilation et l'efficacité du temps d'exécution. 1) Le mécanisme de collecte des ordures de Golang est pratique mais peut affecter les performances, 2) la gestion manuelle de C et l'optimisation du compilateur sont plus efficaces dans l'informatique récursive.
