`

能使用简单类型达到目的的地方绝不使用复杂类型

    博客分类:
  • Java
 
阅读更多
以下都是偶们经理说滴~
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类型技术功能规格.pdf

    在西门子SIMATIC PCS 7中,SFC类型的技术功能规格使用是工业自动化领域的一个重要知识点,SFC即顺序功能图(Sequential Function Chart),是用于描述过程控制中复杂操作流程的一种图形化编程语言。它属于IEC 61131-...

    mysql数据类型详解.pdf

    MySQL中数据类型的选择对于数据库设计至关重要,它直接关系到数据存储的有效性和查询的...在实际应用中,数据库管理员和开发者应当根据实际需求和数据特性,选择最合适的数据类型,以达到存储高效和查询快速的目的。

    反编译中数据类型重构技术研究

    反编译是软件逆向分析的重要手段...型传播方程,从而达到类型细化的目的;通过分析复杂数据结构的存储特点及寻址方式, 以等价类划分的思想求取复杂数据结构的内存布局,并以已得到基本类型来恢复复杂数据 结构的类型。

    《防治水细则》中水文地质类型复杂的矿井规定.doc

    在水文地质类型复杂的矿井中,由于地下水环境的复杂性,需要采取更为严格的防治措施。以下是该细则中针对这类矿井的一些关键规定: 1. 防治水机构与人员配置:水文地质类型复杂、极复杂的煤矿需设立专门的防治水...

    SQL Server中修改“用户自定义表类型”问题的分析与方法

    前言 SQL Server开发过程中,为了传入数据集类型的变量(比如接受C#中的DataTable...为了达到公用的目的,有时候一个TableType可以在多个地方分别被引用到,这样的话,势必要先删除所有的引用了这个“用户自定义表类型

    使用ATL建立一个包含2个接口的COM组件,使用VC Win32 Console Application进行客户程序的开发,达到调用该组件中这3个方法的目的

    2、使用VC Win32 Console Application进行客户程序的开发,达到调用该组件中这3个方法的目的。(必须通过IDispatch接口进行字符串的小写转换调用,两个接口之间使用QueryInterface()使用进行切换,然后通过Vtable直接...

    关于根据目的地类型控制车辆的方法的介绍说明.rar

    标题中的“关于根据目的地类型控制车辆的方法的介绍说明”表明,这个压缩包文件包含的内容主要涉及一种基于目的地分类的车辆管理或调度系统。这种系统通常用于优化交通流量、提高运输效率或者实现特定区域的交通管控...

    《Kotlin项目实战开发》第3章+类型系统与可空类型

    我们在编程语言中使用类型的目的是为了让编译器能够确定类型所关联的对象需要分配多少空间。 在每一个编程语言中,都有一个特定的类型系统。静态类型在编译时期时,就能可靠地发现类型错误。因此通常能增进最终程序...

    java枚举类型enum的使用

    这种方式虽然可以达到目的,但在使用时不够灵活,也不够类型安全。而枚举类型的定义则更为简洁和高效: ```java public enum Light { RED, GREEN, YELLOW; } ``` 这种方式定义的枚举类型,其中的每个元素(如 `...

    dotnet-RestEase易于使用的类型安全RESTAPI客户端库具备简单和可定制

    最后,"具备简单和可定制" 强调了库的灵活性,既能满足基本的简便使用,也能适应复杂的个性化需求。 **标签解析:** ".NET开发-HTTP请求库" 进一步明确了这个库是.NET框架下的一个开发工具,特别关注HTTP请求,也...

    米歇尔.沃尔德罗普-复杂.pdf

    然而,复杂科学认识到,整体行为往往不能简单通过部分的分析得出。复杂系统通常展现出非线性的动态特性,它们由许多相互作用的元素组成,这些相互作用能够产生出意料之外的行为模式,如自组织、临界态、混沌和适应性...

    Java Web 课程设计报告 设计题目:_简易购物车设计

    Java Web 课程设计报告设计...简易购物车设计是一个复杂的系统,需要考虑到多个方面的因素,包括系统的可扩展性、可维护性和用户体验等。但是,只有通过不断的实践和学习,才能设计和实现一个真正实用的购物车系统。

    验证码【复杂的和简单的】

    本话题将详细讲解验证码的两种类型:复杂验证码和简单验证码,以及它们在实际应用中的使用场景。 首先,简单验证码通常是由随机生成的一串数字或字母组成,设计目的是让用户通过肉眼识别并输入到输入框中,以此来...

    Flink 数据类型与序列化.pdf

    在源码层面,Flink的序列化框架使用到了多种策略,如Java序列化、Kryo序列化和Avro序列化等,以达到优化性能和减小数据体积的目的。不同的序列化策略在不同的使用场景下有不同的表现,因此,选择合适的序列化方式...

    MISRA-C:跨越数据类型的重重陷阱

    MISRA-C(Motor Industry Software Reliability Association C)是一套用于汽车工业中C语言编程的规则,目的是提高软件的可靠性、安全性和维护性。这个规范由一组定义明确的编码标准组成,这些标准主要关注如何在...

    复杂地貌类型区耕地土壤有机质空间插值方法研究

    本篇研究论文聚焦于在复杂地貌类型区进行耕地土壤有机质的空间插值方法研究,此类研究对于揭示土壤属性的空间分布规律具有重要意义。研究由龙军、张黎明等人完成,文章发表于中国科技论文在线网站。研究选取了福建省...

    Java根据ftl模板生成多表格复杂性word文档

    Java使用FTL(FreeMarker Template Language)模板生成多表格复杂性Word文档是一项常见的技术需求,尤其是在需要自动生成报告或批量处理文档的场景中。FreeMarker是一个强大的、基于模板的Java库,它允许开发者将...

    使用SOCK-DGRAM类型的socket实现的ping程序

    传统的`ping`程序通常使用`SOCK_RAW`类型的socket来实现,因为`ICMP`(Internet Control Message Protocol)协议并非应用层协议,而是直接与IP协议交互的。然而,`SOCK_RAW`需要root权限,且处理IP报头解析较为复杂...

    java 带两个类型参数的泛型

    在Java编程语言中,泛型是一种强大的特性,它允许我们在类、接口和方法中使用类型参数,从而提高代码的灵活性和可复用性。当我们谈论“java带两个类型参数的泛型”时,这意味着我们正在处理一个泛型类或泛型方法,...

    C语言程序设计自定义数据类型实用教案.ppt

    这样做的目的是节省内存,但同时也意味着不能同时访问或修改所有成员。 4. **枚举类型**:枚举类型允许程序员定义一组相关的常量,每个常量可以被赋予一个整数值或者名字。例如,可以定义一个枚举来表示一周中的...

Global site tag (gtag.js) - Google Analytics