【日常】一名开发人员总结的好习惯,欢迎补充

文章目录

  • 前言
  • 首先需要考虑(重要)
    • 设计和架构
    • 代码质量
    • 测试和调试
    • 性能优化
  • 编程的好习惯
    • 代码可读性
    • 模块化和重用性
    • 单一职责
    • 异常处理
    • 注释和文档
    • 常见的Java编码规范的例子
    • 下面是一个示例代码,展示了一些编码规范的应用
    • 还有一些其他的编码规范值得注意
    • 下面是一个继续展示编码规范的示例代码
  • 总结

前言

程序员对代码注释可以说是又爱又恨又双标……你是怎么看待程序员不写注释这一事件的呢?

首先需要考虑(重要)

设计和架构

在开始编码之前,要对系统进行良好的设计和架构规划。这包括设计模式的应用、模块化设计、分层架构等。这样可以确保系统的可扩展性和可维护性。

代码质量

编写高质量的代码是每个Java开发工程师应该关注的重要问题。要遵循编码规范,保持良好的命名习惯、代码缩进、注释规范等。同时,要进行代码重构,消除重复代码、提高代码的可读性和可维护性。

测试和调试

编写单元测试和集成测试是保证代码质量的重要手段。要确保代码的正确性和健壮性,以及对错误情况的处理。同时,要能够进行有效的调试,快速定位和解决问题。

性能优化

Java开发工程师需要关注系统的性能,尽量减少资源的占用和提高系统的响应速度。这包括优化算法、减少内存泄漏、避免频繁的IO操作等。

编程的好习惯

代码可读性

良好的命名习惯、代码缩进和注释规范可以使代码更易读懂,便于他人理解和维护。

模块化和重用性

将代码拆分为模块,提高代码的复用性和可维护性。可以通过面向对象的设计原则来实现。

单一职责

每个类和方法应该只负责单一的功能,遵循单一职责原则。这样可以使代码更加清晰和易于维护。

异常处理

合理处理异常,避免抛出未捕获的异常,保证系统的稳定性和可靠性。

注释和文档

良好的注释和文档可以帮助他人理解代码的意图和使用方法,提高代码的可维护性。

常见的Java编码规范的例子

  1. 命名规范:
    • 类名使用首字母大写的驼峰命名法,如:MyClass。
    • 方法和变量名使用首字母小写的驼峰命名法,如:myMethod。
    • 常量名使用全大写,多个单词使用下划线分隔,如:MY_CONSTANT。
  2. 代码缩进规范:
    • 使用四个空格进行代码缩进,不使用制表符。
    • 在代码块之间添加空行,以增加可读性。
  3. 注释规范:
    • 使用Javadoc注释方式对类、方法和字段进行注释,提供清晰的文档说明。
    • 在代码中添加必要的行内注释,解释代码的意图和特殊处理。
  4. 异常处理规范:
    • 不要捕获异常后不做处理,至少应该记录日志或者抛出更具体的异常。
    • 尽量使用特定的异常类型,而不是使用通用的Exception。

下面是一个示例代码,展示了一些编码规范的应用

public class ExampleClass {// 常量名使用全大写,多个单词使用下划线分隔private static final int MAX_COUNT = 100;// 类名使用首字母大写的驼峰命名法public void myMethod() {// 使用四个空格进行代码缩进for (int i = 0; i < MAX_COUNT; i++) {// 在代码块之间添加空行if (i % 2 == 0) {// 在代码中添加必要的行内注释,解释代码的意图和特殊处理System.out.println("Even number: " + i);}}}/*** 方法的Javadoc注释,提供清晰的文档说明* @param name 参数的说明* @return 返回值的说明* @throws IllegalArgumentException 异常的说明*/public String greet(String name) throws IllegalArgumentException {if (name == null || name.isEmpty()) {// 不要捕获异常后不做处理,至少应该记录日志或者抛出更具体的异常throw new IllegalArgumentException("Name cannot be null or empty");}return "Hello, " + name;}
}

以上示例代码展示了一些常见的编码规范,包括命名规范、缩进规范、注释规范和异常处理规范。这些规范能够提高代码的可读性、可维护性和可靠性,使团队合作更加高效,并为后续的代码扩展和维护提供了便利。

还有一些其他的编码规范值得注意

  1. 包名规范:
    • 包名应该以小写字母开始,多个单词使用点号分隔,如:com.example.myproject。
    • 避免使用Java关键字或常见的类库名称作为包名。
  2. 导入规范:
    • 避免使用通配符导入,尽量明确导入需要使用的类。
    • 将导入语句按照规定的顺序进行分组,如:Java标准库、第三方库、自定义库等。
  3. 并发编程规范:
    • 在多线程编程中,使用线程安全的数据结构或加锁机制来保护共享资源。
    • 避免使用过多的锁或不必要的同步,以提高性能和避免死锁。
  4. 性能优化规范:
    • 避免频繁的对象创建和销毁,尽量重用对象。
    • 使用StringBuilder或StringBuffer来拼接字符串,而不是使用"+"操作符。

