以下都是偶们经理说滴~
Long是java实现的复杂类型,long是java虚拟机提供的原始类型。 任何Long类型的比较和运算实际上都要经过拆箱转换成原始类型方能进行,而long类型的运算是直接经过寄存器,运算速度是Long的十几倍甚至是几十倍(参看我写的一个简单的对比测试:com.everbridge.platform.dashboard.test.FunnyTest)。
所以,很多java专家的意见都是,能使用简单类型达到目的的地方绝不使用复杂类型。其实,这也是我们编程需要遵行的原则,尽量用简单,可复用的方法解决问题,避免过度设计
遗憾的是,咱们现在的代码里面无论是前端还是后端都有很多绕弯的实现和逻辑。咱们开发已经进入bug fix的阶段,这是一个很好的改进代码,提高质量的机会,请大家在fix bug的时候,尝试以下几个步骤:
碰到一个bug,不要急于修改,先整体思考一下之前的实现逻辑,是否可以截弯取直,化繁为简(比如,在咱们的service中,有许多的service接口实际上只是wrap了另外一个service的实现,没用任何必要,service的接口本来就是在controller层聚合使用的,wrap到一个service里面除了增加复杂性,貌似没有其它的任何好处)
看看别人的代码里面有没有类似的场景,别人是如何处理的
在想想bug里面提到的代码没有覆盖到的情况是否还有其它的可能性
尽可能在修改bug时补一些之前没有的单元测试,保证对你的service接口进行单元测试
清理你代码里面的垃圾,包括:无用变量声明,未用到却注入的依赖,不再使用的private方法等
使用统一的模板格式化代码(参看:https://github.com/Everbridge/omnidocs/tree/master/platform-doc/codetemplate),干净清爽的代码会给你带来好的心情
对于之前不好的实现,不一致的接口或者有歧义的接口予以重构并通过单元测试来保证修改的正确性
我们的目的不是单纯的修改bug,而是扎实的提高代码质量,提高产品的稳定性,可用性和性能,最终给用户带来良好的体验。
分享到:
相关推荐
在西门子SIMATIC PCS 7中,SFC类型的技术功能规格使用是工业自动化领域的一个重要知识点,SFC即顺序功能图(Sequential Function Chart),是用于描述过程控制中复杂操作流程的一种图形化编程语言。它属于IEC 61131-...
MySQL中数据类型的选择对于数据库设计至关重要,它直接关系到数据存储的有效性和查询的...在实际应用中,数据库管理员和开发者应当根据实际需求和数据特性,选择最合适的数据类型,以达到存储高效和查询快速的目的。
反编译是软件逆向分析的重要手段...型传播方程,从而达到类型细化的目的;通过分析复杂数据结构的存储特点及寻址方式, 以等价类划分的思想求取复杂数据结构的内存布局,并以已得到基本类型来恢复复杂数据 结构的类型。
在水文地质类型复杂的矿井中,由于地下水环境的复杂性,需要采取更为严格的防治措施。以下是该细则中针对这类矿井的一些关键规定: 1. 防治水机构与人员配置:水文地质类型复杂、极复杂的煤矿需设立专门的防治水...
根据提供的文件信息,“Informix 用户例程与数据类型开发指南”这一标题以及描述明确指出了文档的主要内容将围绕IBM Informix数据库系统中的用户...希望本文能为正在学习或使用Informix的开发者们提供有价值的参考。
前言 SQL Server开发过程中,为了传入数据集类型的变量(比如接受C#中的DataTable...为了达到公用的目的,有时候一个TableType可以在多个地方分别被引用到,这样的话,势必要先删除所有的引用了这个“用户自定义表类型
2、使用VC Win32 Console Application进行客户程序的开发,达到调用该组件中这3个方法的目的。(必须通过IDispatch接口进行字符串的小写转换调用,两个接口之间使用QueryInterface()使用进行切换,然后通过Vtable直接...
标题中的“关于根据目的地类型控制车辆的方法的介绍说明”表明,这个压缩包文件包含的内容主要涉及一种基于目的地分类的车辆管理或调度系统。这种系统通常用于优化交通流量、提高运输效率或者实现特定区域的交通管控...
我们在编程语言中使用类型的目的是为了让编译器能够确定类型所关联的对象需要分配多少空间。 在每一个编程语言中,都有一个特定的类型系统。静态类型在编译时期时,就能可靠地发现类型错误。因此通常能增进最终程序...
然而,复杂科学认识到,整体行为往往不能简单通过部分的分析得出。复杂系统通常展现出非线性的动态特性,它们由许多相互作用的元素组成,这些相互作用能够产生出意料之外的行为模式,如自组织、临界态、混沌和适应性...
这种方式虽然可以达到目的,但在使用时不够灵活,也不够类型安全。而枚举类型的定义则更为简洁和高效: ```java public enum Light { RED, GREEN, YELLOW; } ``` 这种方式定义的枚举类型,其中的每个元素(如 `...
- **规则三:**`void`指针(`void *`)可以指向任何类型的数据,但不能进行类型安全的算术操作。例如,`pvoid++`和`pvoid += 1`在ANSI标准下是非法的,因为无法确定指针移动的大小。在使用`void *`时,必须先将其...
本话题将详细讲解验证码的两种类型:复杂验证码和简单验证码,以及它们在实际应用中的使用场景。 首先,简单验证码通常是由随机生成的一串数字或字母组成,设计目的是让用户通过肉眼识别并输入到输入框中,以此来...
在源码层面,Flink的序列化框架使用到了多种策略,如Java序列化、Kryo序列化和Avro序列化等,以达到优化性能和减小数据体积的目的。不同的序列化策略在不同的使用场景下有不同的表现,因此,选择合适的序列化方式...
MISRA-C(Motor Industry Software Reliability Association C)是一套用于汽车工业中C语言编程的规则,目的是提高软件的可靠性、安全性和维护性。这个规范由一组定义明确的编码标准组成,这些标准主要关注如何在...
Graphene 项目的目的是使用非常性感的类型安全的 API 进行 Ajax 测试,是 Selenium 项目的扩展
这种锁的目的是确保数据的一致性,避免脏读、不可重复读等问题。 #### 四、意向锁:提高锁检查效率 意向锁是在上层结点(如表级)做出的一种标记,用于指示下级结点(如行级)的锁类型。例如,当在行上加X锁时,会...
Java使用FTL(FreeMarker Template Language)模板生成多表格复杂性Word文档是一项常见的技术需求,尤其是在需要自动生成报告或批量处理文档的场景中。FreeMarker是一个强大的、基于模板的Java库,它允许开发者将...
传统的`ping`程序通常使用`SOCK_RAW`类型的socket来实现,因为`ICMP`(Internet Control Message Protocol)协议并非应用层协议,而是直接与IP协议交互的。然而,`SOCK_RAW`需要root权限,且处理IP报头解析较为复杂...
这样做的目的是节省内存,但同时也意味着不能同时访问或修改所有成员。 4. **枚举类型**:枚举类型允许程序员定义一组相关的常量,每个常量可以被赋予一个整数值或者名字。例如,可以定义一个枚举来表示一周中的...