zoukankan      html  css  js  c++  java
  • 代码反思

    最近一周出了两次线上事故,其中一次还处于封网期,最后无奈破网上线。问题都不大,但确实很恶心。反思自己写代码没有方法,于此做笔记。

    先写开发笔记,再具体开发。可以练习,养成习惯!

    1. 改代码是否对老的代码有影响:

       这个问题如果问我们,我们大多数人都知道,改老代码可能会影响原有功能,但真正做的时候可能就顺手就改了。改的时候,一定要多反思。本次的故障:longitude 单词原代码中拼错了,我做了改正,是我用的结果返回值正常。但忘记检查是否有其他地方使用这个错误的单词,结果导致故障。

    2. 临界条件的判断:

        临界条件一定要多注意:是否为空?是否为空集合?是否越界?本次出的故障:A 、 B 两个结果集的合集作为结果集返回,因为A结果集是重点,结果值关注的A结果集是否有结果,在A结果集没有结果的情况下返回空列表。结果导致,只有B结果集的是也返回空列表。

    3. 完善的日志:

        核心功能,新增功能 一定要有日志,记录数据的出参入参。记录异常的时候,记录入参,方便定位问题。

    4. 降级方案:

        明确你的核心功能是什么?保证非核心功能异常,不影响核心功能。

    5. 回顾代码

        写完代码后,要自己整体捋一遍,看看是否有遗漏的点。开始想起来,为避免忘记,写TODO

    6. 代码性能

        考虑代码性能

    7. 是否考虑了所有情况

    8. 监控:

       异常日志监控;新功能运行情况监控;流量变化监控

    9. 测试:

        1)单元测试

        2)列出要考虑的情况

        3)和测试同学讲清楚所有情况,认真参加测试用例评审。这个是自己平时忽略的,自己太懒了,一忙起来就不参加测试用例。多个人测,总比一个人测要强。

    10. 简洁高效的代码,不要随心所欲的写

         lambada表达式;设计模式等

       

  • 相关阅读:
    力扣3. 无重复字符的最长子串
    力扣724. 寻找数组的中心索引
    力扣105. 从前序与中序遍历序列构造二叉树
    力扣541. 反转字符串 II
    力扣496. 下一个更大元素 I
    力扣129. 求根到叶子节点数字之和
    力扣628. 三个数的最大乘积
    力扣415. 字符串相加
    力扣409. 最长回文串
    力扣404. 左叶子之和
  • 原文地址:https://www.cnblogs.com/Jtianlin/p/14396611.html
Copyright © 2011-2022 走看看