跳转到内容

最佳实践

为可维护性组织你的项目:

my-project/
├── src/
│ ├── config/
│ ├── utils/
│ └── index.js
├── tests/
└── package.json

将配置分离:

config/app.js
export default {
name: process.env.APP_NAME || 'My App',
debug: process.env.DEBUG === 'true',
timeout: parseInt(process.env.TIMEOUT || '5000')
};
// index.js
import config from './config/app.js';
import { createApp } from 'your-package-name';
const app = createApp(config);

始终优雅地处理错误:

async function safeRun() {
try {
await app.run();
} catch (error) {
console.error('错误:', error.message);
// 降级行为
await app.runSafeMode();
}
}

实现适当的日志记录:

import { createApp } from 'your-package-name';
const app = createApp({
name: 'My App',
logger: {
level: 'info',
format: 'json'
}
});

编写全面的测试:

import { createApp } from 'your-package-name';
import { describe, it, expect } from 'vitest';
describe('App', () => {
it('应该创建应用实例', () => {
const app = createApp({ name: 'Test' });
expect(app.name).toBe('Test');
});
});

始终验证用户输入:

function validateConfig(config) {
if (!config.name || typeof config.name !== 'string') {
throw new Error('无效的名称');
}
if (config.timeout && config.timeout < 0) {
throw new Error('无效的超时时间');
}
return config;
}
const app = createApp(validateConfig(userConfig));

正确清理资源:

async function runWithCleanup() {
const app = createApp({ name: 'My App' });
try {
await app.run();
} finally {
await app.stop();
await app.cleanup();
}
}

遵循这些最佳实践将帮助你:

  • 编写可维护的代码
  • 优雅地处理错误
  • 确保安全性
  • 优化性能