# Розробка CLI (Go) > Дизайн CLI, пакет flag, cobra/viper, структурування CLI-застосунків, exit code, stdin/stdout/stderr, патерни UX, тестування CLI-застосунків - 20 питань зі співбесід - Senior - [Питання зі співбесід: Go](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy.md) ## 1. Яка основна роль пакета flag у Go? **Відповідь** Пакет flag надає простий API для парсингу аргументів командного рядка. Він дозволяє визначати flag із попередньо визначеними типами (string, int, bool тощо) та автоматично обробляє парсинг і валідацію. Цей пакет є частиною стандартної бібліотеки та підходить для простих CLI. ## 2. Як визначити string flag за допомогою пакета flag та отримати його значення? **Відповідь** Функція flag.String повертає вказівник на значення flag. Після виклику flag.Parse() до значення можна отримати доступ, розіменувавши вказівник. Також можна використати flag.StringVar для прямого зв'язування з наявною змінною. ## 3. У чому різниця між flag.String та flag.StringVar? **Відповідь** flag.String виділяє нову змінну та повертає вказівник на неї, тоді як flag.StringVar прив'язує flag до наявної змінної, переданої за адресою. StringVar корисний, коли змінну потрібно визначити на рівні пакета або коли хочеться уникнути розіменування. ## Ще 17 доступних питань - Який exit code слід використовувати, коли CLI-застосунок стикається з помилкою недійсних аргументів? - Яка основна перевага Cobra над стандартним пакетом flag? Зареєструйся безкоштовно: https://sharpskill.dev/uk/login ## Інші теми співбесід Go - [Основи Go](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/go-basics.md): 25 запитань, Junior - [Структури даних Go](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/go-data-structures.md): 20 запитань, Junior - [Інтерфейси Go](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/go-interfaces.md): 18 запитань, Junior - [Обробка помилок](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/error-handling.md): 20 запитань, Junior - [Основи goroutines](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/goroutines-basics.md): 20 запитань, Junior - [Channels](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/channels.md): 22 запитань, Junior - [Go Modules](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/go-modules.md): 18 запитань, Mid-Level - [HTTP-сервер](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/http-server.md): 24 запитань, Mid-Level - [HTTP-клієнт](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/http-client.md): 18 запитань, Mid-Level - [Кодування JSON](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/json-encoding.md): 20 запитань, Mid-Level - [Database/SQL](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/database-sql.md): 22 запитань, Mid-Level - [Пакет context](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/context-package.md): 20 запитань, Mid-Level - [Testing](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/testing.md): 22 запитань, Mid-Level - [Патерни конкурентності](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/concurrency-patterns.md): 24 запитань, Mid-Level - [Примітиви синхронізації](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/sync-primitives.md): 22 запитань, Mid-Level - [Веб-фреймворки Go](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/go-web-frameworks.md): 20 запитань, Mid-Level - [Проєктування REST API](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/rest-api-design.md): 20 запитань, Mid-Level - [gRPC](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/grpc.md): 22 запитань, Mid-Level - [Reflection](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/reflection.md): 20 запитань, Senior - [Керування пам'яттю](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/memory-management.md): 24 запитань, Senior - [Оптимізація продуктивності](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/performance-optimization.md): 22 запитань, Senior - [Generics](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/generics.md): 20 запитань, Senior - [Go Design Patterns](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/design-patterns.md): 24 запитань, Senior - [Microservices](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/microservices.md): 24 запитань, Senior - [Безпека та автентифікація](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/security-authentication.md): 24 запитань, Senior - [Docker & Containerization](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/docker-containerization.md): 20 запитань, Senior - [Kubernetes Basics](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/kubernetes-basics.md): 22 запитань, Senior - [Просунутий Go](https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/advanced-go.md): 20 запитань, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/uk/technologies/go/pytannia-spivbesidy/cli-development