下面是一个继续展示编码规范的示例代码

package com.example.myproject;import java.util.List;
import java.util.ArrayList;
import com.example.myproject.subpackage.MyClass;public class ExampleClass {private static final int MAX_COUNT = 100;public void myMethod() {List<String> myList = new ArrayList<>();for (int i = 0; i < MAX_COUNT; i++) {if (i % 2 == 0) {System.out.println("Even number: " + i);}}}public String greet(String name) throws IllegalArgumentException {if (name == null || name.isEmpty()) {throw new IllegalArgumentException("Name cannot be null or empty");}return "Hello, " + name;}public void concurrentMethod() {synchronized (this) {// 在需要同步的代码块中使用锁来保护共享资源}}public void performanceMethod() {StringBuilder sb = new StringBuilder();for (int i = 0; i < MAX_COUNT; i++) {sb.append("Number: ").append(i).append("\n");}String result = sb.toString();System.out.println(result);}public static void main(String[] args) {MyClass myObject = new MyClass();// ...}
}

以上示例代码展示了更多的编码规范,包括包名规范、导入规范、并发编程规范和性能优化规范。遵循这些规范可以提高代码的可读性、可维护性和性能,使代码更加规范、健壮和高效。

总结

作为一个Java开发工程师,以上是我对 好习惯 的一个较为浅显的理解,大家有更多的好习惯欢迎留言评论。

如果大家遇到类似问题,欢迎评论区讨论,如有错误之处,敬请留言。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/100778.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机竞赛YOLOv7 目标检测网络解读

文章目录 0 前言1 yolov7的整体结构2 关键点 - backbone关键点 - head3 训练4 使用效果5 最后 0 前言 世界变化太快&#xff0c;YOLOv6还没用熟YOLOv7就来了&#xff0c;如果有同学的毕设项目想用上最新的技术&#xff0c;不妨看看学长的这篇文章&#xff0c;学长带大家简单的…

2023年软考网工上半年下午真题

试题一&#xff1a; 阅读以下说明&#xff0c;回答问题1至问题4&#xff0c;将解答填入答题纸对应的解答栏内。 [说明] 某企业办公楼网络拓扑如图1-1所示。该网络中交换机Switch1-Switch 4均是二层设备&#xff0c;分布在办公楼的各层&#xff0c;上联采用干兆光纤。核心交换…

Jenkins对应java版本

官网地址&#xff1a;Java Support Policy 运行jenkins时,需要使用下列Java版本:

导致 JVM 内存泄露的 ThreadLocal 详解

为什么要有 ThreadLocal 当我们在学习JDBC时获取数据库连接时&#xff0c;每次CRUD的时候都需要再一次的获取连接对象&#xff0c;并把我们的sql交给连接对象实现操作。 在实际的工作中&#xff0c;我们不会每次执行 SQL 语句时临时去建立连接&#xff0c;而是会借助数据库连接…

学习css 伪类:has

学习抖音&#xff1a; 渡一前端提薪课 首先我们看下:has(selector)是什么 匹配包含&#xff08;相对于 selector 的 :scope&#xff09;指定选择器的元素。可以认为 selector 的前面有一个看不见的 :scope 伪类。它的强大之处是&#xff0c;可以实现父选择器和前面兄弟选择器…

TWDS车辆轮对故障、尺寸动态检测系统

随着我国铁路的建设发展&#xff0c;客运专线网络形成&#xff0c;既有铁路的货运能力得到释放&#xff0c;货物运输向重载方向发展&#xff0c;运输组织呈现长交路、运转周期短、编组固定的特点。 跟踪调查表明重载车辆车轮磨耗较普通车辆更为严重。大秦线c80型车辆在不到1个…

mac(M1)安装anaconda3

首先下载 然后正常安装即可&#xff0c;之所以我现在测试了anaconda,因为我发现miniconda后&#xff0c;jupyter notebook的安装就出现问题&#xff0c;所以就直接卸载miniconda&#xff0c;而直接安装anaconda了 (base) yxkbogon ~ % pip list Package …

汽车一键启动点火开关按键一键启动按钮型号规格

汽车点火开关/移动管家一键启动按键/汽车改装引擎启动按钮型号&#xff1a;YD828溥款开关 一键启动按钮&#xff08;适用于配套启动主机使用或原车一键启动开关更换&#xff09; 1.适合配套专用板板安装 2.开孔器开孔安装 3.原车钥匙位安装 外观&#xff1a;黑色 按钮上有3种不…

MVCC和BufferPool缓存机制

文章目录 1. MVCC多版本并发控制机制2. BufferPool缓存机制 1. MVCC多版本并发控制机制 Mysql可以在可重复读隔离级别下可以保证事务较高的隔离性&#xff0c;这个隔离性是由MVCC机制来保证的&#xff0c;对一行数据的读和写两个操作默认是不会通过加锁互斥来保证隔离性&#…

机器学习与模式识别作业----决策树属性划分计算

文章目录 1.决策树划分原理1.1.特征选择1--信息增益1.2.特征选择2--信息增益比1.3.特征选择3--基尼系数 2.决策树属性划分计算题2.1.信息增益计算2.2.1.属性1的信息增益计算2.2.2.属性2的信息增益计算2.2.3.属性信息增益比较 2.2.信息增益比计算2.3.基尼系数计算 1.决策树划分原…

设计模式 - 解释器模式

目录 一. 前言 二. 实现 三. 优缺点 一. 前言 解释器模式&#xff08;Interpreter Pattern&#xff09;指给定一门语言&#xff0c;定义它的文法的一种表示&#xff0c;并定义一个解释器&#xff0c;该解释器使用该表示来解释语言中的句子&#xff0c;属于行为型设计模式。是…

AIGC|利用大语言模型实现智能私域问答助手

随着ChatGPT的爆火&#xff0c;最近大家开始关注到大语言模型&#xff08;LLM&#xff09;这个领域。像雨后春笋一样&#xff0c;国内外涌现出了很多LLM。作为开发者&#xff0c;我们通常会关注LLM各自擅长的领域和能力&#xff0c;然后思考如何利用它们的能力来解决某个场景或…

Table ‘mysql.proc‘ doesn‘t exist

使用workbench 同步model 報錯 "Table ‘mysql.proc‘ doesn‘t exist" 爲什麽會出現這個錯誤&#xff1f; 原因&#xff1a;误删了mysql数据库 解决办法如下&#xff1a; 1、在服务列表里找到mysql&#xff0c;停止服务 2、把mysql文件夹下的data文件夹备份&…

GaussDB向量数据库为盘古大模型再添助力

在今年7月7日的华为开发者大会2023(Cloud)期间,华为云盘古大模型3.0正式发布。目前盘古大模型已在政务、金融、制造、医药研发、气象等诸多行业发挥巨大价值。此次华为云发布的GaussDB向量数据库,具备一站式部署、全栈自主创新优势,不仅如此,它的ANN算法在行业排名第一,…

华为、小鹏大定爆单,智驾苦尽甘来,车主终于愿意买单

‍作者|德新 编辑|王博 国庆假期结束&#xff0c;车圈的最大热点事件&#xff0c;当属问界M7卖爆&#xff0c;上市不到一个月时间内&#xff0c;狂揽5万张大定订单。 在华为手机强势回归&#xff0c;改款问界M7大热的高光之下&#xff0c;还有一个重要趋势值得关注&#xff1…

[MySQL]基础篇

文章目录 1. MySQL基本使用1.1 MySQL的启动和登录1.1.1 MySQL的启动1.1.2 MySQL的客户端连接 1.2 数据模型 2. SQL2.1 SQL类型2.1.1 数值类型2.1.2 字符串类型2.1.3 日期类型 2.2 DDL2.2.1 数据库操作2.2.2 表操作 - 查询2.2.3 表操作 - 创建表2.2.4 表操作 - 修改 2.3 DML2.3.…

C++语言实现网络爬虫详细代码

当然&#xff01;下面是一个用C语言实现的基本网络爬虫的详细代码示例&#xff1a; #include <iostream> #include <string> #include <curl/curl.h> size_t writeCallback(void* contents, size_t size, size_t nmemb, std::string* output) {size_t totalS…

linux系统配置Samba实现与Windows系统的文件共享

1.linux系统下载安装Samba sudo apt install samba 2.在linux文件系统中创建一个共享目录(通常在用户目录下面创建一个名为share的目录) mkdir share 3.修改samba配置文件 sudo vim /etc/samba/smb.conf 添加配置信息(path share路径,需要修改) ,保存修改 [Share]comm…

HarmonyOS/OpenHarmony原生应用-ArkTS万能卡片组件Stack

堆叠容器&#xff0c;子组件按照顺序依次入栈&#xff0c;后一个子组件覆盖前一个子组件。该组件从API Version 7开始支持。可以包含子组件。 一、接口 Stack(value?: { alignContent?: Alignment }) 从API version 9开始&#xff0c;该接口支持在ArkTS卡片中使用。 二、…

交流回馈老化测试负载的应用

交流回馈老化测试负载的应用非常重要&#xff0c;老化测试是一种对产品进行长时间运行和负载测试的方法&#xff0c;旨在模拟产品在实际使用中的长期稳定性和可靠性。在老化测试过程中&#xff0c;负载是指对产品施加的工作负荷&#xff0c;可以是CPU、内存、硬盘等资源的使用情…