以下都是偶们经理说滴~
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中数据类型的选择对于数据库设计至关重要,它直接关系到数据存储的有效性和查询的...在实际应用中,数据库管理员和开发者应当根据实际需求和数据特性,选择最合适的数据类型,以达到存储高效和查询快速的目的。
原始类型与对象类型结合使用,可以构建出更复杂的类型系统,提高代码的健壮性和可维护性。 总结来说,Any、Void和Never是TypeScript中特殊的原始类型,它们分别用于放宽类型约束、表示无返回值和表示无法达到的值。...
反编译是软件逆向分析的重要手段...型传播方程,从而达到类型细化的目的;通过分析复杂数据结构的存储特点及寻址方式, 以等价类划分的思想求取复杂数据结构的内存布局,并以已得到基本类型来恢复复杂数据 结构的类型。
卡巴激活 可达到免费使用杀软的目的 卡巴激活 可达到免费使用杀软的目的
根据提供的文件信息,“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; } ``` 这种方式定义的枚举类型,其中的每个元素(如 `...
最后,"具备简单和可定制" 强调了库的灵活性,既能满足基本的简便使用,也能适应复杂的个性化需求。 **标签解析:** ".NET开发-HTTP请求库" 进一步明确了这个库是.NET框架下的一个开发工具,特别关注HTTP请求,也...
标题中提到的“在Fluent中改变边界条件类型,使用UDF控制”是指通过编写UDF程序来调整或扩展Fluent中的边界条件。边界条件是定义流场计算域边界的物理特性,如速度、压力、温度等,对流体流动的模拟结果至关重要。...
本话题将详细讲解验证码的两种类型:复杂验证码和简单验证码,以及它们在实际应用中的使用场景。 首先,简单验证码通常是由随机生成的一串数字或字母组成,设计目的是让用户通过肉眼识别并输入到输入框中,以此来...
Graphene 项目的目的是使用非常性感的类型安全的 API 进行 Ajax 测试,是 Selenium 项目的扩展
这种锁的目的是确保数据的一致性,避免脏读、不可重复读等问题。 #### 四、意向锁:提高锁检查效率 意向锁是在上层结点(如表级)做出的一种标记,用于指示下级结点(如行级)的锁类型。例如,当在行上加X锁时,会...
对一些简单验证码的识别工具 可以自定义验证码配置以达到通用的目的 使用者可以使用提供的dll或者命令行工具调用识别 从而实现一些自己的功能 文件包含全套工具、关键代码、使用说明文档.rar,太多无法一一验证是否...
在Java编程语言中,泛型是一种强大的特性,它允许我们在类、接口和方法中使用类型参数,从而提高代码的灵活性和可复用性。当我们谈论“java带两个类型参数的泛型”时,这意味着我们正在处理一个泛型类或泛型方法,...
在易语言中,你可以通过组合基本数据类型(如整型、浮点型、字符串等)来定义新的复杂类型。这有助于组织和管理数据,提高代码的可读性和可维护性。例如,你可以定义一个包含姓名、年龄和地址的“人员”类型,这样在...
0型文法:在0型文法中,产生式左右部可以使用"非终结符"和"终结符"随意组合,但左部不能为空。例如,文法G = ({S, A, B}, {a, b}, P, S) 中,产生式可以是S -> aA、A -> bB、B -> ε等。 1型文法:在1型文法中,在0...
- 12:目的主机服务类型不可达。 3. **源抑制(Source Quench,类型4)**: - 当路由器接收到的数据包过多时,用来通知源主机减少数据发送速率。 4. **重定向(Redirect,类型5)**: - 用于告知发送主机有更优...