JAVA-编码规范-代码风格-命名

本文探讨了JAVA编程中的代码风格和命名规范,强调清晰性和简洁性的重要性,并提出了选择合适风格以保持团队一致性。核心内容涵盖如何正确使用JAVA特性,避免陷阱,以及在命名上应遵循的原则,如表达清晰意图,避免误导,提高可读性,区分意思,以及谨慎使用缩写。同时,文章指出禁止使用魔鬼数字,提倡使用有意义的静态变量或枚举替代,以提升代码可理解和可维护性。

引言:

很多java规范,内容偏向于对排版的要求,对java语言特性使用上的注意事项描述较少,为了能帮助我们合理的使用java语言,规避语言陷阱,特发此专题博客。

代码总体原则:
1:清晰第一。清晰性是易于维护,易于重构的程序必须具备的特征;
2:简洁唯美。简洁就是易于理解并且易于实现;
3:选择合适的风格,团队保持一致;
除此之外,java编程还应注意一下几个方面;
1:正确使用java
    面向对象技术使得程序结构清晰,简单,提高了代码的重用性,但又隐藏了很多内部实现细节;很容易陷入陷阱。使用许多java特性时,要注意正确使用。比如:多线程并发,泛型,装箱数据类型,异常处理,对象克隆等;
2:安全高效。

核心内容:JAVA-编码规范-代码风格-命名

代码风格:

原则一   为包,类,方法,变量 取一个好名字,使代码易于理解
好的命名,特征如下:
(1)能清晰的表达意图:使用完整的描述性单词,避免使用单个字母,未形成惯例的缩写来命名。例如:int elapsedTimeInDays要比int d好得多;
(2)避免造成误导:有误导的名字比表达不清的名字更有危害性,比如String accountList其实并不是一个List,a=1;是数字1还是字母l;TTLCONFUSION于TTLC0NFUSION名称太相似;
(3)避免不必要的编解码:代码被人阅读的次数会很多,因此要注意可读性,避免不必要的人脑编解码,比如在JAVA中不建议采用匈牙利命名法,Java是强类型的语言,且IDE已经很先进,在编译时就能发现类型错误,因此匈牙利命名法无用武之地,况且它可能导致错误信息,比如PhoneNumber strPhone当类型变更后,名称未变更导致提供错误信息;
(4)能区分出意思:比如以下名称,product,productInfo,productDate表达的意思差不多,让人从名称并不能区分出它们各自代表的东西有什么不同,因此建议不要在变量/类名后加info,data,object等一般意义的词;
(5)不用或少用缩写:小于15个字母的一般不用缩写。超过15个字母的,可以采用去掉原因字母的方法或者行业内约定俗成的缩写,且缩写保持驼峰格式,不要编造不符合习惯的缩写。比如serviceDataPoint,可以缩写为svcDataPnt,不可缩写成SDP.如果要用缩写,仅第一个字母大写其余小写,例如:getHTTPRequest改为getHttpRequest;
规则1:禁止使用魔鬼数字
说明:直接使用数字造成代码难以理解,也难以维护。应采用有意义的静态变量或枚举来代替。
例外情况:有些情况下,如循环或比较时采用数字0,-1,1,这些情况可采用数字;

示例

	不好:int doorState = 5;
	推荐:static final int CLOSE = 3; int doorState = CLOSE;
		enum Signal
		{
			GREEN,YELLOW,RED
		}
		public class TrafficLight
		{
			Singal color = Signal.RED;
			public void change()
			{
				switch(color)
				{
					case RED:
						color = Signal.GREEN;
						break;
					case YELLOW:
						color = Signal.RED;
						break;
					case GREEN:
						color = Signal.YELLOW;
						break;
					default:
						color = Signal.RED;
				}
			}
		}
规则2 常量命名,由全大写单词组成,单词间用下划线分割,且用static final修饰;
示例:
错误:static int MAXUSERNUM = 200;   static String s = "Launcher"
推荐:static final int MAX_USER_NUM = 200; static final String APPLICATION_NAME = "Launcher"
规则3 变量,属性命名,使用名词,并采用首字母小写的驼峰命名法;
说明:驼峰命名是指第一个单词字母使用小写,剩余单词首字母大写其余字母小写的大小写混合发。含有
几个意义的属性,名称尽量包含复数;
示例:
不好:String customername;   List<String> u = new ArrayList<String>;
推荐:String customerName;   List<String> users = new ArrayList<String>;
规则4:方法的命名,用动词和动宾结构,并采用首字母小写的驼峰命名法;
说明:格式如下
get+非布尔属性名();
is+布尔属性名();
set+属性名();
has+名词/形容词
动词()
动词+宾语()
其中动词()主要用在动作作用在对象自身上,如document.print();

	 示例:不好:
		public String type();
		public boolean Finished();
		public void visible(boolean);
		public void DRAW()
		public void KeyListener(Listener);
		推荐:
		public String getType();
		public boolean isFinished();
		public void setVisible(boolean);
		public void draw();
		public void addKeyListener(Listener);
规则5:类和接口的命名,采用首字母大写的驼峰命名法;
说明:类的命名不应用动词,而应用名词,比如Customer,WikiPage,Account,避免采用类似Manager,
Processor,Data,Info这样模糊的词;
示例:不好:public class info{}
推荐:public class OrderInformation()
规则6:包的命名,由一个或若干个单词组成,所有的字母均为小写;
说明:包名采用域后缀倒置的加上自定义的包名,采用小写字母,都应该从com.taobao开头(除一些特殊原因),再加上产品名称和模块名称,部门内部应该规划好包名        的范围,防止产生冲突;
示例:com.taobao.mobilecontrol.views;
数据集介绍:火灾和烟雾目标检测数据集一、基础信息• 数据集名称: 火灾和烟雾目标检测数据集• 图片数量:训练集:7844张图片验证集:510张图片测试集:382张图片总计:8736张图片• 训练集:7844张图片• 验证集:510张图片• 测试集:382张图片• 总计:8736张图片• 分类类别:Fire(火灾):表示火焰或火灾区域,适用于火灾检测任务。Smoke(烟雾):表示烟雾区域,适用于烟雾识别任务。• Fire(火灾):表示火焰或火灾区域,适用于火灾检测任务。• Smoke(烟雾):表示烟雾区域,适用于烟雾识别任务。• 标注格式: YOLO格式,包含边界框和类别标签,适用于目标检测任务。• 数据格式: JPEG图片,来源于真实场景(如监控、航拍等),覆盖多样环境。二、适用场景• 火灾和烟雾检测系统开发: 用于构建AI模型,自动识别火焰和烟雾区域,适用于森林防火、城市安防监控等场景。• 安全监控与预警应用: 集成到CCTV或无人机系统中,实时检测火灾风险,提升应急响应效率。• 环境风险评估与管理: 支持火灾和烟雾的早期预警,用于环境监测、灾害预防等领域。• 计算机视觉研究: 促进目标检测算法在火灾安全领域的创新与应用。三、数据集优势• 精准标注: 数据集基于YOLO格式标注,边界框定位准确,确保模型训练可靠性。• 场景多样性: 数据来源于航拍、监控等多种真实场景,覆盖不同光照和环境条件,增强模型泛化能力。• 任务适配性强: 标注兼容主流深度学习框架(如YOLO),可直接用于目标检测模型开发。• 实用价值突出: 专注于火灾和烟雾检测,为公共安全、环境保护提供高质量数据支持。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值