软件工程实践第一次作业

032201218陈彦哲 2025-09-28 20:37:51
项目内容
这个作业属于哪个课程2501_CS_SE_FZU 社区
这个作业要求在哪里软件工程实践第一次作业
这个作业的目标注册并配置 CSDN 社区;熟悉 Markdown;用 XMind 画图;给出Go 后端的思维导图与学习路线,并说明个人现状与计划
其他参考文献Effective GoGo 官方文档GORM 文档(中文)Kitex 文档Hertz 文档Apache Kafka 文档《MySQL 实战 45 讲》《Redis 设计与实现》官网

目录

  • 1. 回首过去
  • 1.1 我为什么选软件工程
  • 1.2 我的入门路径
  • 1.3 一些“长记性”的小事故
  • 1.4 第一次“工程化”的转折
  • 1.5 我理解的“好后端”
  • 2. 立足当下
  • 2.1 我已经能独立完成的事情
  • 2.2 我打算系统补齐的短板
  • 2.3 我在用的工作方式
  • 2.4 我觉得还不够的地方
  • 3. 展望未来
  • 3.1 这学期的目标
  • 3.2 里程碑与验收标准
  • 3.3 输出与复盘的形式
  • 4. 思维导图和学习路线
  • 4.1 思维导图
  • 4.2 学习路径


1. 回首过去

1.1 我为什么选软件工程

高中时只凭直觉觉得写程序很酷,真正接触后发现“酷”背后是大量细节:从一个请求怎么走到数据库、到一次错误怎么被定位、再到一次发布怎么确保能回滚。越了解越觉得有意思——它像做实验,证据链齐了,问题就能被复现和修复。

1.2 我的入门路径

一开始先把 Go 基础语法打牢:切片、map、结构体、接口、指针这些该踩的坑基本都踩了。随后写过小爬虫练习 I/O 与并发;再往前是 net/http + Gin/Hertz 做基本 Web 服务,配上登录、会话、简单的权限。接着摸到 RPC(Kitex + Thrift / gRPC),再加入数据库 MySQL/PostgreSQL + GORMRedis 缓存,最后尝试 Kafka 做异步处理。

1.3 一些“长记性”的小事故

在学习过程中,我遇到过许多印象深刻的事故:

  1. 切片扩容与“共享底层数组”导致的数据被意外篡改;
  2. 对 map 进行并发写,直接 panic;
  3. GORM 里一次不小心触发了 N+1 查询,接口延迟肉眼可见;
  4. 缓存键没设计好,热点接口被打穿;
  5. 事务里夹了外部网络调用,锁时间拉长。
    这些小事故让我意识到:工程经验不是背来的,而是被坑出来的。

1.4 第一次“工程化”的转折

把项目整理成 domain / repo / usecase / infra 的分层后,很多事变得清晰:哪里该放业务、哪里该放 IO;再加上统一的配置(env),Makefile 做任务编排,日志收敛成结构化输出,出问题的时候心里就不慌了——至少知道从哪几步查起。

1.5 我理解的“好后端”

不是把接口写出来就算交差,而是能解释清楚“为什么这样设计”,出了问题拿得出证据(日志、指标、Trace),做了优化讲得出收益(对比数据)。这也是我给自己设的方向。


2. 立足当下

2.1 我已经能独立完成的事情

目前,我已经能够 Go 实现这些基本的事务:

  1. Hertz/Gin 写 REST 接口:分组路由、参数校验、统一错误、简单鉴权、健康检查;
  2. GORM 基本 CRUD/迁移/关联,能读懂生成的 SQL;
  3. MySQL/PG 里做表结构设计与索引落地,能用 EXPLAIN 看执行计划;
  4. Redis 用起来:字符串/哈希/ZSet 基本模型,做简单缓存与过期策略;
  5. Kitex + Thrift 的服务定义与客户端调用,配置超时与重试;

2.2 我打算系统补齐的短板

我仍有许多需要加强的地方:

  1. 缓存一致性与热点保护:穿透/击穿/雪崩的综合防护;
  2. 事务与锁:对隔离级别、行锁/间隙锁、慢查询定位与索引设计再系统化一遍;
  3. 可观测性与稳定性工程:OpenTelemetry/Jaeger、Prometheus/Grafana,以及熔断/限流/降级这些“保命线”;
  4. 交付工程:把 Docker 化与 GitHub Actions 常规化,做到一键构建与回滚。

2.3 我在用的工作方式

合理的工作方式是节约时间,更延长生命:

  1. 项目结构尽量遵循整洁架构,减少互相引用;
  2. 提交信息用 Conventional Commits,回看历史清楚;
  3. 常见命令都收进 Makefile(比如 make lint/test/run),减少“口头约定”;
  4. 日志尽量结构化,重要操作打上 request-id,便于串联。

2.4 我觉得还不够的地方

