团队里的妹子让阿粉跟她说说怎样写出好的代码

简介: 昨天,团队里的妹子很突然地就让阿粉跟她说说怎么才能写出一手好的代码阿粉本着负责任的态度,专门写了一篇文章出来,妹子嘛,就是要宠的嘛

写好注释

写代码这件事情,大概就是一时编程一时爽,过后调试火葬场

阿粉有过一次经历,就是当时开发任务紧,把功能实现之后就完事儿了,也没有好好写注释。结果过了两三个月之后,那个功能因为需求变动出 bug 了,出了 bug 就去解决呗

但是!!!因为阿粉没有写注释,当时的实现逻辑,为什么这样写全忘了,所以相当于又重头捋了一遍逻辑,那个味道,真是酸爽

所以阿粉要把这个建议放在第一个!

写注释的时候,如果逻辑比较复杂,可以先写一下大体思路,然后下面具体实现时再详细写,比如阿粉曾经写过的代码(做了脱敏处理,大家不要太较真啦,重点是阿粉写的注释


/**
     * 进行 XX 操作时调用此方法,用来向数据库插入数据
     * @param saveModel 要插入的数据
     * @return 是否保存成功
     * 
     * @author a'fen
     * @date 2020-10-17 23:50:45
     */
    public Boolean isSaveSuccess(SaveModel saveModel) {
        /*
            整体思路:
                1 接收传入的所有 id/name 的信息
                2 插入相关信息
                    2.1 XX 信息插入成功之后,再去 YY 表进行相关信息插入
                3 对 YY 表进行插入时,先判断是否有相关信息,如果有则进行更新,如果没有则直接插入
                4 是否添加 AA ,如果业务上配置了 AA ,则需要将相关内容更新到 ZZ 表中
                    注: 在 BB 界面点击下一步时,已经将相关信息插入到了 ZZ 表中
                            所以在这里只做更新即可
         */
   // 1 接收传入的所有 id/name 的信息
   // 创建 xxList 用来接收所有的 id/name 的信息
   List<XXModel> xxList = new ArrayList<>();
   // 对传入的信息按照 id 进行排序,方便接下来的操作
   saveModel.getIdList().stream.collect(Collectors.groupingBy(SaveModel::getId))
                .forEach((String mapKey, List<SaveModel> save) -> {
                    xxList.addAll(save);
                });
  // 2 插入相关信息
  // 循环 xxList
  for (XXModel model : xxList) {
   // 向 XX 表插入信息
   实现代码
   // 2.1 插入成功,去 YY 表做相关信息插入
   实现代码
  }
  // 3 对 YY 表进行插入时,先判断是否有相关信息,如果有则进行更新,如果没有则直接插入
  实现代码
  // 4 是否添加 AA ,如果业务上配置了 AA ,则需要将相关内容更新到 ZZ 表中
  实现代码
    }

在写代码之前,先想想可能的应用场景

有时候拿到需求之后,如果着急去做,后期可能会耗费不少的精力

阿粉曾经做过一个业务,类似用户充值的场景,当时阿粉拿到这个需求之后,就想着不就是充值钱嘛,那就定义一个 Integer 类型不就完了,然后一顿操作猛如虎,上线之后也没啥问题

结果有一次公司运营和其他一些第三方合作,用的就是充值这个接口,然后因为运营大批量的持续充值,直接超出了 Integer 的允许范围,导致整条业务线都没办法跑通

然后排查问题排查到最后,发现是阿粉造成的,而且还是因为一个数据类型引发的...阿粉当时真的是想钻到地下

代码是写给人看的,所以让自己的代码干净整洁一些

代码是写给人看的,不是写给机器看的。你想嘛,如果想要让机器看,直接写 0110001 这种编码方式不香吗!毕竟机器它只认 0 或者 1

所以代码是写给人看的,那么写代码的时候就让它干净整洁一些

比如:该缩进的缩进,该空一行的就空一行,比如下面这样:

public static void sleep(long millis, int nanos)
    throws InterruptedException {
        if (millis < 0) {
            throw new IllegalArgumentException("timeout value is negative");
        }
        if (nanos < 0 || nanos > 999999) {
            throw new IllegalArgumentException(
                                "nanosecond timeout value out of range");
        }
        if (nanos >= 500000 || (nanos != 0 && millis == 0)) {
            millis++;
        }
        sleep(millis);
    }

要缩进有缩进,该空一行就空一行,不用你们夸,我自己都觉得这代码写的,真是好!(Thread 源码谁敢说不好?!

没事儿就和阿粉多聊聊源码

其实想要写一手好的代码,最重要的就是要多看,自己多写

看什么呢?阿粉觉得看源码就够了。JDK 源码这么多人都在用,足以说明 JDK 源码的代码写的有多优秀

所以呢,没事儿就和阿粉多聊聊源码,没事儿就约约阿粉去图书馆一起研究研究源码,平时自己写代码的时候,多注意借鉴从源码中学到的实现思路,学到的编程技巧,日积月累下来肯定能在编程上有一个很好的提升


相关文章
|
8月前
|
监控 安全 程序员
程序员是如何看待“祖传代码”的?
程序员是如何看待“祖传代码”的?
56 0
|
8月前
|
算法
代码之美:从混乱到秩序的编程之旅
【7月更文挑战第14天】编程,一门将思维转化为电子指令的艺术。在这篇文章中,我将带你领略编程的美学,从最初的混沌编码到最终的逻辑严谨、运行高效的程序。我们将一同探索如何通过理解问题、选择合适的数据结构与算法、编写可读性强的代码以及不断重构来提升代码质量。这不仅是一个技术提升的过程,更是一次思维的升华。
|
10月前
|
前端开发 JavaScript
意想不到的前端三个小妙招
意想不到的前端三个小妙招
|
缓存 JavaScript 小程序
接手前同事代码,特别烂,各种BUG,看麻了。。。
接手前同事代码,特别烂,各种BUG,看麻了。。。
|
测试技术
软件测试好学吗 只要选对了学习方式,就并不难学
我们都知道,如今互联网IT行业,在国内可是非常吃香的,尤其是近些年随着软件的普及,人们对软件的要求也是越来越高,因此国内各大互联网企业,也开始大量招聘软件测试人员,但由于这个岗位在我国的发展时间并不长,人员需求也是供应不求的。
219 0
软件测试好学吗 只要选对了学习方式,就并不难学
|
消息中间件 运维 Dubbo
源码阅读的方法、误区以及三种境界
源码阅读的方法、误区以及三种境界
|
机器学习/深度学习 人工智能 自然语言处理
AlphaCode 能替代人类程序员吗?网友:被替代也挺好,这样就可以少写代码多开会了
DeepMind 是最新的人工智能研究实验室。它推出了一个可以生成软件源代码的深度学习模型,成果令人印象深刻。该模型被称为 AlphaCode,基于 Transformer,与 OpenAI 在其代码生成模型中使用的架构是一样的。
197 0
AlphaCode 能替代人类程序员吗?网友:被替代也挺好,这样就可以少写代码多开会了
|
Java C语言
计算机教育中缺失的一课,劝学弟学妹们一句,一定要趁早补上,工作后会事半功倍!
各位学弟学妹们好,作为稍微年长的我(岁月是把杀猪刀啊),今天就给大家补补课。 在大学里的,我们上的计算机专业课程一般都是像操作系统、编译原理、计算机组成原理、计算机网络这些理论课程,还有一些像C语言、Java、.Net这些可以实践的课程,甚至还有可能让你焊一个收音机,但是对于一些基本习惯却很容易被忽略,需要学弟学妹们自行摸索。
243 0
计算机教育中缺失的一课,劝学弟学妹们一句,一定要趁早补上,工作后会事半功倍!
|
存储 程序员 C++
如果当初学习编程时能有人给我这些忠告该多好
Cecily Carver 是多伦多的一位程序媛,和 Jennie Faber 一起创办了一个游戏制作工作室。她喜欢歌剧、舞蹈和弹钢琴。Cecily 在这篇文章分享她在编程道路上的所感所想,给出很多值得思考的编程箴言以及一些思想误区,比如在你学习编程之前思考一下你的目标、编程不是什么神秘的东西、坚持比方法更重要等,可以让我们在编程路上少走一些弯路,从而有更多的时间学习技术让自己变的越来越强大。
239 0
|
程序员 开发者
如何写出让同事膜拜的漂亮代码?
“代码千万行,注释第一行;编程不规范,同事两行泪”;"道路千万条,安全第一条。代码不规范,亲人两行泪。"在技术圈广为盛传,可见代码不规范让程序员们是多么的头痛。
1480 0