首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

RefactoringGuru 代码异味和重构技巧总结

解决方案:将数组替换为每个元素都有单独字段对象重复被观测数据 问题:存储领域数据是否负责GUI? 解决方案:那么最好将数据分成不同类,确保领域类和GUI之间连接和同步。...用字段替换子类 问题:你子类只(常量返回)方法上有所不同。 解决方案:用父类字段替换方法,删除子类。...然后用相关方法调用替换条件。结果是,根据对象类,可以通过多态实现正确实现。 引入空对象 问题:由于一些方法返回null而不是真实对象,所以代码中有很多null检查。...移除设置方法 问题:字段应该只创建时设置,之后任何时候都不能更改。 解决方案:删除设置字段方法。 隐藏方法 问题:一个方法不被其他类使用,或者只它自己类层次结构中使用。...解决方案:从子类删除字段,并将其移动到超类。 上移方法 问题:你子类具有执行类似工作方法。 解决方案:使方法相同,然后将它们移动到相关超类。

1.8K40

数据专家最常使用 10 大类 Pandas 函数 ⛵

head:返回前几行,通常用于检查数据是否正确读取,以及了解数据字段和形态等基本信息。tail:检查最后几行。处理大文件时,读取可能不完整,可以通过它检查是否完整读取数据。...以下函数很常用:duplicated: 识别DataFrame是否重复,可以指定使用哪些列来标识重复项。drop_duplicates:从 DataFrame 删除重复项。...一般建议大家先使用 duplicated检查重复项,确定业务上需要删除重复项,再使用这个函数。图片 6.处理缺失现实数据集中基本都会存在缺失情况,下面这些函数常被用作检查和处理缺失。...isnull:检查 DataFrame 是否缺失。dropna: 对数据做删除处理。注意它有很重要参数how(如何确定观察是否被丢弃)和 thred(int类型,保留缺失数量)。...当我们有多个相同形状/存储相同信息 DataFrame 对象时,它很有用。

3.5K21
您找到你想要的搜索结果了吗?
是的
没有找到

搞定Protocol Buffers (下)- 原来你是这样pb

首先,从每个字节删除msb,因为这个是用来告诉我们是否已到达数字末尾。...optional和repeated元素 如果proto2消息定义了重复元素(没有定义[packed=ture]选项),则编码消息具有零个或多个具有相同字段编号键值对。...这些重复不必连续出现,它们也可能跟其他字段交错出现,元素之间顺序会保留下来,尽管其他字段顺序会丢失。proto3重复字段使用了压缩编码。...对于内嵌消息字段,解析器合并同一字段多个实例,就像使用Message::MergeFrom方法一样:也就是说,后面的实例中所有单标量字段将替换前面的实例标量字段,并合并单内嵌消息,连接重复字段...压缩可重复字段 2.1.0版本引入了打包可重复字段功能,proto2声明为重复字段,但具有特殊[packed=true]选项。proto3重复标量数字类型默认会被打包。

95710

180多个Web应用程序测试示例测试用例

12.重复记录不应显示结果网格。 13.检查所有列是否可见,并在必要时启用水平滚动条。 14.检查数据以获取动态列(其根据其他动态计算列)。...9.检查子窗口取消按钮功能。 数据库测试测试方案 1.成功提交页面后,检查是否在数据库中保存了正确数据。 2.检查不接受空。 3.检查数据完整性。数据应根据设计存储单个或多个。...14.检查表审计列(例如创建日期,创建者,创建者,更新者,更新者,删除者,删除数据者,删除者等)是否已填充正确地。 15.保存时检查输入数据是否未被截断。...页面上和数据库模式显示给用户字段长度应该相同。 16.检查具有最小,最大和浮点数字字段。 17.检查带有负值数字字段(接受和不接受)。...22.将数据提交到数据库之前,应截断输入字段前导空格和尾随空格。 23.主键列不允许使用空。 图像上传功能测试方案 (也适用于其他文件上载功能) 1.检查上载图像路径。

8.1K21

Java使用Protocol Buffer

你甚至可以在其他message内定义内联message类型,PhoneNumber就是这样。如果你希望其中一个字段具有预定义列表之一,你可以使用enum实现。...重复顺序将保留在协议缓冲区。将重复字段视为动态大小数组。...返回对象实际上是您调用该方法同一个构建器。为方便起见,它会返回,以便您可以一行代码中将多个setter串在一起。...如果你遵循这些规则,旧代码将可以阅读新消息简单地忽略任何新字段。对于旧代码,已删除可选字段将只具有其默认删除重复字段将为空。新代码也将透明地读取旧消息。...但是,请记住旧消息不会出现新可选字段,因此您需要明确检查它们是否设置为has_,或者使用[default = value].proto文件中提供合理默认。标签号后面。

