Le projet Kubernetes est un bon exemple de projet à grande échelle avec une grande scalabilité, fiabilité et maintenabilité en utilisant Go. Le projet a une mise en page de code spécifique, avec des répertoires de niveau supérieur incluant api, build, cmd, pkg et staging. Le répertoire api stocke les protocoles d'interface, tandis que le répertoire build contient des scripts pour construire le projet Kubernetes. Le répertoire cmd stocke les fichiers sources du package principal pour construire des fichiers exécutables. Le répertoire pkg contient la mise en œuvre principale de chaque composant, et le répertoire staging stocke temporairement du code qui est interdépendant entre les composants. Le projet Kubernetes n'a pas de répertoire interne, contrairement aux projets Go standard, car il a commencé avant que le concept de répertoires internes ne soit introduit. Une structure de répertoire de niveau supérieur unifiée est importante pour la collaboration et l'efficacité du développement. La philosophie de conception déclarative de Kubernetes aide à garder les modules clairs et évite la programmation procédurale. Éviter l'ingénierie excessive est également important, car cela peut entraîner des dépendances circulaires et rendre difficile d'apporter des modifications à l'avenir.
dev.to
Learning Large-Scale Go Project Architecture from K8s
Create attached notes ...