Java基础,保持编程设计风格,你也能成就大师风范

  • 1 前言
  • 2 源文件
    • 2.1 文件注释
    • 2.2 包和引入
    • 2.3 缩进排版
    • 2.4 行长度和换行
    • 2.5 命名规则
    • 2.6 语句编写规则
    • 2.7 空行应用规则
  • 3 码农来洞见

1 前言

很多时候,开发人员都不太注意自己的编程风格,他们把主要精力都放到了功能的实现上。这本来就是无可厚非的,但是不得不提醒的是好的编程设计风格同样也至关重要。

一个杂乱无序的程序代码让人看后有一种心烦意乱的感觉,因此抱怨、怀疑开发人员的素质和技术水平。如果这个系统想持续移交下去的可能性就几乎没有了,即便是原来人马长此以往也会茫然无措。这也是造成软件公司的人员流动频繁的一个因素。如果软件因无法继续开发、维护而半途夭折,这给企业带来的损失是不言而喻的。

因此,从近期利益来看是应该着眼于功能的实现,虽能解一时之渴,而不思长远之计,将会损失惨重!很多优秀公司,宁愿培养没有实际开发经验的员工,也不愿和养成不良设计风格的开发人员共事。因为,优秀的软件企业都有自己一套健全、成熟的程序设计风格规范文档,用以规范开发人员编写代码的风格。

下面就详细介绍Java编程设计时应该注意的书写格式,应用好这些格式也能写出大师级别的代码。

2 源文件

Java文件分为Java源文件和Java字节码文件两种类型。

文件类型 文件后缀
Java源文件 .java
Java字节码文件 .class

Java源文件由开发人员创建,Java字节码文件是通过Java虚拟机编译Java源文件生成的。我们所说的编程设计风格是对Java源文件而言。在Java源文件中应该包含一个单一的类或接口。它由被空行分割而成的段落以及标识每个段落的可选注释共同组成。通常来讲,一个Java源文件不应该超过2000行。

Java 源文件还遵循以下规则:

开头文件注释
包名和引入声明
类或接口声明

2.1 文件注释

所有的Java源文件都应该在开头有一段注释,其中包括类名、日期、功能和版权等。这些注释信息是为了生成Java API标准文档做准备的。

/** @ClassName: 类名* @Description: 功能说明* author: 作者* @date: 日期* Copyright (c): 版权*/

2.2 包和引入

我们在做Java开发时经常会引入(import)Java核心类或第三方软件厂商的类。一般情况下,这些类都是封装在一个包(package)里面。包的出现使类有了空间上的划分。如下代码所示:

package com.fs.core.util;import java.util.Collection;

在Java语言中包的命名规则如下所示:

包名必须独一无二不可重复
包名应该是小写的ASCII字母
包名一般由域名后缀+公司域名+功能模块+其它组成
例如:

com.baidu.util;
java.lang
org.springframework.boot.SpringApplication

2.3 缩进排版

Java源文件一般是以四个空格键为单位作为缩进排版的一个单位。当然这并没有权威的文献作为参考,只是目前普遍认为比较清晰合理的格式。

2.4 行长度和换行

一般来说Java的代码行长度应该小于80个字符,这是因为目前很多终端和工具不能很好的处理。建议在70个字符左右。

当完整的一行代码不能在一行很好的排版时,我们可以根据下面的规则进行拆行编排:

在逗号后换行
在运算符前换行
换行的代码应该与同级别的代码行左对齐
如果换行出现差距较大且混乱时,我们可以适当采用Tab键(8个空格)处理

2.5 命名规则

类或接口
类或接口的的命名,第一个字母大写,在多个单词混合的情况下,第一个单词后的所有单词的第一个字母大写,其余字母小写,代码示例:

//类
public class SysUser{}
//接口
public interface SysUserDao {}

方法
方法的命名,第一个字母小写,在多个单词混合的情况下,第一个单词后的所有单词的第一个字母大写,其余字母小写,代码示例:

 boolean addUser(SysUser sysUser);List<SysUser> getList();

