Java编程规范(一)

2023-10-27

最近在看一本有关Java编程规范的书,书中精炼阐述了使用java语言时应该遵循的一些原则。接下来的一段时间我将在这里总结我的学习内容,也希望这一系列文章能够对有需要的人有所帮助。

不考虑任何编码规范的代码往往存在很多Bug,严重情况下还会制约软件开发的进度。良好的编程规范不仅能使团队里的每个人都能轻松的阅读并理解其他人的代码、减少Bug的产生,而且让后期的维护工作更加行之有效,从而使代码更具准确性、健壮性、可维护性与可扩展性。所以拥有良好一致的编程规范对于一个团队至关重要。

一、一般原则

(一)保持原有风格

在修改原有的软件时,应该保持原有代码的编写风格。

我们不应该在原有的代码中引入新的风格,在同一段代码中使用不同的编程风格会让我们的代码难以理解。同时我们也不应该重写旧的软件去迎合新的风格,这样很可能会使原来的程序产生严重的功能缺陷。

(二)坚持最小惊奇原则

在编码过程中尽量避免可能让软件用户感到意外的做法。

用户在使用软件中产生的任何交互行为必须都是可预见的,除非在说明文档中明确记录下所有的非常规行为并且说明这样做的理由。为了达到这一目的,在Java软件的开发过程中应该遵循以下几点:

  • 简单性:构建简单的类和方法。

  • 清晰性:明确每个变量、类、接口、方法、对象的用途。

  • 完整性:提供用户所期望的完整的程序功能,并且为此编写完整的说明文档。

  • 一致性:相似的实体,其外观和行为也要大致相同;反之亦然。

  • 健壮性:对错误和异常做出预测,并且在说明文档中提供相应的解决办法。

(三)第一次就做对

将以上的这些规则应用到我们编写的任何代码中,而不只是产品本身的代码。

通常情况下,那些原型代码最终都会被写入成品软件中。由于我们一开始就已经遵循了编码规范,所以我们不需要为特定的产品修改代码规范。那些阅读我们代码的人也会从中受益匪浅。

(四)记录所有非规范行为

没有什么标准是完美且能够放之四海而皆准的,有时候你会发现自己不得不偏离已经建立好的标准体系。

标准并不是适用于任何地方,在打破一条规则之前,我们需要确保我们已经对这条准则有了深入的理解而且清楚打破规则后的后果。此外,我们应该在文档中记录下这样做的理由。

以上就是一般原则的内容,没有涉及具体的代码,但是我们在进行下面的学习或者编码之前应该对以上的内容有所理解。

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

Java编程规范(一) 的相关文章

