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