2.1K10

Protobuf 语言指南(proto3)

[1]Java,无符号32位和64位整数使用它们带符号对应表示,最高位只是存储符号位。 [2]在所有情况下,将设置为字段将执行类型检查以确保其有效。...请注意,对于标量消息字段,一旦解析了消息,就无法确定字段是否显式设置为默认(例如,是否设置了布尔false)或者根本没有设置:您应该记住这一点定义消息类型时。...您可以添加任何类型字段,但不能使用repeated字段。 在生成代码,oneof字段与常规字段具有相同getter和setter。您还可以使用特殊方法检查oneof(如果有)。...因此,如果您设置了多个字段,则只有您设置 最后一个 字段仍然具有。...如果检查oneof返回None/ NOT_SET,这可能意味着oneof尚未设置或已在不同版本oneof被设置为一个字段。没有办法区分,因为没有办法知道线上未知字段是否是其中一个成员。

5.1K40

Java并发入门指南

表 1: Java并发概念 image.png 对象被安全地发布(引用过程这个引用不会被释放) 所有字段都被声明为final 对象引用字段不得允许构建后字段可访问对象图中任何地方进行修改...锁可保证Java内存模型所需顺序,保证对其他线程更改可见性。 热心提示:数据更改外部同步Java内存模型下没有指定语义!...同时在对象上同步时修改字段可以保证同一对象上同步任何其他线程后续读取将会看到更新。重要是要注意,写入外部同步或同步与读取不同对象上不一定对其他线程是可见。...volatile volatile可用于标记字段指示除了同步之外,其他线程所有后续读取都必须看到该字段更改。因此,易volatile提供可见性,就像同步,但仅限于对字段每次读取或写入。...BlockingQueue接口位于java.util.concurrent扩展了Queue,以提供如何处理队列可能已满场景(生产者添加项目时)或为空(消费者读取或删除项目时)其他选项。

86790

备战Java

重载(overloading): 发生在同一个类,方法名相同,但是参数列表不同(类型不同或个数不同或参数顺序不同),与返回无关。在编译时,根据参数个数和类型来决定绑定哪个方法。...是否为空;keyhash,获得keytable数组index,如果table[index]不为空,进行迭代;如果遇到相同key,直接替换,并且返回是旧value,否则直接插入到table...34.是否可以从一个 static 方法内部发出对非 static 方法调用?不可以,如果其中包含对象 method(),不能保证对象初始化.35. java 怎么设定时间格式?...尽管反射机制可以⽅便地获取类信息并进⾏操作,但是它也具有⼀定缺点,如性能较差、代码可读性差、安全性差等。因此,实际开发,应该根据实际情况谨慎使⽤反射机制。...,SQL 是根据数据来进行查询优化,当索引列有大量数据重复时,查询可能不会去利用索引d.避免频繁创建和删除临时表,以减少系统表资源消耗。

18120

Flink DataSet编程指南-demo演示及注意事项

它从输入DataSet删除重复条目,依据元素所有字段字段子集。 data.distinct() 9),Join 根据两个数据集指定相等key,进行join,这是一个inner join。...通过创建输入文件和读取输出文件,为数据分析项目程序提供输入检查其输出是麻烦。Flink具有Java集合支持特殊DataSources 和 DataSinks,以简化测试。...使用字段表达式指定字段转发信息。转发到输出相同位置字段可以由其位置指定。指定位置必须对输入和输出数据类型有效,并且具有相同类型。...所有其他字段被认为保留在输出相同位置。因此,非转发字段信息与转发字段信息相反。...例如,“f1; f3”和“f1”,“f3”都声明Java元组第二和第四个字段没有保留在原位,所有其他字段都保留在原位。只能对具有相同输入和输出类型函数指定非转发字段信息。

10.7K120

Oracle数据库 表连接与表设计

用于定位数据库中一条记录一个 相对唯一地址。通常情况下,该该行数据插入到数据库表时即被确定且唯一。 ROWID 它是一个伪列,它并不实际存在于表。...1、rowid 实现重复记录删除 要求:删除重复记录,一条记录只保留一次 思路->将所有记录按照某种特定规律分组(相同记录为一组),保留下每组一 条记录即可,其他记录删除 1)找出重复数据 :哪个学生...select语句字段,如果直接写rownum,被认为是外部select语句 --如果存在排序,rownum序号可能出现问题(乱号),如果:根据主键进行order by,先排序再rownum,如果根据其他字段排序...)确定字段名 类型 +约束(主键 外键 非空 默 检查认 唯一) 主键:唯一标识一条记录(唯一并且非空) 唯一:唯一 非空:不能为空 默认:当没给时使用给定一个默认 外键:参考其他表(自己)某个(...--3)创建表结构结束之间添加约束 --约束添加: 1)物理约束 :表字段上添加 2)逻辑约束:java代码上使用逻辑判断 (一) 创建表(不加约束)