随机推荐

  • 解决idea项目没有蓝色小方块

    导入项目后 把项目中的几个子moudle复制了一份 作为一个新模块 结果发现 项目右下角没有 蓝色小方块 因此造成maven不能识别 如下图 解决方式 在右边侧栏 maven 面板 点击 选择该项目中的pom xml文件即可
  • linux安装时 dev sda4,VMvare在CentOS7.4安装iscsi共享盘

    VMvare 在 CentOS7 4 安装 iscsi 共享盘 1 在节点 1 上添加一个 20g 的存储并 reboot 1 1 查看新添加的磁盘 root xmc1 fdisk l Disk dev sda 32 2 GB 322122
  • python多进程和多线程看这一篇就够了

    脑海中关于进程和线程的概念一直很模糊 什么时候该用多进程 什么时候该用多线程总是搞不清楚 同时python因为历史遗留问题存在GIL全局锁 就让人更加困惑 这一篇就完整整理一下python中进程和线程的概念和实现 文章目录 进程和线程 GI
  • 逻辑Flask——Flask模板

    文章目录 一 简单模板 二 模板传参 三 jinja2内置过滤器 四 Jinja2自定义过滤器 通用过滤器 自定义时间过滤器 五 控制语句 1 if 语句 2 for in语句 列表 遍历字典 获取当前遍历状态 六 宏 6 0 宏的基本模板
  • Python 基础知识7 集合

    python 集合 创建集合 重复的自动被过滤 parame apple orrange banana pear pear print parame parame1 set bird dog pig print parame1 parame
  • 各平台电脑开启虚拟化的方法

    1 Intel平台笔记本 进入BIOS 选择 Configuration 选项 找到 Intel Virtual Technology 改成Enable 2 AMD平台笔记本 进入BIOS 选择 Configuration 的选项 找到 S
  • 使用非负最小二乘回(NNLS)归进行细胞类型转移

    2019年发表在Nature上的文章 The single cell transcriptional landscape of mammalian organogenesis 在方法部分提到 使用NNLS non negative line
  • 西门子传动系统出现这些故障提示原因分析

    1 F002 Pre charging 预充电故障 对整流单元来说 其可能原因为 主进线开关断开或没有闭合 整流单元 例 复卷机整流单元四个熔断器断路 导致传动点出现F008 直流母线电压过低 在更换熔断器后 启动整流器时出现F002 原因
  • bios sgx需要开启吗_华硕主板BIOS解读:新手装机必备篇(必须收藏)

    史上最全BIOS解读 中英文对译 一字一句解析 让你从此不在BIOS中迷路 本期讲解模板BIOS来自华硕TUF X570 GAMING WIFI 今天讲解的内容为新手装机必须经历的内容 新手装机常用到的BIOS选项 并且附上中英文翻译对照
  • 快速排序算法的三种实现

    1 普通快速排序 快速排序思路 随机取一个标定点 v 将 v 放置到合适的位置 保证 v 左边的元素都小于等于 v v 右边的元素都大于 v 然后再继续分别对左边元素和右边的元素做同样的排序动作 直到整个数组有序 那么怎么实现这个快速排序呢
  • Vue-Loader 打包单文件组件实战

    本文是我在学习过程中记录学习的点点滴滴 目的是为了学完之后巩固一下顺便也和大家分享一下 日后忘记了也可以方便快速的复习 Vue Loader 打包单文件组件 前言 一 webpack 结合 Vue Loader 打包单文件组件基本认识 1
  • java 分配算法

    原文地址 http blog csdn net qq 30085577 article details 52756715 版权声明 本文为博主原创文章 未经博主允许不得转载 java view plain copy 随机分配 public
  • Mathorcup数学建模竞赛第二届-【妈妈杯】A题:最佳飞行队列(附带赛题解析&获奖论文及MATLAB代码)

    目录 赛题描述 论文 摘要 一 问题重述 二 模型假设及符号说明 1 模型假设
  • you need to resolve your current index first 解决办法

    前些天发现了一个巨牛的人工智能学习网站 通俗易懂 风趣幽默 忍不住分享一下给大家 点击跳转到教程 从一个分支A切换到另一个分支B后 对切换后的B分支进行pull操作 因为pull操作实际上包含了fetch merge操作 在执行 merge
  • Box2D一:基础知识

    一 box2d基础知识 1 关于 Box2D 是一个用于游戏的 2D 刚体仿真库 从游戏的视角来看 物理引擎就是一个程序性动画 procedural animation 的系统 而不是由动画师去移动你的物体 1 核心概念 刚体 rigid
  • 量化建模时常见的数据穿越问题

    这篇文章将会介绍一下量化建模时常见的数据穿越问题 何为数据穿越 对于t时刻训练得到的模型必须用t时刻之前的数据训练 如果t时刻用到t时刻以后的数据则会产生数据穿越问题 我碰到比较多的数据穿越问题主要有三种 1 训练集和测试集有交叉 2 特征
  • Kali 安装之腾讯云经验遇到坑

    目录 一 准备工作 二 制作镜像 导入kail ios镜像 安装KALI系统 KALI系统安装过程中出现报错 安装 cloud init 制作云镜像 VMDK QCOW 腾讯云导入kali镜像 使用问题 1 无法ssh协议登录 2 重新命名
  • FFMPEG录屏(11)---- aresample重采样pcm

    本文利用ffmpeg中的filter对pcm数据进行重采样 参考官网例子 filtering audio c 初始化filter int filter aresample init const FILTER CTX ctx in const
  • 好像还挺好玩的GAN6——Keras搭建LSGAN最小二乘GAN

    好像还挺好玩的GAN6 Keras搭建LSGAN最小二乘GAN 学习前言 什么是LSGAN 神经网络构建 1 Generator 2 Discriminator 训练思路 实现全部代码 学习前言 据说这个大宝贝的生成效果比较好 让我试试 什
  • Java编程规范(一)

    最近在看一本有关Java编程规范的书 书中精炼阐述了使用java语言时应该遵循的一些原则 接下来的一段时间我将在这里总结我的学习内容 也希望这一系列文章能够对有需要的人有所帮助 不考虑任何编码规范的代码往往存在很多Bug 严重情况下还会制约