学无止境,路漫漫其修远兮:

  1. Kafka 消费位点与幂等等价证明还需要更多实践;
  2. OpenTelemetry 的采样率与成本控制需要经验值;
  3. 复杂 SQL 的索引策略(多列、覆盖索引、回表代价)需要更多真实案例。

3. 展望未来

3.1 这学期的目标

把一条“能上线的后端服务链路”走通:入口(HTTP/RPC)→ 服务(Hertz/Gin/Kitex)→ 数据(GORM + MySQL/PG)→ 缓存(Redis)→ 异步(Kafka)→ 观测(OTel + Prom + Grafana),并沉淀成可复用的脚手架。

3.2 里程碑与验收标准

  • M1:从 0 到 1 的 REST 服务(统一错误、请求 ID、基础中间件齐活);
  • M2:一个“缓存 + 数据库”的业务闭环(能说明一致性策略与失效设计);
  • M3:一次完整的定位与优化闭环(前后对比数据 + flamegraph 截图);
  • M4:一个微服务 Demo(含状态机与补偿)+ 可复用模板仓库。

3.3 输出与复盘的形式

每周固定输出 3 件事:

  1. 一段可运行的代码;
  2. 一张“说得清”的图(架构/时序/指标面板截屏);
  3. 一段简短复盘(问题—过程—验证—反思)。
    这样到期末自然会有一份完整的实践报告。

4. 思维导图和学习路线

4.1 思维导图

img

4.2 学习路径

img

...全文
76 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
内容概要:本文围绕2026年高教社杯全国大学生数学建模竞赛E题“SEM广告投放策略”,构建了一个涵盖诊断、分类、优化与鲁棒决策的完整建模框架。基于某互联网公司142万元的SEM投放数据,文章从设计质量、关键词管理、出价预算和时间维度四个方面系统评估投放策略的合理性,揭示了消费集中、展位分层、工作日效应显著及假日效应分化等核心规律。提出基于成本—效益二维空间的五类关键词划分模型(黄金词、重点词、潜力词、问题词、无效词),结合中位数分割与聚类校验实现科学分类。在此基础上,建立预算约束下的0-1整数规划模型,采用两阶段算法求解最优关键词选择与出价策略,实现单位注册成本下降约20%。进一步引入CVaR鲁棒优化框架,有效应对竞价、点击、转化等不确定性,提升策略在极端情景下的稳定性与抗风险能力。; 适合人群:具备一定数据分析与数学建模基础,参与数学建模竞赛或从事数字营销优化的研究人员与从业者,尤其适合高校本科生、研究生及企业数据分析师。; 使用场景及目标:①用于数学建模竞赛中广告投放类问题的建模与求解;②为企业SEM广告投放提供科学的诊断、分类与优化方法;③实现预算约束下的关键词选择与出价决策;④在不确定环境下提升广告投放策略的鲁棒性与抗风险能力。; 阅读建议:此资源不仅提供完整的建模思路与算法实现,还包含实际运行结果与策略输出模板,建议读者结合代码实践,深入理解模型构建逻辑,重点关注分类规则设计、整数规划建模及鲁棒优化的实现过程,并尝试在类似业务场景中进行迁移应用。
内容概要:本文研究了一种面向高维约束空间的多种群灰狼优化算法(MP-GWO),并将其应用于多无人机协同航迹规划问题中。通过引入多种群机制对标准灰狼优化算法进行改进,增强了算法的全局搜索能力,有效克服了早熟收敛问题,提升了在复杂高维非线性约束环境下的优化性能。文章系统阐述了算法的设计原理、收敛性理论分析及在多无人机路径规划中的性能保障机制,结合Matlab实现了完整的仿真验证,充分展示了该算法在路径安全性、避障能力、收敛速度与解的质量等方面的优越性。同时,研究深入探讨了动态环境下的协同规划策略与防撞机制,进一步提高了系统的鲁棒性与实际应用价值。; 适合人群:具备一定智能优化算法基础,从事无人机路径规划、群体智能优化、智能控制、运筹学或自动化等相关领域的研究生、科研人员及工程技术人员。; 使用场景及目标:①解决多无人机在复杂三维空间中的协同航迹规划与实时避障问题;②提升高维、强约束非线性优化问题的求解效率与稳定性;③为智能无人系统提供可扩展的优化框架与可靠的仿真验证工具; 阅读建议:建议读者结合提供的Matlab代码深入理解算法实现细节,重点关注多种群划分策略、种群间信息交换机制与约束处理方法的设计原理,并可通过调整参数或测试不同场景进行复现实验,以掌握其在实际工程问题中的应用技巧与优化能力。

103

社区成员

发帖
与我相关
我的任务
社区描述
2501_CS_SE_FZU
软件工程 高校
社区管理员
  • FZU_SE_LQF
  • 木村修
  • 心态773
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