🐚 🏷️ TuskLang Bash Variable Naming Guide
🏷️ TuskLang Bash Variable Naming Guide
"We don't bow to any king" – Name your variables with purpose and clarity.
Variable naming in TuskLang is about creating readable, maintainable, and self-documenting configurations. Whether you're building simple scripts or complex enterprise systems, good variable naming makes your TuskLang configurations powerful, understandable, and professional.
🎯 Why Variable Naming Matters
Good variable naming provides: - Readability - Clear, understandable code - Maintainability - Easy to modify and debug - Self-documentation - Variables explain themselves - Team collaboration - Consistent naming across projects - Professional quality - Industry-standard practices📝 Naming Conventions
Descriptive Names
[good_naming]
✅ Good: Clear and descriptive
database_connection_timeout: 30
maximum_retry_attempts: 3
ssl_certificate_path: "/etc/ssl/certs/server.crt"❌ Bad: Unclear and ambiguous
timeout: 30
retries: 3
cert: "/etc/ssl/certs/server.crt"
Consistent Patterns
[consistent]
✅ Good: Consistent naming patterns
server_host: "localhost"
server_port: 8080
server_ssl: true❌ Bad: Inconsistent patterns
host: "localhost"
serverPort: 8080
ssl_enabled: true
Environment-Specific Naming
[environment]
✅ Good: Environment-specific prefixes
production_server_host: "0.0.0.0"
development_server_host: "localhost"
staging_server_host: "staging.example.com"❌ Bad: Generic names that don't indicate environment
server_host: "0.0.0.0"
🚀 Quick Start Example
#!/bin/bash
source tusk-bash.shcat > naming-example.tsk << 'EOF'
[application]
$application_name: "TuskApp"
$application_version: "2.1.0"
$application_environment: @env("APP_ENV", "development")
[server_configuration]
$server_host: @if($application_environment == "production", "0.0.0.0", "localhost")
$server_port: @if($application_environment == "production", 80, 8080)
$server_ssl_enabled: @if($application_environment == "production", true, false)
[database_configuration]
$database_host: @env("DB_HOST", "localhost")
$database_port: @env("DB_PORT", "5432")
$database_name: @env("DB_NAME", "tuskapp")
$database_connection_timeout: 30
$database_max_connections: 100
EOF
config=$(tusk_parse naming-example.tsk)
echo "Application: $(tusk_get "$config" application.application_name) v$(tusk_get "$config" application.application_version)"
echo "Server: $(tusk_get "$config" server_configuration.server_host):$(tusk_get "$config" server_configuration.server_port)"
echo "Database: $(tusk_get "$config" database_configuration.database_host):$(tusk_get "$config" database_configuration.database_port)"
🔗 Real-World Use Cases
1. API Configuration
[api_configuration]
$api_base_url: "https://api.example.com"
$api_version: "v1"
$api_timeout_seconds: 30
$api_max_retry_attempts: 3
$api_authentication_token: @env("API_TOKEN")Build derived values
$api_endpoint_url: "${api_base_url}/api/${api_version}"
$api_users_endpoint: "${api_endpoint_url}/users"
$api_posts_endpoint: "${api_endpoint_url}/posts"
2. Database Configuration
[database_configuration]
$database_host: @env("DB_HOST", "localhost")
$database_port: @env("DB_PORT", "5432")
$database_name: @env("DB_NAME", "myapp")
$database_username: @env("DB_USER", "postgres")
$database_password: @env("DB_PASSWORD")
$database_ssl_enabled: @env("DB_SSL", "true")
$database_connection_pool_size: 10
$database_query_timeout_seconds: 30
3. Logging Configuration
[logging_configuration]
$logging_level: @env("LOG_LEVEL", "info")
$logging_file_path: "/var/log/application.log"
$logging_max_file_size_megabytes: 100
$logging_backup_file_count: 5
$logging_enable_console_output: true
$logging_enable_file_output: true
4. Security Configuration
[security_configuration]
$security_encryption_key: @env.secure("ENCRYPTION_KEY")
$security_session_secret: @env.secure("SESSION_SECRET")
$security_password_minimum_length: 8
$security_max_login_attempts: 5
$security_session_timeout_minutes: 30
$security_require_two_factor_authentication: false
🧠 Advanced Naming Patterns
Namespace Prefixes
[namespaced]
Use prefixes to group related variables
$app_name: "TuskApp"
$app_version: "2.1.0"
$app_environment: @env("APP_ENV", "development")$db_host: @env("DB_HOST", "localhost")
$db_port: @env("DB_PORT", "5432")
$db_name: @env("DB_NAME", "tuskapp")
$api_base_url: "https://api.example.com"
$api_timeout: 30
$api_retries: 3
Boolean Naming
[boolean_naming]
✅ Good: Clear boolean names
$feature_new_ui_enabled: true
$feature_analytics_enabled: false
$debug_mode_enabled: @env("DEBUG", "false")
$maintenance_mode_active: false❌ Bad: Unclear boolean names
$new_ui: true
$analytics: false
$debug: @env("DEBUG", "false")
$maintenance: false
Numeric Naming
[numeric_naming]
✅ Good: Include units in names
$connection_timeout_seconds: 30
$file_size_limit_megabytes: 100
$cache_ttl_minutes: 15
$rate_limit_requests_per_minute: 1000❌ Bad: No units specified
$timeout: 30
$size_limit: 100
$cache_ttl: 15
$rate_limit: 1000
Array and Object Naming
[collection_naming]
✅ Good: Plural names for collections
$allowed_ip_addresses: ["192.168.1.1", "10.0.0.1"]
$supported_languages: ["en", "es", "fr"]
$database_connection_settings: {
"host": "localhost",
"port": 5432,
"ssl": true
}❌ Bad: Singular names for collections
$allowed_ip: ["192.168.1.1", "10.0.0.1"]
$language: ["en", "es", "fr"]
$database_setting: {
"host": "localhost",
"port": 5432,
"ssl": true
}
🛡️ Security & Performance Notes
- Sensitive data: Never include sensitive information in variable names. - Length limits: Keep variable names reasonably short while remaining descriptive. - Special characters: Avoid special characters that might cause parsing issues. - Reserved words: Avoid using TuskLang reserved words as variable names.🐞 Troubleshooting
- Parsing errors: Check for special characters or reserved words in variable names. - Scope issues: Ensure variable names are unique within their scope. - Case sensitivity: Be consistent with case (snake_case recommended). - Length issues: Very long variable names can impact readability.💡 Best Practices
- Use snake_case: Use lowercase with underscores for multi-word names. - Be descriptive: Choose names that clearly describe the variable's purpose. - Include units: Include units in names for numeric values. - Use prefixes: Use prefixes to group related variables. - Avoid abbreviations: Use full words instead of abbreviations. - Be consistent: Use consistent naming patterns throughout your project.🔗 Cross-References
- References - Key-Value Basics - Best Practices---
Master variable naming in TuskLang and create professional, maintainable configurations. 🏷️