Java基础,保持编程设计风格,你也能成就大师风范
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基础,保持编程设计风格,你也能成就大师风范相关推荐
- JAVA基础 网络编程
JAVA基础 网络编程 网络我们每天都会用到的,在我们生活中占的地位也在不断的提高,我们下面就简单了解下网络编程的内容. 想要学习网络编程,首先就需要了解网络编程包含哪些内容. 网络编程包括 IP节点 ...
- JAVA基础入门编程题练习(一)
JAVA基础入门编程题练习(一) 1.设计一个学生类Student和它的一个子类Undergraduate.要求如下: (1) Student类有name和age属性,一个包含两个参数的构造方法,用于 ...
- 1-1 Java基础和编程概述
计算机操作系统 现今的操作系统可以分为3大类: Windows:95.98.2000.XP.vista.7.8.10 Unix: 服务器端 Linux:免费开源(CentOS.Ubuntu.Debia ...
- 学习笔记-java基础-网络编程
刚在培训机构学习完JAVA基础和WEB,感觉边学边忘.就把这作为记忆的笔记,我也不知道要不要记笔记,写在本子上太耗费时间了. 一.要想实现网络通信,首先要解决两个问题: ①:如何从网络中定位到一台或多 ...
- 50道JAVA基础算法编程题【内含分析、程序答案】【建议收藏】【建议收藏】【建议收藏】
非常基础的题目,但是想学好Java它真的是基础,基础有多重要我就不再废话,重要的事情说三遍[建议收藏][建议收藏][建议收藏]. [程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一 ...
- Java基础-GUI编程讲解
GUI编程 组件 窗口 弹窗 面板 文本框 列表框 按钮 图片 监听事件 鼠标 键盘事件 破解工具 简介 GUI的核心技术:Swing和AWT 1.界面不美观 2.需要jre环境 3.GUI是MVC的 ...
- IT十八掌Java基础 网络编程
网络编程 计算机网络 是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统. 网 ...
- java基础--网络编程
UDP协议和TCP协议 UDP协议和TCP协议都是传输层的协议,都是端到端协议 区别: UDP协议面向无连接,像发短信,寄信,先发送的消息未必先到达,不安全,效率高,只区分发送端和接收端,而不区分客户 ...
- Java基础---网络编程
第一讲 概述 1.网络模型:OSI参考模型和TCP/IP参考模型 图示: 一般来说开发处于传输层和网际层,应用层为:FTP和HTTP协议等,传输层为:UDP和TCP等,网际层为:IP. 通常用 ...
最新文章
- Erlang(起个中文名:易浪)不能错过的盛宴
- 20175208『Java程序设计』课程 结对编程练习_四则运算
- 量子计算时代快了!量子计算机的架构,硬件,软件等都有成果!
- 【MM模块】Subcontracting 委外加工(外包)—2
- 对象水平对齐,并且按照竖直方向排列
- Tensorflow-gpu的方式
- 第十讲:Obj-C Blocks 应用
- latex填充段落之间的留白
- Python——使用Flask框架封装接口
- 算法学习(二)快速排序(下)
- 【Nodejs开发】第2章 网站首页的布局
- 用Python对自己的文章做文本分析
- 知到大学生创业基础(上海理工大学)期末考试试题汇总(含答案)
- 记事本写小程序C语言,抖音上用记事本编写爱心小程序教程
- xshell 执行脚本API介绍(附带xsh的python包)
- 007 锁存器和触发器
- 亲生骨肉 窥视父母遗产 为了继承遗产竟用这种方式替代...
- Android签名证书的生成
- BadBoy乱码处理
- 计算机桌面输入法怎么恢复,电脑桌面系统输入法不见了?输入法不见了找回方法/步骤...