软件工程学习日志2025.10.27

news/2025/10/27 20:52:23/文章来源:https://www.cnblogs.com/dynastyeast/p/19170117

🎯 今日目标

完成基于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.mzph.cn/news/948076.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入解析:TCP/IP 四层模型协作流程详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Windows全版本激活教程(仅供测试)

Windows全版本激活教程(仅供测试)Windows 系统激活指南 注意:本文档及所提供的工具仅供学习、测试和环境验证使用。请确保您遵守软件许可协议,在合法范围内使用。 免责声明 使用任何激活工具都存在潜在风险,包括但不…

基本概念2

1, 访问控制列表步骤一:创建一个访问控制规则 步骤二:调用这个规则基本配置和高级配置 基本配置只能限制源地址,不检查目标地址 高级配置源地址与目标地址都检查步骤一: 命令: acl name test advance # test是给…

20251027周一日记

20251027周一日记前些日: 1.周五玩得挺爽,熬到五点多睡的,转天有点遗憾但还是玩得挺爽。见识到了大城市之间的差距。 2.周六回家,出去吃饭;周日在家,出去吃饭。听家人说各有各在拼搏的方向。 今日: 1.早上睡过了…

【通讯协议】IIC

前言 对于各种协议的知识,假如不常用的话还是很容易忘记和生疏的,于是我会在这篇文章重新学习,顺带记录一下,以便下次复习。由于最近要用到 IIC,所以最先复习 IIC 的内容。 网上有关 IIC 的资料很多也很全面,所以…

Robot Queries

题目传送门 前置知识——向量的加减 \((x_1,y_1) \pm (x_2,y_2) = (x_1\pm x_2,y_1\pm y_2)\)。 满足交换律和结合律。 题目大意 有一个在 \((0,0)\) 的点。现在给出 \(n\) 个操作序列 \({f}\),每个指令形如 \((x, y)…

10月27日

今天上午学了统一建模语言和数构,下午学了Java

特殊的数字签名

盲签名 -- 部分盲签名 -- 群签名盲签名 Chaum盲签名协议 协议流程: \[\begin{flalign} &Setup:\\ &\quad p,q = getPrime(safe.bit\_length);n = p * q;Pubkey = (n, e);Pravitekey = d\\ &Sign:\\ &…

CSP-S 40(爆零记)

10.2710.27 赤到了。 第一次爆蛋。 t1 特判没卡掉11个人。 乐死了。 暴力有80pts。 正解: 发现值域很小只有1000,从此入手。 先预处理 1000 以内的素数,发现很少只有168个,空间可开下,这启发我们对于每个素数记录…

javascript构造对象数组向服务器端传输

javascript构造对象数组向服务器端传输客户端发送数据1 $("#saveEnable").click(function () {2 var selectedRows = $(#userTab).datagrid(getSelections);3 4 var users…

102302136 林伟杰 数据采集与融合作业1

目录作业一实验过程及结果-1 心得体会-1作业二实验过程及结果-2 心得体会-2作业三实验过程及结果-3 心得体会-3作业一: 实验过程及结果-1要想爬取到网站中大学的信息,应当先查看该网站中html的结构,通过搜索框搜索&…

TCP/IP协议概述

TCP/IP分层模型是互联网协议套件的基础,它简化了OSI模型,将网络通信过程划分为四个层次。TCP/IP模型的主要目的是提供一个实际可行的网络通信架构,它是互联网和许多其他网络的基础。TCP /IP,是一组不同层次上的多个…

极值定理

若函数 \(f\) 在 \(x = c\) 处有一个局部最大值或局部最小值,则 \(f\) 在 \(x = c\) 处不可导或者 \(f(c)=0\) 。 比如说 \(f\) 在 \(x = c\) 处是个尖角,那么肯定就不可导。 若可导,不妨令是最大值(最小值类似)则…

10.25 CSP-S 模拟赛

Contest CSP-ST1 你脑子呢? 确定的情况即选比 \(a_i\) 小的,记 \(a_i\) 的排名为 \(rank_i\),则答案为 \(\binom{rank_i - 1}{k - 1}\)。 T2 大力分讨。 无论什么情况都有一个直接走到的选项 \(\operatorname{lcm}(…

【CI130x 离在线】如何运行 curl 脚本

在各种大模型的API文档中,经常会用到 curl 工具,那么——如何运行 curl 脚本呢?在Linux平台 对于复杂的代码,建议创建脚本文件:# 创建脚本文件 nano myscript.sh然后执行以下指令 # 在文件中粘贴代码,然后保存退…

日总结 18

Hive 是基于 Hadoop 生态的大数据仓库工具,通过类 SQL 的 HQL 语法简化大规模结构化 / 半结构化数据的离线批处理,底层依赖 HDFS 存储数据,计算引擎支持 MapReduce、Tez、Spark 等;其架构包含用户接口、元数据存储…

一场比赛

题目难度 颜色 分值入门 红 100普及- 橙 150普及/提高- 黄 250普及+/提高 绿 500提高+/省选- 蓝 1500省选/NOI- 紫 3500

这才是真正的AI NAS!极空间私有云Z2Ultra评测

这才是真正的AI NAS!极空间私有云Z2Ultra评测Posted on 2025-10-27 20:02 lzhdim 阅读(0) 评论(0) 收藏 举报一、前言 在NAS以及私有云领域,可能有些老玩家只知道群晖。但实际上根据天猫及京东销售数据统计,极…

新东方第三节课名言作文

开头段:1引入名言(照抄);2概括名言主题(补充一下);3个人立场(证据)A famous and enlihtening saying goes that"Respect others,and you will be respected."This remark convers a thought-provok…

【性能优化必看】CPU耗时飙高?GC频繁停顿?一文教你快速定位!​

本文分享了Java应用性能问题的排查方法,分为CPU飙升和JVM排查两部分。CPU问题排查需从进程到线程递进分析,使用top、jstack等工具定位高负载线程和代码位置。JVM排查则涉及内存溢出、GC异常等场景,通过jstat、jmap等…