关于打代码的一些些心得

2023-11-20

些许废话

零零散散也正式以打代码为生快一年半了,从代码写的稀碎到稍微能总结出一点东西,也算是一个一直在向上缓慢行走的状态了

很难说我喜欢代码这件事,原本选择也只是为了糊口,但从面向百度编程,到一点点写出带着自己风格的代码,再到可以略微静下来看一点技术博客,再到出了一点新技术会有好奇想去看看

让我觉得,也许我是适合的,也许会慢慢变得喜欢

一直很喜欢雷军,觉得在一众商人里,他的气质总是格格不入,一直记得他那句 “我不会写诗,但有人说我写的代码像诗一样优雅”

希望有一天,我也是在写诗

一些零碎的注意事项

1、对于非必传字段,对于查询条件,对该字段进行判空并判null

2、永远也不要返回null

3、对于数据库里的查询,一定要考虑到查询不到要怎么办,返回为空要怎么办,成为肌肉记忆,避免空指针异常,一个成熟的小白,代码里不该有空指针异常这种东西

4、application.yml中设置成为配置项的,在注入时一定要设置为初始值,以防止没有该配置时报错

5、当数据不一致时,先查前端传送的参数是否一致,再看后端生成的数据

6、null!=a 优于 a!=null

7、“admin”.equals(str) 优于 str.equals(“admin”),因为str为空会导致空指针异常

8、长参数封装为DTO

9、if中的条件过于复杂时,封装为一个方法,返回true/false,提高代码可读性

10、在使用java8的流操作时,一定要考虑到null值的状况

11、一定一定要模拟完整的数据进行测试

12、要考虑到模拟数据不匹配现在状态的情况,例如从url的第三个/开始截取时,要考虑没有第三个/时该怎么办以及出现了根本就没有/的情况该怎么办

13、在需要请求其他接口时,请求体,请求url,返回数据统统打印成日志

14、过大的非必需或非常用查询字段不要存入数据库,会导致查询变慢,影响整个程序的运行,最好单独存一个表

15、对于一些解析和获取别人接口的数据,一定要考虑到如果解析失败或获取不到数据时是否需要重试,不要只考虑解析成功的情况,如Base64编码时,会出现图片url下载失败的问题

16、不要频繁的在循环里new对象,可以适当的new对象,如在遍历时,需要对map或list进行增减操作时可以new对象,map和list在for循环中遍历时都不能进行remove操作,需注意

17、在测试时,要尽可能全面的考虑到空值的情况,任何条件的空值都会导致程序突然报错,宁愿多写一些if条件来判断每一个有可能为空的对象,也不要因为代码繁琐而放过一个为空的对象

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

