(五)改掉这些坏习惯,还怕写不出精简的代码?

【学习技巧】——怎样改掉学习上的坏习惯 我喜欢在B站上看视频,B站现在也不全是娱乐性质的视频,也有很所免费的学习资源,有很多优秀的视频与up主。 最近 看到了一对学习区的up主:蜡笔小熏是一对儿。 他们分享了他们的学习方法,都非常棒。 这是我看视频做的学习笔记,分享给大家。 怎样改掉学习上的坏习惯? 一、选择比努力更重要:埋头苦学是最大误区。 学习上的坏习惯①粗心马虎 (审题不清 计算错误 丢三落四 无故丢分) 我们考试做... 阅读详情

鲁迅说:嬉笑怒骂里充满了无奈和妥协。 

小猿说:先生说的不对,在程序员的世界里,编写代码处处充满了无奈和妥协。

Code Review 是一场苦涩但有意思的修行。

(一)改掉这些坏习惯,还怕写不出健壮的代码?

(二)改掉这些坏习惯,还怕写不出优雅的代码?

(三)改掉这些坏习惯,还怕写不出优雅的代码?

(四)改掉这些坏习惯,还怕写不出健壮的代码?

代码修炼的系列分享,书接上篇,本次探讨一下:该如何利用注解写出精简的代码?

1. 编码时:重复的校验,随处可见。 

举个栗子:

再举个栗子:

如栗子示意,项目中参数校验随处可见,面对如此简单而又繁琐的工作量,你有何高见?

小猿招式一:七夕,带你生撸一个验证框架

小猿招式二:API参数如何验证?别纠结,拿去用就是

招式一不多说,徒手造轮子而已;重点说说招式二,引用 Hibernate Validator 类库替换参数校验,如下图示意,只需通过注解就轻松实现参数的基本验证。

建议:参数校验直接引用三方的类库实现,例如引用 Hibernate Validator,能让业务代码简化不少,代码 B 格略有提升。

敢问,你会用注解吗?注解还能怎么用?

莫急,容我慢慢讲来。

2. 编码时:注解还可以这么用。  

举个栗子:

系统要根据上面常量类中的商户号来判断:是否需要进行校验账户信息、是否需要进行通知商户 ... ...

实现方式有很多种,看看项目中采用注解怎么实现的。

首先定义 PayAccInfoValidator 注解,用来标注是否需要校验账户信息。

import java.lang.annotation.*;


@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface PayAccInfoValidator {
    
    boolean verify() default true;
}

然后在商户号属性上加入注解标识。

采用反射+注解,编写验证工具类,主要关注代码中的关注点一、关注点二。

import java.lang.reflect.Field;
import java.util.HashMap;
import java.util.Map;


public class BusinessUtil {


    private static final MerIdConstant MERID_CONSTANT = new MerIdConstant();


    /**
     * 存放要验证支付账户信息的商户号
     */
    public static final Map<String, Boolean> VERIFY_MERID_MAP = new HashMap<String, Boolean>();


    static {
        Class<?> clazz = MERID_CONSTANT.getClass();
        for (Field field : clazz.getFields()) {
            // 关注点一
            PayAccInfoValidator validator = field.getAnnotation(PayAccInfoValidator.class);
            if (validator != null) {
                try {
                    // 关注点二
                    VERIFY_MERID_MAP.put(field.get(MERID_CONSTANT).toString(), validator.verify());
                } catch (IllegalAccessException e) {
                }
            }
        }
    }
}

代码不做详细解释,工具类用起来很简单,简易示例如下。

程序输出:

20020:需要进行验证

另外,校验是否需要通知商户该怎么实现呢?其实套路是一样的,照葫芦画瓢而已,拿去先用起来体会体会。

3. 寄语写最后

在程序员的世界里,编写代码处处充满了无奈和妥协。不过还是那句话:我等采石之人当心怀大教堂之愿景。

好了,代码修炼的系列分享,本次就谈到这里,一起聊技术、谈业务、喷架构,少走弯路,不踩大坑。会持续输出原创精彩分享,敬请期待!

 

glibc: GLIBC_2.28‘ not found 这个时候,应该怎么解决,因为当前运行的机器是低版本,而程序是高版本,解决方法,或者是将程序降级,或者将当前系统升级。在一个glibc的接口版本是GLIBC_2.25的lab上,运行不了在2.28上编译的程序。看哪一个方便,但是不能通过 临时复制libc.so 文件来解决,因为会遇到下面的错误。所以如果是简单解决就是按照低版本的应用程序,来适配当前系统的glibc版本。比如下面的程序运行提示。 阅读详情

