如何从项目中学习

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

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

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

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

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

  • 关注通用的基础架构实现;
  • 关注业务代码的优秀实践;

关注通用的基础架构实现

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

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

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

关注业务代码的优秀实践

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

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

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

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

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

你可能感兴趣的:(成长,学习)