记一次由Ali编程规范带来的一些思考

文章目录


1、前言

今天在群里群友聊起ali的规范,说起ali自身都不喜欢使用ali的规范。不经想起以前和某个学长也讨论过ali的编程规范,就来唠一唠这个规范,毕竟“学而不思则罔“。

2、正文

  • 对编程规范而言,ali的编程规范应该是业务向的规范,而不是编程范式的规范。这里先区分一下业务向与编程范式之间的区别。
    业务向则是长期编码(crud doge)得到后的经验之谈,如使用了默认的线程池,没有加上大括号,又或者使用了原生的class。 而编程范式规范则是应该回归语言问题,例如if没有加上大括号,使用默认的线程池都是语言语法本身允许的。又或者类似go语言中的go 的函数中的ctx必须放第一个参数,error 要放在最后一个返回参数。语法类型犯错但是要编译运行才知道,而在ide层面去加强识别它。

  • 那么既然是业务侧的就要明白,业务总是千奇百怪的。能写出优雅的代码更注重的应该是思想,通用性,简洁等。而不是按照某一套标准就能写出来,例如雷军写出的十几年前年前的代码到现在依旧能使用,但是十几年前又有什么标准呢~
    在这里插入图片描述

  • 再回归其规范本身,举例而言。就拿不使用默认的线程池而言就会报错。得先去思考为什么不建议使用默认的线程池。
    在这里插入图片描述

  • 因为默认的线程池就像游戏中开始选几个人物,这几个人物在属性雷达图上极度的偏科,有的人物只有力量、有的人物只有血量高,亦或者是回避属性高。那么你其实是想要更结合你自己因素的情况下去开局,比如你手速比较慢,玩的比较普通你就更倾向于防御力和血量都比较均衡的。而不是极端情况,而回归真实业务中则是,你应该去手动的去设置线程池的参数,例如你业务并发量的2~3倍去手动创建。但是在开头我也提到了对于业务侧来说场景其实是千奇百怪的

再举个例子此时你知道你要去晚会,而你要搭配礼服,那么你完全可以交给一个经常出入晚会的人,让他来帮你。因此这里有两个前提,第一是你知道你要去的是晚会,第二你知道经常出入晚会的人。

  • 换到线程池中就是,你知道这个业务场景,其实就是适合这个线程的,那么你完全就可以使用这个线程池,毕竟“存在即合理”~要不然官方也不会推出这一种线程池。
    回想当初是大二的时候接触到这个规范,但是当时只是为了让代码更简洁,而现在回想或许规范下带来的的辩证性思考才是最重要的。
    如有不足,欢迎指正~

猜你喜欢

转载自blog.csdn.net/weixin_45938441/article/details/127455322