Skip to content

Development Environment Standards

2.1. IDE Standards

All developers must use Visual Studio Code as the standard IDE.

2.1.1. Required Extensions

ExtensionPurpose
Extension Pack for JavaJava development (includes Language Support, Debugger, Maven, etc.)
Spring Boot Extension PackSpring Boot support (Dashboard, Initializr, Properties, etc.)
Vue OfficialVue 3 SFC support
ESLintJavaScript/TypeScript linting
Prettier - Code formatterCode formatting
EditorConfig for VS Code.editorconfig enforcement
GitLensGit history visualization
REST ClientAPI 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
}

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 = tab

Google 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 init

The project root must include an .sdkmanrc file.

properties
java=21.0.6-tem

2.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 22

The project root must include a .node-version file.

22

2.3.3. Package Manager

  • Required: yarn
  • The yarn version must be pinned per project using the packageManager field in package.json.

2.4. Environment Variable Management

2.4.1. File Rules

FilePurposeGit Tracked
.env.exampleEnvironment variable list and descriptions (no values)Yes
.env.localActual values for local developmentNo
.env.developmentDevelopment server environment (for frontend Vite)Yes
.env.productionProduction 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.local file must be included in .gitignore.
  • In CI/CD environments, CircleCI Environment Variables or Contexts must be used.

TIENIPIA QUALIFIED STANDARD