软件工程大三的自我审视
本周成长记录:理论与实践的交汇点
技术能力突破
Spring Boot深度实践:
这周我深入学习了Spring Boot的自动配置原理和启动过程。过去我只是简单使用@SpringBootApplication注解,现在明白了它背后是如何通过@EnableAutoConfiguration加载自动配置类的。通过阅读源码发现,SpringFactoriesLoader在META-INF/spring.factories中加载配置类的方式非常巧妙。这种"约定优于配置"的理念让我重新思考了框架设计的哲学。
Redis实战应用:
在小组项目中负责实现分布式会话管理,遇到了Session共享的问题。通过调研选择了Redis作为解决方案,不仅因为它的高性能,更因为其丰富的数据结构。我实现了:
使用Hash结构存储用户会话信息
设置合理的TTL(生存时间)保证数据自动清理
通过Redis的发布订阅功能实现用户登录状态实时推送
项目经验积累
团队协作新认识:
我们小组正在开发一个在线学习平台,我负责用户模块。通过这次实践,我深刻体会到了几个关键点:
Git工作流规范化:
采用了Git Flow的分支策略,每个功能都从develop分支创建feature分支
学会了撰写规范的commit message,使用类型前缀(feat/fix/docs等)
通过PR(Pull Request)代码评审,收到了同学关于异常处理的宝贵建议
API设计思考:
设计RESTful API时,我最初只考虑了功能实现,经过技术讨论会后,我重新设计了:
统一的响应格式(包含code、message、data)
合理的HTTP状态码使用(200成功、400客户端错误、500服务端错误)
API版本控制策略(在URL中包含v1前缀)
学习方法的优化
问题驱动学习:
我发现当学习有明确目标时效率最高。比如为了解决分布式锁的问题,我不仅学习了Redis的SETNX命令,还深入了解了Redlock算法及其争议,这个过程中连带学习了CAP理论和分布式系统的一致性概念。
技术文档的价值:
以前我总喜欢直接看视频教程,这周尝试先阅读官方文档,发现文档虽然枯燥但信息最准确。Spring的官方文档结构清晰,特别是其中的代码示例和配置说明,比许多二手教程要可靠得多。
面临的挑战与反思
技术债务的早期意识
在项目开发中,我为了快速实现功能,暂时绕过了邮件服务的异常处理。这周在集成测试时,这个问题暴露了出来。我意识到这就是技术债务的雏形——现在不处理,未来会付出更多代价修复。我花了半天时间重构了这部分代码,加入了重试机制和降级策略。

浙公网安备 33010602011771号