如何从项目中学习

        日常工作中,经常会有这样的错觉,就是明明感觉参与了不少项目,但是好像技术并没有提升太多。

        那原因大概率是,平时工作内容是非核心业务,更多是在CRUD的“打螺丝”。无法接触到核心的优质业务、或者参与到架构设计方面来,导致技术成长缓慢。

        那么如何在日常的项目开发中,不断提升自己的技术水平呢?

        项目不在多,而在于做一个项目、就吃透一个项目。

        那如何吃透一个项目呢?这里我大概思考了几个层面:

  • 关注通用的基础架构实现;
  • 关注业务代码的优秀实践;
  • 关注特殊的异常或场景;

关注通用的基础架构实现

        虽然不同的项目、他们的业务领域会有不同,但是向一些基础架构,其实还是类似的。因此,在我们拧完螺丝,不妨关注下这些通用基础的实现。

        下面列举一些值得关注的通用模块

  • 模块划分、包结构划分
  • 依赖关系
  • 配置管理
  • 登录认证
  • 权限控制
  • 任务调度(定时任务)
  • 异常全局处理策略
  • 链路追踪
  • 日志系统
  • 代码生成(低代码)
  • 网关
  • RPC(跨系统)
  • 消息中心(队列)
  • 缓存
  • 持久化(ORM)
  • 文件存储
  • 监控告警(可观测性)
  • 幂等性
  • 限流
  • 并发安全控制(锁实现)
  • 分布式事务
  • 国际化(多语言)
  • 版本控制(协同方式)
  • 多组织
  • 分库分表

关注业务代码的优秀实践

        不同的项目、虽然业务不甚相同,且由于业务面太广,很难全部掌握,但一般都有它的核心业务。因此,业务代码开发也并不全是CRUD,一些优秀的业务实践,还是值得我们学习的

        下面列举一些值得关注的业务实践:

  • 订单业务
  • 支付业务
  • 状态机方案
  • 工作流引擎
  • 秒杀业务
  • 并发安全相关业务
  • 海量数据相关业务

        如果我们只满足于自己CRUD开发,那就算参与多个项目,也无异于换了多个地方打螺丝。

因此,不妨在打螺丝的空隙,学习别人怎么造飞机的

关注特殊的异常或场景

        在开发中,可能会有各种各样的BUG,有些是自己遇到的,有些是同事遇到的。而有些BUG可能只会在特殊场景下触发且不好重现,可谓是可遇而不可求。

        同时,如果是在生产环境出现,则需要我们有快速排查处理的能力。因此在出现异常时,能否在尽量短的时间内,快速处理解决,也能反映出程序员的价值所在。也可以在后续面试中,这份处理经验也可以作为能力展示的一部分。

        因此,在日常工作中,遇到一些不常见的、重大的异常或问题,无论是自己遇到的,还是同事遇到的,不要轻易放过。这也是一个学习的机会、一个积累经验的机会。可以设想一下,如果后续我再遇到同样的问题或场景,我要如何处理应对。

        下面列举一些值得关注的异常场景:

  • 消息积压
  • 重复消费
  • RPC调用异常
  • 慢SQL
  • 死锁
  • 服务卡顿、宕机
  • Jvm相关问题

        关注异常问题、总结处理经验,将不断提升我们处理问题的技术能力。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值