关于打代码的一些些心得 的相关文章

  • 策略模式还是命令模式?

    假设我有一个金融交易列表 我需要针对这些交易执行一系列验证规则 一个例子是我有一笔购买产品的交易 但是首先我需要验证交易中的帐户是否有足够的可用资金 产品没有售完等 由于这些规则 交易将是标记为拒绝 并应指定错误代码 当然 我正在考虑用一个
  • 将 MouseListener 添加到面板

    我正在尝试将鼠标操作添加到我的面板中 这就是程序应该做的事情 编写一个程序 允许用户通过按三下鼠标来指定一个三角形 第一次按下鼠标后 画一个小点 第二次按下鼠标后 绘制一条连接前两个点的线 第三次按下鼠标后 绘制整个三角形 第四次按下鼠标会
  • 在 Java 中使用 Batik 检查和删除 SVG 中的属性

    这个问题基本上说明了一切 如何检查 SVG 是否具有 viewBox 属性 我正在使用蜡染库 我需要这个 因为我需要 至少 通知用户有一个 viewBox 属性 我可以删除它吗 使用 org w3c dom 类 您可以按照以下方式做一些事情
  • 使类只能从特定类实例化

    假设我有 3 节课class1 class2 and class3 我怎样才能拥有它class1只能通过实例化class2 class1 object new class1 但不是 class3 或任何其他类 我认为它应该与修饰符一起使用
  • 如何在url请求中发送数组

    我的要求如下 我想给出演员姓名 开始日期 结束日期并获取他在该时期出演的所有电影 因此 我的服务请求是这样的 http localhost 8080 MovieDB GetJson name Actor startDate 20120101
  • Java 卡布局。多张卡中的一个组件

    一个组件 例如JLabel 在多张卡中使用CardLayout 目前看来该组件仅出现在它添加到的最后一张卡上 如果有办法做到这一点 我应该吗 这是不好的做法吗 或者有其他选择吗 你是对的 它只出现在 添加到的最后一张卡 中 但这与CardL
  • 运行 java -jar 时出现 java.lang.ClassNotFoundException

    我正在使用 ant 来构建我的build xml文件 它编译正常 但随后得到运行时java lang NoClassDefFoundError通过 运行生成的 jar 时java jar my jar jar 似乎这个问题出现了很多 但没有
  • 在哪里保存选项值、重要文件的路径等[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在创建一个程序 需要设置一些选项值以及图像文件的一些路径 SQLite 数据库的路径 有关各种按钮上文本的一些信息 有关要使用哪个数据库的信
  • JavaFX使节点覆盖父节点边框颜色

    我有一个如下所示的节点 仅使用 css 我希望标签覆盖其父边框颜色 因此标签下方的边框颜色部分变得不可见 我用来制作这个边框的CSS代码 fx border color black fx border width 3 fx border r
  • 在java中将字符串日期转换为美国格式

    我有下面的代码 其中日期为字符串类型 我必须将其设置为美国格式 所以下面我已经展示了它 private static final SimpleDateFormat usOutputDate new SimpleDateFormat MM d
  • 无法从资源加载图片

    So I am trying to load a image file from a resource so that when I export my application into a jar file it could be use
  • java setFullScreenWindow 在 Mac 中隐藏登录对话框

    我使用的是全屏窗口 类似于屏幕保护程序 使用这里的方法 GraphicsEnvironment getLocalGraphicsEnvironment getDefaultScreenDevice setFullScreenWindow t
  • 拆分/标记化/扫描字符串并注意引号

    Java中是否有默认 简单的方法来分割字符串 但要注意引号或其他符号 例如 给定以下文本 There s a man that live next door in my neighborhood and he gets me down Ob
  • JUNIT 测试 void 方法

    我有一个充满 void 方法的 java 类 我想进行一些单元测试以获得最大的代码覆盖率 例如我有这个方法 protected static void checkifValidElements int arg1 int arg2 metho
  • 在 Java 中创建 XML 文件的最佳方法是什么?

    我们目前使用 dom4j 来创建 XML 文件 不过 我猜现在有更好的东西了 如果我们使用的是 Java 1 6 或更高版本 那么在编写 XML 文件时最好使用什么类 运行速度最快 使用简单 我不需要构建一个 DOM 然后编写整个 DOM
  • BadPaddingException:无效的密文

    我需要一些帮助 因为这是我第一次编写加密代码 加密代码似乎工作正常 但解密会引发错误 我得到的错误是 de flexiprovider api exceptions BadPaddingException 无效的密文 in the 解密函数
  • Android UnityPlayerActivity 操作栏

    我正在构建一个 Android 应用程序 其中包含 Unity 3d 交互体验 我已将 Unity 项目导入 Android Studio 但启动时该 Activity 是全屏的 并且不显示 Android 操作栏 我怎样才能做到这一点 整
  • 受信任的 1.5 小程序可以执行系统命令吗?

    如果是的话 这个能力有什么限制吗 具体来说 我需要以 Mac OSX 为目标 我以前用过这个在 Windows 系统上启动东西 但从未在 Mac 上尝试过 public void launchScript String args Strin
  • 如何使用自定义 JDK 构建 Jenkins 项目?

    我有一个常规的 Jenkins 实例 运行一些多分支管道 该实例在 JDK 11 上运行 因为 Jenkins 并不真正支持更高版本 没关系 但不好的是 我的所有管道似乎也都受到 Java 11 的限制 Jenkins 仅使用它自己也使用的
  • 为什么java.lang.Cloneable不重写java.lang.Object中的clone()方法?

    Java 规范java lang Cloneable接口将自身定义为表示扩展它的任何对象也实现了clone 休眠的方法java lang Object 具体来说 它说 一个类实现了Cloneable接口来指示java lang Object

随机推荐

  • 操作系统中的线程&进程和同步&异步和并发&并行

    操作系统中的线程 进程和同步 异步和并发 并行 一 进程和线程 1 1 进程 1 2 线程 1 3 实现多任务的方法 1 3 1 使用多进程实现多任务 1 3 2 使用多线程 单个进程包含多个线程 实现多任务 1 3 3 使用多进程 多进程
  • vue+element中如何设置单个el-date-picker开始时间和结束时间关联

    功能 选了开始时间 则结束时间只能选择开始时间之后的 选了结束时间 则开始时间只能选择结束时间之前的 重点是picker options属性 图示 代码展示 body 内部
  • JavaScript设计模式-02-单例模式

    Javascript 设计模式 02 单例模式 简介 单例就是保证一个类只有一个实例 实现的方法一般是先判断实例是否存在 如果存在直接返回 如果不存在就创建了再返回 确保了一个类只有一个实例对象 在JavaScript里 单例作为一个命名空
  • AIGC(AI Generated Content,人工智能生成内容)

    AIGC AI Generated Content 人工智能生成内容 什么是AIGC AIGC Artificial Intelligence Generated Content AI Generated Content 中文译为人工智能生
  • 读《effective modern c++》笔记总结

    文章目录 一 类型推导与auto 模板类型推导 ParamType是一个指针或引用 但不是通用引用 ParamType是一个通用引用 ParamType即不是指针也不是引用 数组实参 函数实参 auto类型推导 二 decltype的理解
  • make menuconfig报错:Build dependency: Please install Git (git-core) >= 1.6.5

    版本号为chaos calmer 15 05 1 注意 在执行make menuconfig的时候 会报一个错误 如下 Build dependency Please install Git git core gt 1 6 5 这是open
  • 节流与防抖

    1 我们先了解为什么要节流和防抖 我们给一个inpu输入框绑定一个oninput事件 此时我们输入 前端开发 四个字 我们 观察以下后台打印
  • 树莓派视觉小车 -- 小球追踪(颜色追踪)(OpenCV色彩空间HSV)

    目录 效果展示 基础理论 HSV 为什么用HSV空间而不是RGB空间 HSV 1 Hue 色相 2 Value 明度 3 Saturation 饱和度 一 初始化 滑动条初始化 1 创建回调函数 2 窗口设置 名称 3 滑动条设置 代码 二
  • Linux环境安装开发grafana插件(一)试水

    继续我们探索grafana结合Skywalking 为了更加灵活的应用图表 尝试开发grafana的panel插件 但试水并不顺利 所以把第一步目标缩小到安装一个自定义插件 参考了不少文章 终于成功 但各类参考要么比较碎片化 要么有些地方过
  • Typescript学习笔记

    Typescript学习笔记 什么是Typescript TypeScript是一种由微软开发的开源 跨平台的编程语言 它是JavaScript的超集 最终会被编译为JavaScript代码 TypeScript适合用来编写基于node的大
  • def __int__(self):的作用

    def int self 名称 初始化方法 构造方法 构造函数 作用 当我们创建好一个实例对象之后 会自动调用这个方法 来初始化这个对象 实例化后传入的参数会到此方法中来 构造方法 self name name此种语句将参数赋给实例 此类中
  • vue3+ts+echars实现中国为中心中文版世界地图(包含配置文件)

  • Python ERROR: Could not install packages due to an OSError:XXX解决方法

    Python ERROR Could not install packages due to an OSError XXX解决方法 文章目录 Python ERROR Could not install packages due to an
  • 滑动窗口专题(字节面试题)

    关键字 连续数组 字串 1 和为s的连续正整数序列 剑指offer57 II 输入一个正整数 target 输出所有和为 target 的连续正整数序列 至少含有两个数 序列内的数字由小到大排列 不同序列按照首个数字从小到大排列 示例 1
  • Linux下软件安装的命令

    源码安装 以源代码安装软件 每次都需要配置操作系统 配置编译参数 实际编译 最后还要依据个人喜好的方式来安装软件 这个过程很麻烦很累人 RPM安装软件的默认路径 注意 etc 配置文件放置目录 usr bin 一些可执行文件 usr lib
  • [计算机毕业设计]改进粒子群算法的监测资源调度

    前言 大四是整个大学期间最忙碌的时光 一边要忙着准备考研 考公 考教资或者实习为毕业后面临的就业升学做准备 一边要为毕业设计耗费大量精力 近几年各个学校要求的毕设项目越来越难 有不少课题是研究生级别难度的 对本科同学来说是充满挑战 为帮助大
  • 基于Hexo+Matery的LuckyBlog开源搭建教程

    前言 之前在B站上发布了个人博客的视频 播放量也破千了 有网友私聊也想要搭建一个这样的博客 经过一段时间的准备 现将本人博客的源代码公布出来 大家只需要根据以下的步骤 即可快速搭建一个漂亮完善的博客 0x01 LuckyBlog 介绍 上一
  • OJ编程之多组输入----牛客网----BC41 你是天才吗?

    OJ编程之多组输入 牛客网 BC41 你是天才吗 题目要求 错误代码 include
  • JavaScript 简介

    简介 JavaScript是一门脚本语言 这门语言主要用于 HTML 和 web 更可广泛用于服务器 PC 笔记本电脑 平板电脑和智能手机等设备 前端开发中JavaScript代码可以被插入到HTML页面代码中使用 并由浏览器来执行 示例
  • 关于打代码的一些些心得

    些许废话 零零散散也正式以打代码为生快一年半了 从代码写的稀碎到稍微能总结出一点东西 也算是一个一直在向上缓慢行走的状态了 很难说我喜欢代码这件事 原本选择也只是为了糊口 但从面向百度编程 到一点点写出带着自己风格的代码 再到可以略微静下来