如果该方法在软件产品的不断升级中已经不建议使用了,可以在方法声明注释部分下添加注解@deprecated。

变量
变量命名规则是,除常规变量外,第一个字母小写,在多个单词混合的情况下,第一个单词后的所有单词的第一个字母大写,其余字母小写。

private String userName;
常量命名规则是,一般采用大写字母,单词之间用下划线“_”分割,

private static final int DEFAULT_POOL_SIZE=10

2.6 语句编写规则

在Java编程设计中,语句按其自身特点可以分为:简单语句与复合语句。

简单语句
简单语句一般包括单行计算语句、赋值语句和返回语句。它们共同的特点是仅占用一个代码行完成相关操作。一行出现多个简单语句是不可取的。

复合语句
复合语句可以分为:分支语句、循环语句和异常语句。

if else语句为了代码更加安全和清晰,建议代码块为单行的语句也通过{}将其闭合。

 if (condition) { statements; }if (condition) { statements; } else { statements; }if (condition) { statements; } else if (condition) { statements; } else{ statements; }

for 语句的初始化或更新子句中使用逗号时,避免因使用三个以上变量,而导致复杂度提高。

 for (initialization; condition; update) { statements; }

2.7 空行应用规则

空行将逻辑相关的代码段分隔开,以提高可读性。

使用两个空行隔开
在同一个源文件中类声明和接口声明之间

使用一个空行隔开
两个方法之间;方法内部的局部变量和方法的第一条语句之间;块注释和行注释前;在一个方法的两个逻辑段之间;

3 码农来洞见

下面的例子是一个用户管理的业务类,展示了如何合理布局一个包含单一公共类的Java源程序。(编辑器代码排版可能会出现错乱,仅供参考)

