编程指南-学习建议编程指南-学习建议
首页
学习方向
技术学习
🚀 编程指南
首页
学习方向
技术学习
🚀 编程指南
  • 三、技术学习

    • 技术指南

      • 前端技术知识

        • 什么是前端?
      • 后端技术知识

        • 什么是缓存?
        • 什么是工作流技术?
        • 什么是反向压力?
        • 什么是热数据探测?
        • 数据库也能版本控制?
        • /tech-learning/guide/backend/how-search-engine-works.html
        • /tech-learning/guide/backend/learn-concurrency.html
        • /tech-learning/guide/backend/other-databases.html
      • 通用技术知识

        • 什么是前后端分离?
        • /tech-learning/guide/general/what-is-redirect.html
        • 什么是单例模式?
        • /tech-learning/guide/general/what-is-magic-value.html
        • 什么是负载均衡?
        • /tech-learning/guide/general/what-is-multi-env.html
        • /tech-learning/guide/general/what-is-magic-number.html
        • 什么是 Linux?
        • /tech-learning/guide/general/what-is-cloud-dev.html
    • 系统设计

      • 如何设计一个实时排行榜系统?
      • /tech-learning/system-design/elasticsearch-optimization.html
      • /tech-learning/system-design/file-upload.html
      • /tech-learning/system-design/log-system.html
      • /tech-learning/system-design/software-sword.html
      • 如何设计好 API 接口?
      • /tech-learning/system-design/sdk-development.html
      • /tech-learning/system-design/architecture-design.html
      • /tech-learning/system-design/release-stability.html
    • 开发经验

      • 解决 Bug 经验
      • 如何快速上手新项目?
      • /tech-learning/dev-experience/enterprise-software.html
      • /tech-learning/dev-experience/opensource-contribute.html
      • 什么是代码规范?为什么要遵循代码规范?
      • /tech-learning/dev-experience/company-standards.html
      • /tech-learning/dev-experience/code-reuse.html
      • /tech-learning/dev-experience/quick-website.html
      • /tech-learning/dev-experience/vscode-remote.html
      • /tech-learning/dev-experience/linux-vm-remote.html
      • /tech-learning/dev-experience/young-contributor.html
      • /tech-learning/dev-experience/no-force-shutdown.html
      • /tech-learning/dev-experience/no-hardcode.html
      • /tech-learning/dev-experience/backend-attention.html
      • 千万别直接敲代码!(写代码前要做的事)
      • /tech-learning/dev-experience/project-attention.html
      • /tech-learning/dev-experience/website-online.html
      • /tech-learning/dev-experience/tech-selection.html

千万别直接敲代码!(写代码前要做的事)

很多新手拿到需求就开始写代码,这是不对的。

今天说说写代码之前应该做什么。

直接写代码的问题

1. 写到一半发现思路不对

没有提前想清楚,写着写着发现逻辑有问题,要推倒重来。

2. 边界情况没考虑

写完了发现很多特殊情况没处理,打补丁打得很痛苦。

3. 写出来的代码乱

没有设计,想到哪写到哪,代码结构很乱。

写代码前应该做什么

1. 理解需求

先搞清楚要做什么。

这个功能的目的是什么?用户怎么用?有什么限制条件?

不清楚就去问,不要自己猜。

2. 设计方案

想清楚怎么实现:

  • 涉及哪些模块?
  • 数据怎么流转?
  • 要改哪些代码?
  • 有什么技术难点?

可以简单画个图,或者写几行伪代码。

3. 考虑边界情况

  • 输入为空怎么办?
  • 数据不存在怎么办?
  • 并发情况怎么办?
  • 失败了怎么办?

提前想好,不要写完了再补。

4. 评估工作量

这个需求要多久?有没有风险?

提前评估,不要接了需求才发现做不完。

举个例子

需求:实现用户领取优惠券功能

不好的做法:直接开始写领券的接口

好的做法:

先想清楚:

  • 优惠券存在哪个表?字段有哪些?
  • 领取记录怎么存?
  • 每人限领几张?怎么限制?
  • 优惠券数量有限,怎么防止超发?
  • 高并发情况下会不会有问题?

想清楚这些,再开始写代码,效率会高很多。

什么时候可以直接写

1. 非常简单的改动

比如改个文案、加个字段,不用想太多。

2. 你非常熟悉的领域

做过很多次的事情,脑子里已经有方案了。

3. 探索性的代码

只是试试某个东西行不行,写完可能会删。

我的习惯

我做一个新需求,通常会这样:

  1. 看需求文档,不懂的地方问产品
  2. 在纸上或者笔记里写写画画,理清思路
  3. 想一下有什么特殊情况
  4. 然后才开始写代码

这个过程可能花半小时到一小时,但能省后面好几个小时的返工时间。

最后

磨刀不误砍柴工。

写代码前花点时间想清楚,比写完了再改要高效得多。

这是区分新手和老手的重要标志之一。

上次更新: 2025/12/7 09:34
Prev
/tech-learning/dev-experience/backend-attention.html
Next
/tech-learning/dev-experience/project-attention.html