2.1K20

SQL命令 CREATE TABLE(五)

在任何情况下,外键引用都必须存在于被引用,并且必须定义为唯一;被引用字段不能包含重复或NULL。...SET NULL-删除行或更新被引用表键值时,将检查所有引用表,以查看是否有任何行引用要删除或更新行。如果是,则该操作会导致引用要删除或更新外键字段设置为NULL。外键字段必须允许空。...SET DEFAULT-删除行或更新被引用表键值时,将检查所有引用表,以查看是否有任何行引用要删除或更新行。如果是,则该操作会导致引用要删除或更新外键字段设置为该字段默认。...如果外键字段没有默认,它将被设置为NULL。需要注意是,包含缺省条目的被引用表必须存在一行。 CASCADE -删除被引用表行时,将检查所有引用表,以查看是否有任何行引用要删除行。...如果是这样,则删除操作会导致其外键字段引用要删除行也被删除。 在被引用表更新行键值时,将检查所有引用表,以查看是否有任何行引用要更新行。

1.7K50

面向面试编程连载(一)

之所以需要包装类型,就是因为java是一个面向对象语言,然而基本数据类型不具备面向对象特性,当我们把基本数据类型包装成包装类型之后,它就具有了面向对象特性。...9.我是否可以改变缓存区间?怎么做? 可以通过 -XX:AutoBoxCacheMax进行修改,且这种机制仅在自动装箱时候有用,使用构造器创建Integer对象时无用。...重点关注 where 语句后边情况 2、 当列重复个数总记录条数占比很大时,才为列建立索引。...select key1 from single_table order by key1 6、 为了尽可能让聚簇索引发生页面分裂情况,建议让主键自增。 7、 定位删除冗余和重复索引。...1) 联合索引:(字段 1 字段 2) 重复索引:一个字段上添加了普通索引、唯一索引、主键等多个索引 6.一般我们是如何查看一条sql语句索引有没有起作用

81450

MySQL-单表操作

去除重复记录 实际应用,对于数据分析需求,有时需要去除查询记录重复数据。...需要注意是,当查询记录字段多个时,必须所有字段值完全相同才被认为是重复记录。 排量与限量 排序 单字段排序 单字段排序指的是查询时仅按照一个指定字段进行升序或降序排序。...而ORDER BY默认是ASC 多字段排序 开发需要根据多个条件对查询数据进行排序时,可以采用多字段排序。...分组与聚合函数 分组 MySQL,可以使用GROUP BY 根据一个或多个字段进行分组,字段相同为一组。另外对于分组数据可以使用HAVING进行条件筛选。...0到1之间随机数,包括0和1 比较函数 函数 描述 IN() 比较一个是否一组给定集合内 NOT IN() 比较一个是否不再一组给定集合内 GREATEST() 返回最大一个参数值,至少两个参数

2K10

SQL命令 CREATE INDEX(一)

参数 UNIQUE - 可选——一个约束,确保表不会有两行索引中所有字段相同。不能为位图或位片索引指定此关键字。...管理门户、系统管理、配置、SQL和对象设置、SQL,可以通过选择“忽略冗余DDL语句”复选框,系统范围内设置此选项(以及其他类似的创建、更改和删除选项)。...字段名称 必须指定至少一个要索引字段名。 指定一个字段名或用逗号分隔字段名列表,这些字段名用括号括起来。 索引定义中允许保留重复字段名。...指定多个字段可能会提高GROUP BY操作性能,例如,先按州分组,然后再按每个州城市分组。 通常,应该避免一个或多个具有大量重复数据字段上建立索引。...例如,人员数据库Name字段上建立索引是合适,因为大多数名称都是惟一State字段上建立索引(大多数情况下)是不合适,因为存在大量重复数据

1K30

记一次参数走私导致权限绕过

