当前位置: 首页 > news >正文

软件工程学习日志2025.10.27

🎯 今日目标

完成基于Trae框架的IT岗位求职记录系统开发,重点训练数据库的增删改查操作能力

💻 项目启动:9:00 AM

技术选型确定

今天开始着手开发老师布置的IT岗位求职记录系统。经过技术调研,我决定采用以下技术栈:
• 前端框架:Vue.js 3(组合式API)

• HTTP客户端:Trae(轻量级HTTP库)

• UI组件库:Element Plus

• 模拟后端:JSON Server

• 开发工具:VS Code + Vue Devtools

初始化项目

vue create job-tracker-system
cd job-tracker-system
npm install trae element-plus
npm install -g json-server

项目结构设计

src/
├── api/
│ └── trae.js # Trae配置
├── services/
│ └── jobService.js # 岗位相关API
├── components/
│ ├── JobList.vue # 岗位列表
│ ├── AddJob.vue # 添加岗位
│ └── EditJob.vue # 编辑岗位
├── views/
│ ├── Home.vue # 首页
│ └── Jobs.vue # 岗位管理
└── App.vue

🚀 核心开发:10:30 AM - 12:00 PM

  1. Trae配置实现

首先配置Trae作为HTTP客户端,这是本次训练的重点:
// src/api/trae.js
import trae from 'trae';
import { ElMessage } from 'element-plus';

const api = trae.create({
baseUrl: 'http://localhost:3001',
mode: 'cors'
});

// 请求拦截器
api.before((request) => {
console.log(🚀 发送请求: ${request.method} ${request.url});
return request;
});

// 响应拦截器
api.after((response) => {
if (response.status >= 200 && response.status < 300) {
return response.data;
} else {
ElMessage.error(请求失败: ${response.status});
throw new Error(HTTP Error: ${response.status});
}
});

export default api;

  1. 岗位服务层封装

封装了完整的CRUD操作服务:
// src/services/jobService.js
import api from '@/api/trae';

export default {
// 获取岗位列表(带筛选)
async getJobs(filters = {}) {
try {
const params = {};
if (filters.company) params.company_like = filters.company;
if (filters.position) params.position_like = filters.position;

  const response = await api.get('/jobs', { params });console.log('📊 获取到岗位数据:', response.length, '条');return response;
} catch (error) {console.error('❌ 获取岗位列表失败:', error);throw error;
}

},

// 添加新岗位
async addJob(jobData) {
try {
const newJob = {
...jobData,
createdAt: new Date().toISOString().split('T')[0],
id: Date.now() // 简单ID生成
};
const response = await api.post('/jobs', newJob);
console.log('✅ 添加岗位成功:', response);
return response;
} catch (error) {
console.error('❌ 添加岗位失败:', error);
throw error;
}
}
};

🍃 午休时间:12:00 - 13:30

简单休息后,整理了上午的开发思路,发现Trae的拦截器配置比axios更简洁明了。

💡 功能开发:13:30 PM - 16:00 PM

  1. 岗位列表组件开发

实现了带筛选功能的列表页面:

  1. 添加岗位功能

实现了表单验证和数据提交:
// 在AddJob组件中的提交逻辑
async handleSubmit() {
try {
// 表单验证
await this.$refs.jobForm.validate();

// 显示加载状态
this.loading = true;// 调用Trae服务
await jobService.addJob(this.formData);// 成功反馈
ElMessage.success('🎉 岗位添加成功!');// 跳转回列表页
this.$router.push('/jobs');

} catch (error) {
if (error.name !== 'ValidationError') {
ElMessage.error('❌ 添加失败,请重试');
}
} finally {
this.loading = false;
}
}

☕ 技术难点突破:16:00 PM - 17:30 PM

遇到的挑战与解决方案

难点1:Trae的响应拦截器配置
• 问题:初始配置时对错误处理不完善

• 解决:增加了状态码判断和统一错误处理

难点2:筛选查询的实现
• 问题:JSON Server的模糊查询语法不熟悉

• 解决:使用_like参数实现模糊匹配

难点3:组件间数据传递
• 问题:编辑页面数据回显问题

• 解决:使用Vuex进行状态管理,确保数据一致性

数据库设计优化

// db.json 数据结构
{
"jobs": [
{
"id": 1,
"company": "字节跳动",
"position": "前端开发工程师",
"salary": "25-40K",
"requirements": "熟悉Vue/React,有大型项目经验",
"status": "active",
"createdAt": "2023-10-25",
"updatedAt": "2023-10-25"
}
]
}

📊 项目成果展示:18:00 PM

功能完成情况

• ✅ 岗位添加功能(包含完整表单验证)

• ✅ 岗位列表展示(支持分页)

• ✅ 条件筛选查询(按企业/岗位名称)

• ✅ 岗位信息编辑(数据回显+更新)

• ✅ 岗位删除功能(确认对话框)

• ✅ 响应式布局设计

技术亮点

  1. Trae的优雅使用:配置了完整的请求/响应拦截器
  2. 组件化设计:高复用的表单和表格组件
  3. 错误处理:统一的错误提示和加载状态
  4. 用户体验:操作反馈和确认机制

📚 今日学习总结

掌握的新技能

  1. Trae深度使用:相比axios,Trae更轻量,API设计更简洁
  2. RESTful API设计:规范的接口设计思想
  3. 前端工程化:项目结构组织和代码分割
  4. 用户体验优化:加载状态、错误处理等细节

需要改进的地方

• 可以增加更多筛选条件(薪资范围、工作地点等)

• 添加数据导出功能(Excel格式)

• 实现权限管理(不同用户的数据隔离)

http://www.jsqmd.com/news/23949/

相关文章:

  • 深入解析:TCP/IP 四层模型协作流程详解
  • Windows全版本激活教程(仅供测试)
  • 基本概念2
  • 20251027周一日记
  • 【通讯协议】IIC
  • Robot Queries
  • 10月27日
  • 特殊的数字签名
  • CSP-S 40(爆零记)
  • javascript构造对象数组向服务器端传输
  • 102302136 林伟杰 数据采集与融合作业1
  • TCP/IP协议概述
  • 极值定理
  • 10.25 CSP-S 模拟赛
  • 【CI130x 离在线】如何运行 curl 脚本
  • 日总结 18
  • 一场比赛
  • 这才是真正的AI NAS!极空间私有云Z2Ultra评测
  • 新东方第三节课名言作文
  • 【性能优化必看】CPU耗时飙高?GC频繁停顿?一文教你快速定位!​
  • ​Fedora 37 安装 libicu-71.1-2.fc37.x86_64.rpm 教程(命令行步骤)​
  • 十月阅读_3
  • 学校协同云盘怎么选?2025年10大热门教育网盘推荐与对比
  • 从神经信号到驾驶安全:Mentalab无线脑电图系统赋能汽车人因研究与HMI优化 - 指南
  • GPU集群之间的交互
  • Java并发编程基础:从线程管理到高并发应用实践
  • 基于ECharts 6.0实现实时材料监控看板
  • python爬取京东评论 -
  • CF1267G Game Relics
  • 中考_体育