如何有效的解决代码的圈复杂度
不管小型公司还是大型互联网公司,很多项目债台高筑,新功能开发困难。其中一个很大的原因就是代码复杂,可读性差。Sonar开发团队曾上纲上线的戏称开发人员的7宗罪,其中很关键的一条就是“复杂度”。那复杂度有没有一个明确的衡量标准,我们又如何去解决代码的圈复杂度呢?今天我在这里和大家聊一下。
待兔 待兔
4年前
Java8 几个很好用的方法,真的很香
JDK8应该是Java中最坚挺一个版本,这个版本新增很多特性,让我们开发起来多了很多便利。不过最近Review项目代码的时候发现,虽然很多项目工程已经使用了JDK8,但是工程代码却很少使用到JDK8新特性、新方法。如果单从代码正确性上来说,老方式写法写当然没有什么问题,那唯一的缺点其实就是代码行数比较多,比较繁琐。那同样的需求,使
xiguaapp xiguaapp
4年前
jvm
类的加载连接与初始化加载:查找并加载类的二进制数据连接验证:确保被加载的类的正确性准备:为类的静态变量分配内存,并将其初始化为默认值解析:把类中的符号引用转换成为直接引用初始化:为类的静态变量赋予正确的初始值主动使用创建类的实例访问某个类或接口的静态变量,或者对该静态变量赋值调用类的
Stella981 Stella981
3年前
InnoDB脏页刷新机制Checkpoint
我们知道InnoDB采用WriteAheadLog策略来防止宕机数据丢失,即事务提交时,先写重做日志,再修改内存数据页,这样就产生了脏页。既然有重做日志保证数据持久性,查询时也可以直接从缓冲池页中取数据,那为什么还要刷新脏页到磁盘呢?如果重做日志可以无限增大,同时缓冲池足够大,能够缓存所有数据,那么是不需要将缓冲池中的脏页刷新到磁盘。但是,通常会有以下几
Wesley13 Wesley13
3年前
Java实现随机红包分配算法 [非均值波动]
关于红包算法,其实笔者早在16年某个直播平台实现过。论彻底随机性,网上可刊资料少之又少。在网上查阅的资料大部分都是非随机分配、均值波动分配等方案,那么以下笔者来分享一套红包的分配算法。介绍下网上惯用的做法:1、均值波动分配  即根据总金额和数量,计算出平均值,为每个红包的金额进行上下随机波动,计算出所有红包的金额。2、随机金额分配 
Stella981 Stella981
3年前
Linux RPS RFS
随着单核CPU速度已经达到极限,CPU向多核方向发展,要持续提高网络处理带宽,传统的提升硬件设备、智能处理(如GSO、TSO、UFO)处理办法已不足够。如何充分利用多核优势来进行并行处理提高网络处理速度就是RPS解决的课题。以一个具有8核CPU和一个NIC的,连接在网络中的主机来说,对于由该主机产生并通过NIC发送到网络中的数据,CPU核的并行性是自热而然
可莉 可莉
3年前
2200 Star!功能强大的 Java 字节码编辑器!
【导语】:Recaf是一款功能十分强大的Java字节码编辑器,基于objectweb的ASM构建,可以更好地显示文件的属性,并为字节码编辑提供方便。简介Recaf是一个易于使用的现代的Java字节码编辑器,它抽象了Java程序的复杂性,自动处理栈帧和常量池的生成,它是一种辅助编辑工具,提供修改字节码的界面,可以提高工作效率。当然,使用这个工具
Stella981 Stella981
3年前
SpringBoot使用validator校验
在前台表单验证的时候,通常会校验一些数据的可行性,比如是否为空,长度,身份证,邮箱等等,那么这样是否是安全的呢,答案是否定的。因为也可以通过模拟前台请求等工具来直接提交到后台,比如postman这样的工具,那么遇到这样的问题怎么办呢,我们可以在后台也做相应的校验。新建项目,因为本文会使用postman模拟前端请求,所以本文需要加入web依赖,pom文件如
Stella981 Stella981
3年前
MongoDB 与传统关系型数据库mysql比较
①弱一致性(最终一致),更能保证用户的访问速度:举例来说,在传统的关系型数据库中,一个COUNT类型的操作会锁定数据集,这样可以保证得到“当前”情况下的精确值。这在某些情况下,例如通过ATM查看账户信息的时候很重要,但对于Wordnik来说,数据是不断更新和增长的,这种“精确”的保证几乎没有任何意义,反而会产生很大的延迟。他们需要的是一个“
Wesley13 Wesley13
3年前
CSS3 RGBA
CSS3中的rgba中不仅仅让我们像通常一样设置RGB颜色,而且还可以设置其透明度。RGBA像RGB一样设置颜色,而这个”A”——RGBA中的最后一个值——允许我们设置该元素的透明度。就像opacity声明一样,一个opacity值为1的元素是完全不透明的,而一个opacity为0的元素是完全透明的。浏览器兼容性RG