所以很多时候Java Web中都会选择通过类似拦截器方式,统一对这些资源ID进行鉴权处理。 拦截器从请求中提取资源ID,结合当前用户认证信息,进行权限检查。...将当前字符转换为其对应数字,并存储value变量循环中如果遇到非数字字符,则根据字符类型进行不同处理,例如: 如果是....如果是其他非空白字符,则设置匹配状态为NOT_MATCH(-1),返回0L。 在数字解析结束后,会验证数字有效性。根据negative决定是否返回负数。...最后将解析出字段(fieldValue)设置到目标对象(object)相应字段上。...当使用Fastjson解析JSON数据时,如果遇到具有重复JSON对象,Fastjson行为是保留最后一个出现键值对。

11110

Java 中文官方教程 2022 版(四)

本课程解释了注解可以在哪里使用,如何应用注解, Java 平台标准版(Java SE API)中有哪些预定义注解类型可用,如何将类型注解与可插入类型系统结合使用以编写具有更强类型检查代码,以及如何实现重复注解...也可以同一声明上使用多个注解: @Author(name = "Jane Doe") @EBook class MyClass { ... } 如果注解具有相同类型,则称为重复注解: @Author...本例,包含注解类型是Schedules,因此重复@Schedule注解存储一个@Schedules注解未声明为可重复之前将相同注解应用于声明会导致编译时错误。...此外,您可以实例化一个类来创建一个对象,而接口不能这样做。正如在什么是对象?一节中所解释对象将其状态存储字段,这些字段定义。...接口方法 默认方法和抽象方法接口中像实例方法一样被继承。然而,当一个类或接口超类型提供了多个具有相同签名默认方法时,Java 编译器遵循继承规则来解决名称冲突。

12600

编码与模式------《Designing Data-Intensive Applications》读书笔记5

它通过将字段类型和标记号打包成一个字节,使用可变长度整数来实现这一点。它不是为1337号使用八个完整字节,而是用两个字节编码,每个字节最高位用来指示是否还有更多字节要来。...如果要添加一个字段使其成为必需字段,那么如果新代码读取旧代码编写数据,则该检查将失败,因为旧代码将不会写入您添加字段。...因此,为了保持向后兼容性,初始部署模式之后添加每个字段必须是可选具有默认。...删除字段就像添加字段一样,这意味着只能删除一个可选字段(必填字段不能被删除),而且您不能再次使用相同标记号(因为您可能还有一个包含旧标记号数据,该字段必须被新代码忽略)。...可以将可选(单字段转换为重复(多值)字段。读取旧数据新代码看到一个具有零个或一个元素列表(取决于字段是否存在);读取新数据旧代码只看到列表最后一个元素。

1.3K40

《数据密集型应用系统设计》读书笔记(四)

需要注意是,添加字段只能是可选字段(或具有默认),否则新代码读取旧数据时会出现检查失败;而当删除字段时,不能再次使用已删除相同标签号码,因为新代码读取旧代码数据时需要忽略该标签号对应字段)...为了保持兼容性,只能在模式添加或删除具有「默认字段。...如果使用 Avro,我们可以很容易地「根据关系模式生成 Avro 模式」,使用该模式对数据库内容进行编码,然后将其全部转储到 Avro 对象容器文件。...而在应用程序层面,如果没有这方面的意识,将数据库解码为应用程序模型对象,再重新编码模型对象过程,可能会丢失这些字段,如下图所示(实际上成熟 ORM 框架都会考虑到这点): 2.1.1 不同时间写入不同...对于「分布式 Actor 框架」,其被用来跨越多个节点扩展应用程序,无论发送方和接收方是否同一个节点上,都使用相同消息传递机制,消息被透明地编码为字节序列。

1.9K20

这是我见过最有用Mysql面试题,面试了无数公司总结(内附答案)

一个表可以具有多个非聚集索引。 它不会改变其排序方式,但是会在一个表内创建一个单独对象,该对象搜索后指向原始表行。 20.什么是SQL视图? 视图就像逻辑上存储在数据库子集。...这些是其他功能未知。只要调用该函数就可以创建变量。 全局变量: 全局变量可以整个程序中使用或存在。全局声明相同变量不能在函数中使用。 每当调用该函数时就无法创建全局变量。...SQL可用约束有哪些? SQL一些约束包括–主键,外键,唯一键,SQL非空,默认,检查和索引约束。 38.什么是唯一约束? 使用唯一约束来确保字段/列没有重复。 39.什么是主键?...用字段NULL是没有字段。甲NULL是从零或包含空格字段不同。 具有NULL字段是在记录创建过程留为空白字段。...全部合并: 返回不同选择语句结果集中所有行,包括重复项。 性能方面,Union All比Union更快,因为Union All不会删除重复项。联合查询检查重复,这会花费一些时间来删除重复记录。

27K20

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券