Проект Kubernetes является хорошим примером крупномасштабного проекта с высокой масштабируемостью, надежностью и поддерживаемостью, использующего язык Go. Проект имеет определённую структуру кода, в которой верхнеуровневые директории включают api, build, cmd, pkg и staging. Директория api хранит интерфейсные протоколы, а директория build содержит скрипты для сборки проекта Kubernetes. Директория cmd хранит исходные файлы основного пакета для сборки исполняемых файлов. Директория pkg содержит основную реализацию каждого компонента, а директория staging временно хранит код, который зависит от других компонентов. Проект Kubernetes не имеет внутренней директории, в отличие от стандартных проектов Go, потому что он начался до того, как была введена концепция внутренних директорий. Унифицированная структура верхнеуровневых директорий важна для сотрудничества и эффективности разработки. Декларативная философия проектирования Kubernetes помогает сохранять модули прозрачными и предотвращает процедурное программирование. Избежание чрезмерного усложнения также важно, поскольку оно может привести к круговым зависимостям и затруднить внесение изменений в будущем.
dev.to
Learning Large-Scale Go Project Architecture from K8s
Create attached notes ...
