Development Environment Standards
2.1. IDE Standards
All developers must use Visual Studio Code as the standard IDE.
2.1.1. Required Extensions
| Extension | Purpose |
|---|---|
| Extension Pack for Java | Java development (includes Language Support, Debugger, Maven, etc.) |
| Spring Boot Extension Pack | Spring Boot support (Dashboard, Initializr, Properties, etc.) |
| Vue Official | Vue 3 SFC support |
| ESLint | JavaScript/TypeScript linting |
| Prettier - Code formatter | Code formatting |
| EditorConfig for VS Code | .editorconfig enforcement |
| GitLens | Git history visualization |
| REST Client | API testing (.http files) |
2.1.2. Shared Project Settings
The project root must include .vscode/settings.json so that the entire team uses identical settings.
json
{
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit"
},
"[java]": {
"editor.defaultFormatter": "josevseb.google-java-format-for-vs-code"
},
"[vue]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[typescript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[json]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"files.eol": "\n",
"files.trimTrailingWhitespace": true,
"files.insertFinalNewline": true
}2.1.3. Recommended Extensions List
The project root must include .vscode/extensions.json so that new developers can automatically install the required extensions.
json
{
"recommendations": [
"vscjava.vscode-java-pack",
"vmware.vscode-boot-dev-pack",
"vue.volar",
"dbaeumer.vscode-eslint",
"esbenp.prettier-vscode",
"editorconfig.editorconfig",
"eamodio.gitlens",
"humao.rest-client"
]
}2.2. EditorConfig
The project root must include an .editorconfig file.
ini
root = true
[*]
charset = utf-8
end_of_line = lf
indent_style = space
indent_size = 2
insert_final_newline = true
trim_trailing_whitespace = true
[*.java]
indent_size = 2
[*.xml]
indent_size = 2
[*.{yml,yaml}]
indent_size = 2
[*.md]
trim_trailing_whitespace = false
[Makefile]
indent_style = tabGoogle Java Format
Google Java Format enforces 2-space indentation. The Java indentation in .editorconfig is also set to 2 spaces to match this.
2.3. Runtime Version Management
2.3.1. Java
- Required version: Java 21 (LTS)
- Version management tool: SDKMAN is recommended.
bash
# Install SDKMAN
curl -s "https://get.sdkman.io" | bash
# Install Java 21
sdk install java 21.0.6-tem
# Pin version in the project directory
sdk env initThe project root must include an .sdkmanrc file.
properties
java=21.0.6-tem2.3.2. Node.js
- Required version: Node.js 22 (LTS)
- Version management tool: fnm or nvm is recommended.
bash
# Using fnm
fnm install 22
fnm use 22The project root must include a .node-version file.
222.3.3. Package Manager
- Required: yarn
- The yarn version must be pinned per project using the
packageManagerfield inpackage.json.
2.4. Environment Variable Management
2.4.1. File Rules
| File | Purpose | Git Tracked |
|---|---|---|
.env.example | Environment variable list and descriptions (no values) | Yes |
.env.local | Actual values for local development | No |
.env.development | Development server environment (for frontend Vite) | Yes |
.env.production | Production environment (for frontend Vite) | Yes |
2.4.2. Secret Management Principles
- Sensitive information such as passwords, API keys, and tokens must never be hardcoded in source code.
- The
.env.localfile must be included in.gitignore. - In CI/CD environments, CircleCI Environment Variables or Contexts must be used.