相关推荐

USB3.0一致性测试方案

为各测试项目具体测试结果包括脉冲串突发时间、脉冲串重复时间、时钟周期以及眼图等完整USB3.0测试项目,工程师可以看到各项测试的具体结果方便观察。RIGOL 提供了一套完善的工具,包括数字示波器、专业的测试夹具以及全自动一致性测试软件,使得USB 3.0设备设计人员能够高效精确地进行信号捕捉、测试与分析。报告第二部分测试摘要,在此可以看到USB3.0测试所有测试项目,并且可以观看到测试是否正常,可以帮助工程师更好的判断测试结果。,以简化下载、存储以及对于多媒体的大量内容的共享。

2409_87378937的博客 2529

精简代码真心是个技术活

把代码写长了不叫本事,能用最短的代码完成同样一件事才真是厉害。 —— 记将320行Matlab代码精简到230行

kuaitoukid的专栏 2691

OSNet代码解析(普通卷积,分组卷积,深度可分离卷积,OSblock组成)

文章目录普通卷积和分组卷积普通卷积和深度可分离卷积用深度可分离卷积(LightConv3x3)代替普通卷积(Conv3x3)减少参数OSBlock (bottleneck)OSNet OSNet之所以轻量(2.2M)在于网络浅,使用深度可分离卷积代替传统卷积,但是很有效 普通卷积和分组卷积 所谓分组卷积,就是右图的input features分成一组一组,如上图groups=3,那么输入的特征分成3组,每组有12/3=4的通道的特征参与输出。然后根据输出通道的维度,得到每组的输入特征要计算两次(6/3=2

Mr_DaYang的博客 9801

程序员所有代码都一个一个自己敲出来的吗?

高中生小A,从小对计算机非常的感兴趣。当同龄人还在玩耍时,他就时常去学校的图书馆找计算机相关的书籍,进行阅读。读的过程中非常认真的做笔记,遇到经典的书籍,还会反复的读上好几遍。时常口边说的都是计算机相关的术语,身边的同龄人没有一个人能理解,逐渐的被人隔离。小A从来不会在乎外界的看法,一心只沉迷于计算机的世界。但由于家里的条件的限制,没有电脑能让他实际操作,所以小A 编程的能力一直为零,这样的状态一...

shopju的博客 4044

光伏系统选型指南:5种主流MPPT算法优缺点对比(附选型流程图)

本文深入剖析了光伏系统中五种主流MPPT算法的核心原理与性能差异。通过对比扰动观察法、电导增量法、恒定电压法、模糊逻辑控制及人工智能算法在追踪精度、响应速度、实现成本与稳定性等方面的表现,为不同应用场景(如户用、工商业及大型电站)提供了清晰的选型决策流程图和实战指南,帮助工程师优化系统效率与投资回报。

weixin_29294597的博客 106

frp 内网渗透案例:端口转发 + 二级代理(深入理解 frp 在内网渗透中的技巧)

本文使用 vulnstack7 靶场作为测试环境,解释 frp 内网渗透特殊使用姿势,通过此案例来提高内网渗透能力。接下来的演示环境只做了以下修改。攻击者 vps 的 ip 修改为:192.168.72.162。DMZ 区域的 ubuntu 的 ip1 修改为:192.168.72.129。先引入问题,当我们控制了 DMZ 的 ubuntu 并且拿到第二层网络的 ubuntu 的 rce 后,会出现以下两个问题。如何搭建隧道让 ubuntu 反弹 shell 给攻击者 vps?

anddddoooo的博客 1765

(六)改掉这些坏习惯,还怕写不出精简的代码?

鲁迅说:嬉笑怒骂里充满了无奈和妥协。小猿说:先生说的不对,在程序员的世界里,编写代码处处充满了无奈和妥协。(一)改掉这些坏习惯,还怕写不出健壮的代码?(二)改掉这些坏习惯,还怕写不出优...

一猿小讲 1850

华为OD机考双机位C卷 - 评委评分 (Java & Python& JS & C/C++ & GO )

华为OD机考双机位C卷 - 评委评分 (OD上机考试双机位C卷)。提供在线OJ刷题。Java、C++、Python、GO语言、C语言、JavaScript题解,并提供完整思路讲解。

算法大师! 1750

写代码时需要改正的坏习惯

1、写代码时思想混乱,没有大局观,许多语法还不是很熟悉; 2、写代码时粗心大意,很多低级的错误出现过很多次; 3、写代码之前先构思,然后再敲代码; 4、精简代码量,多用系统函数; 5、对好的语句要做记录,向先进看齐;

yanyehe89的专栏 886

Could not find a package configuration file provided by “boost_signals“

gmapping/slam_gmapping/gmapping/CMakeLists.txt:14 (find_package)问题在14行,注释该行。,该语句的用以为告诉项目Boost库文件所在。

weixin_72050316的博客 1027

《AI编程实战:深度学习模型改进与系统部署》,改进专栏目录和介绍

专深度学习相关项目都写在本专栏,《一次订阅解锁全部,都有源码,永久观看》,包括车牌识别、股票预测、人脸识别、风格迁移、图像修复、图像超分辨重建、图像分割等任务,Web/PyQt系统实现。引入Transformer、Swin Transformer、DenseNet、ViT、ConvNeXt等算法实战,提供卷积改进,魔改对比实验,模型剪枝,模型蒸馏,模型量化,全网独家整合改进专栏,为不同领域的同学发表论文提供了大力支持。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 3267

(五)改掉这些坏习惯,还怕写不出精简的代码?(转载)

鲁迅说:嬉笑怒骂里充满了无奈和妥协。 小猿说:先生说的不对,在程序员的世界里,编写代码处处充满了无奈和妥协。 Code Review 是一场苦涩但有意思的修行。 (一)改掉这些坏习惯,还怕写不出健壮的代码? (二)改掉这些坏习惯,还怕写不出优雅的代码? (三)改掉这些坏习惯,还怕写不出优雅的代码? (四)改掉这些坏习惯,还怕写不出健壮的代码? 代码修炼的系列分享,书接上篇,本次探讨一下:该如何利用注解写出精简的代码? 编码时:重复的校验,随处可见。 举个栗子: 再举个栗子: 如栗子示意,项目中参数校验随

zhongqill的博客 180

英飞凌 AURIX TC3XX 系列单片机的链接文件

这篇介绍英飞凌 AURIX TC3XX 系列单片机的链接文件,主要是针对使用 SOTA 功能如何修改链接文件,完整地实现 SOTA 功能

大橙子的博客 4385

(一)改掉这些坏习惯,还怕写不出健壮的代码?

Code Review 是一场苦涩但有意思的修行。近期对团队负责的项目,进行了一次 Code Review,代码评审过程中遇到的那些编码坏习惯,笑的合不拢嘴。不过,评审中很多代码编写问题...

一猿小讲 3874

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

改掉这些坏习惯,还怕写不出精简的代码

鲁迅说:嬉笑怒骂里充满了无奈和妥协。 小猿说:先生说的不对,在程序员的世界里,编写代码处处充满了无奈和妥协。 (一)改掉这些坏习惯,还怕写不出健壮的代码? (二)改掉这些坏习惯,还怕写不出优雅的代码? (三)改掉这些坏习惯,还怕写不出优雅的代码? (四)改掉这些坏习惯,还怕写不出健壮的代码? (五)改掉这些坏习惯,还怕写不出精简的代码? 上次讨论了一下如何借助注解来精简代码,代码修炼的系列分享,书接上篇,本次继续探讨一下:还有哪些奇淫技巧,能助力写出精简的代码? 1 编...

slw20010213的博客 195

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

前端写TypeScript的时候必须改掉的 16 个坏习惯

​:用 JSDoc 或 TSDoc 描述复杂逻辑。​:显式声明返回值类型,便于维护和文档化。​:假设 API 返回的数据符合预期。​:用注释掩盖问题,而非修复类型错误。​:优先解决类型问题,或使用更安全的。​:依赖类型推断,函数返回值不明确。​:直接使用字符串/数字,难以维护。​:将类型抽离到单独文件(如。​:手动维护类型与值的同步。​:类型定义与业务代码混杂。​:代码缺乏文档,难以理解。​:使用类型守卫或库(如。​:用泛型抽象通用逻辑。​:未穷举所有条件分支。​:用枚举或常量替代。

W11929311582的博客 586

(三)改掉这些坏习惯,还怕写不出优雅的代码?

Code Review 是一场苦涩但有意思的修行。书接上篇,本次一起继续探讨一下,该如何写出优雅的代码?1编码时:搞的复杂并不好坏习惯一:多余的 if/else。反例:类似上面这种写...

一猿小讲 2036

(四)改掉这些坏习惯,还怕写不出健壮的代码?

Code Review 是一场苦涩但有意思的修行。(一)改掉这些坏习惯,还怕写不出健壮的代码?(二)改掉这些坏习惯,还怕写不出优雅的代码?(三)改掉这些坏习惯,还怕写不出优雅的代码?书接...

一猿小讲 1930

(二)改掉这些坏习惯,还怕写不出优雅的代码?

Code Review 是一场苦涩但有意思的修行。上期分享,通过示例剖析编码中一些经常触犯的性能点,以及编码时常犯的一些小毛病,来告诉新手程序员如何写出健壮的代码。咱们书接上篇,本次一起...

一猿小讲 1625

4个低效开发人员必有的坏习惯,你中枪了吗?

全文共1784字,预计学习时长6分钟 拍摄 Joshua Hoehne 来源 Unsplash 每个人都有坏习惯,毕竟金无足赤人无完人。 但作为一名开发人员,坏习惯会严重损害工作效率,还会影响周围的人。 杰克·坎菲尔德曾说:“习惯决定未来”。想成为一名真正的开发人员,就必须要改掉坏习惯。如果做到了,那么工作也就会事半功倍。 接下来,让我们看看有哪些你需要尽快改掉的坏习惯。 不懂...

读芯术的博客 5580

从低效到高效:TypeScript 开发中必须改掉的 5 个坏习惯

在 TypeScript 开发中,改掉这些坏习惯,能让我们更好地利用 TypeScript 的特性,编写出更健壮、更易维护的代码。从避免过度使用any类型,到充分利用接口、泛型、类型推断等特性,每一个改变都将提升我们的开发效率和代码质量。让我们在 TypeScript 的世界里,不断优化编程习惯,创造出更优秀的前端应用。到这里,这篇文章就和大家说再见啦!我的过往文章里还藏着许多干货,感兴趣的话也可以点击我的主页看看,下面的文章也很精彩,可别错过。💕。

前端开发探索之旅 996

9个要改掉的TypeScript坏习惯

为了提升TypeScript技能并避免常见的坏习惯,以下是九个需要改掉的坏习惯,帮助你编写更高效和规范的代码。

qq_66118130的博客 438

【架构之路】糟糕程序员的20个坏习惯,切记要改掉

优秀的程序员不仅仅是技术大牛,更是团队合作的关键推动者和创新的引领者。然而,就像任何其他行业一样,软件开发领域也存在着各种各样的挑战和问题。其中之一就是一些程序员养成的坏习惯,这些习惯不仅会影响个人的工作表现,也会对整个团队和项目产生负面影响。本文将探讨糟糕程序员常见的20个坏习惯,希望能够引起大家的注意,让我们共同努力改正这些不良习惯,提升软件开发的质量和效率,为创造更美好的未来贡献力量。软件开发是一项需要不断学习和提升的技能,而摆脱坏习惯是这个过程中至关重要的一步。

Venus's Blog 2万+

(四)改掉这些坏习惯,还怕写不出健壮的代码?(转载)

Code Review 是一场苦涩但有意思的修行。 (一)改掉这些坏习惯,还怕写不出健壮的代码? (二)改掉这些坏习惯,还怕写不出优雅的代码? (三)改掉这些坏习惯,还怕写不出优雅的代码? 书接上篇,本次继续探讨一下,该如何写出健壮的代码? 编码时:看似顺眼,实则不然。 举个栗子: String amount = request.getParameter(“amount”); // 校验金额小数点后最多两位小数 BigDecimal a = new BigDecimal(amount); if (a.d

shuirenbushijun的博客 177

每月改掉一个坏习惯,遇见更好的自己

-1- 有人说,人生不过是无数习惯的总和。 查尔斯·杜希格在《习惯的力量》中写道:「人每天的活动中,有超过40%是习惯的产物,而不是自己主动的决定。虽然每个习惯的影响相对来说比较小,但是随着时间的推移,这些习惯综合起来却对我们的人生有着巨大的影响。」 甚至可以说,一个人习惯的优劣,决定着我们将成为怎样的人。 习惯早睡早起的人,就更容易精力充沛;习惯熬夜打游戏的朋友,也更容易

Bingo 1338

TypeScript 必须改掉的 10 个坏习惯

随着 TypeScript 生态系统的进一步成熟,有些你以前觉得合理的做法,现在可能不太合理。接下来,我将分享10 个常见的 TypeScript 坏习惯,并告诉你如何改进它们,确保你的代码更健壮、性能更高、并且更加易于维护。依赖隐式类型检查而非明确的类型保护,可能导致你错过一些重要的类型问题。

csdn_wzq的博客 1202
上一篇: (四)改掉这些坏习惯,还怕写不出健壮的代码?
下一篇: (六)改掉这些坏习惯,还怕写不出精简的代码?
一猿小讲
博客等级 码龄15年 294粉丝 156原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值