/** http://www.apache.org/licenses/LICENSE-2.0* Copyright (c) 2021 fullset* @ClassName SysUserService* @author 码农洞见* @date 2021/6/5 10:52* @Description 用户管理*/
package com.fs.base.service;import com.fs.orm.entity.SysUser;
import com.fs.orm.vo.form.SysUserForm;
import com.github.pagehelper.PageInfo;import java.util.List;
import java.util.Map;public class SysRoleServiceImpl implements SysRoleService {/*** 获取全部用户* @return*/List<SysUser> getAll(){QueryWrapper qWrapper = new QueryWrapper();//过滤条件qWrapper.eq("is_deleted", 0);return sysUserDao.getList(qWrapper);}/*** 添加用户* @return*/SysUserForm addUser(SysUserForm sysUserForm) {SysUser sysUser = new SysUser();BeanUtil.copyAttribute(sysUserForm, sysUser);boolean result;try {result = sysUserDao.addUser(sysUser);}catch (Exception e){throw new Exception("sql语法错误!");}if(!result){throw new BizException(BizExceptionEnum.SYS_USER_ADD_ERROR);}return sysUserForm;}/*** 编辑用户表单* @return*/SysUserForm editForm(Long id){SysUser sysUser = new SysUser();BeanUtil.copyAttribute(sysUserForm, sysUser);try {sysUser = sysUserDao.editUser(sysUser);}catch (Exception e){// throw new Exception("sql语法错误!");}return sysUserForm;}/*** 逻辑删除用户* @param id 用户id* @return*/boolean logicalDeleteById(String id){return sysUserDao.logicalDeleteById(id);}}

以上就是今天分享的内容,Java编程设计就好比书法,只要按规范坚持下去,你也能成就大师的风范。我是码农洞见,为初学者提供学习指南,为从业者提供参考价值。我坚信码农也具有产生洞见的能力。欢迎大家关注交流!

Java基础,保持编程设计风格,你也能成就大师风范相关推荐

  1. JAVA基础 网络编程

    JAVA基础 网络编程 网络我们每天都会用到的,在我们生活中占的地位也在不断的提高,我们下面就简单了解下网络编程的内容. 想要学习网络编程,首先就需要了解网络编程包含哪些内容. 网络编程包括 IP节点 ...

  2. JAVA基础入门编程题练习(一)

    JAVA基础入门编程题练习(一) 1.设计一个学生类Student和它的一个子类Undergraduate.要求如下: (1) Student类有name和age属性,一个包含两个参数的构造方法,用于 ...

  3. 1-1 Java基础和编程概述

    计算机操作系统 现今的操作系统可以分为3大类: Windows:95.98.2000.XP.vista.7.8.10 Unix: 服务器端 Linux:免费开源(CentOS.Ubuntu.Debia ...

  4. 学习笔记-java基础-网络编程

    刚在培训机构学习完JAVA基础和WEB,感觉边学边忘.就把这作为记忆的笔记,我也不知道要不要记笔记,写在本子上太耗费时间了. 一.要想实现网络通信,首先要解决两个问题: ①:如何从网络中定位到一台或多 ...

  5. 50道JAVA基础算法编程题【内含分析、程序答案】【建议收藏】【建议收藏】【建议收藏】

    非常基础的题目,但是想学好Java它真的是基础,基础有多重要我就不再废话,重要的事情说三遍[建议收藏][建议收藏][建议收藏]. [程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一 ...

  6. Java基础-GUI编程讲解

    GUI编程 组件 窗口 弹窗 面板 文本框 列表框 按钮 图片 监听事件 鼠标 键盘事件 破解工具 简介 GUI的核心技术:Swing和AWT 1.界面不美观 2.需要jre环境 3.GUI是MVC的 ...

  7. IT十八掌Java基础 网络编程

    网络编程 计算机网络 是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统. 网 ...

  8. java基础--网络编程

    UDP协议和TCP协议 UDP协议和TCP协议都是传输层的协议,都是端到端协议 区别: UDP协议面向无连接,像发短信,寄信,先发送的消息未必先到达,不安全,效率高,只区分发送端和接收端,而不区分客户 ...

  9. Java基础---网络编程

    第一讲     概述 1.网络模型:OSI参考模型和TCP/IP参考模型 图示: 一般来说开发处于传输层和网际层,应用层为:FTP和HTTP协议等,传输层为:UDP和TCP等,网际层为:IP. 通常用 ...

最新文章

  1. Erlang(起个中文名:易浪)不能错过的盛宴
  2. 20175208『Java程序设计』课程 结对编程练习_四则运算
  3. 量子计算时代快了!量子计算机的架构,硬件,软件等都有成果!
  4. 【MM模块】Subcontracting 委外加工(外包)—2
  5. 对象水平对齐,并且按照竖直方向排列
  6. Tensorflow-gpu的方式
  7. 第十讲:Obj-C Blocks 应用
  8. latex填充段落之间的留白
  9. Python——使用Flask框架封装接口
  10. 算法学习(二)快速排序(下)
  11. 【Nodejs开发】第2章 网站首页的布局
  12. 用Python对自己的文章做文本分析
  13. 知到大学生创业基础(上海理工大学)期末考试试题汇总(含答案)
  14. 记事本写小程序C语言,抖音上用记事本编写爱心小程序教程
  15. xshell 执行脚本API介绍(附带xsh的python包)
  16. 007 锁存器和触发器
  17. 亲生骨肉 窥视父母遗产 为了继承遗产竟用这种方式替代...
  18. Android签名证书的生成
  19. BadBoy乱码处理
  20. 计算机桌面输入法怎么恢复,电脑桌面系统输入法不见了?输入法不见了找回方法/步骤...

热门文章

  1. Android系统服务Fuzz测试
  2. 你必须知道的10个常见黑客技术
  3. Linux内核驱动模块测试 hello.ko
  4. 基于MuPDF和Qt的PDF阅读器的开发
  5. 虚拟贝斯手合集 UJAM Instruments Virtual Bassists Bundle WiN-MAC
  6. 计算机图形学(消隐)
  7. Kotlin apply方法
  8. 贪吃蛇游戏(面向对象)
  9. 四、Ribbon详解
  10. explain之extra