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

news2024/9/24 9:26:33

文章目录

  • 前言
  • 首先需要考虑(重要)
    • 设计和架构
    • 代码质量
    • 测试和调试
    • 性能优化
  • 编程的好习惯
    • 代码可读性
    • 模块化和重用性
    • 单一职责
    • 异常处理
    • 注释和文档
    • 常见的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.coloradmin.cn/o/1079543.html

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

相关文章

C++项目:【负载均衡式在线OJ】

文章目录 一、项目介绍 二、技术栈与开发环境 1.所用技术: 2.开发环境&#xff1a; 三、项目演示 1.运行代码 2.进入项目首页 3.题目列表 4.点击具体一道题 5.编辑代码并提交 四、项目思维导图 五、项目宏观结构 六、Comm公共模块 1.日志工具log.hpp 2.其他工具…

html与css知识点

html 元素分类 块级元素 1.独占一行&#xff0c;宽度为父元素宽度的100% 2.可以设置宽高 常见块级元素 h1~h6 div ul ol li dl dt dd table form header footer section nav article aside 行内元素 1.一行显示多个 2.不能设置宽高&#xff0c;宽高由元素内容撑开 常见行内…

“桥接模式”和“NAT模式”以及“host-only模式(仅主机模式)”

使用虚拟机的时候&#xff0c;我们常看到网络链接配置中&#xff0c;有【桥接】、【NAT】、【仅主机】的选项&#xff0c;今天就来介绍一下这三种网络链接模式。 关于虚拟机中配置网络的内容可以看这篇博客&#xff1a; 深入浅出的介绍一下虚拟机VMware Workstation——part2…

update语句没有用到主键索引会带来的问题

准备材料 建一张表&#xff0c;数据列不建立索引。并写入1万条数据 CREATE TABLE identity.t2 (id INT NOT NULL COMMENT Id,a INT NULL,PRIMARY KEY (id),KEY idx_a (a) );delimiter // create procedure gen_data() begin declare i int default 0; set i0; start transact…

2021-07-31 - 需要打印出来的图表 - 含各种机制

1.应用场景 主要用于帮助自己记住知识点&#xff0c;能随时记起&#xff0c;有时候就是要记住&#xff0c;每次靠查询是不可靠的&#xff5e; 2.学习/操作 1.文档阅读 08 | 数据库优化方案&#xff08;一&#xff09;&#xff1a;查询请求增加时&#xff0c;如何做主从分离&a…

0基础学习VR全景平台篇 第107篇:全景图调色和细节处理(上,地拍)

上课&#xff01;全体起立~ 大家好&#xff0c;欢迎观看蛙色官方系列全景摄影课程&#xff01; 今天教给大家的课程是地拍全景图调色和细节处理&#xff0c;下面我们就开始吧&#xff01; 1.把照片快速导入LR软件 选择【图库】模块 打开软件后&#xff0c;点击【导入】按…

制造业进销存管理怎么做?

进销存是什么&#xff1f;生产制造业如何进行进销存管理&#xff1f;制造进销存都能为企业提供什么&#xff1f;进销存管理系统的优势&#xff1f;本文将带大家深入浅出的聊聊制造进销存&#xff0c;全面剖析制造进销存的前世今生。 接下来我会通过一些例子为大家深入浅出的讲…

Java架构师缓存架构设计

目录 1 导学2 高性能概述3 多级缓存设计4 缓存技术方案5 如何进行缓存拆分6 缓存持久化和集群1 导学 本章的主要内容呢是大型系统架构设计难点之一的高性能。它里面的缓存架构设计相关的一些知识,落到项目上,就是订单系统的高性能缓存架构设计。在本章学习当中,首先我们会去…

压铸机泵控比例PQ阀放大器

比例PQ阀是电液比例一压力流量复合阀&#xff0c;它能够对执行元件&#xff08;液压缸或液压马达&#xff09;的不同工作状态进行速度和输出力或力矩进行比例控制。它是一种新型的节能型复合阀&#xff0c;既能实现具有确定增益系统的开环控制&#xff0c;又能实现自调整的闭环…

户外led显示屏中的裸眼3D效果是怎么做出来的?

近几年&#xff0c;裸眼3D成了一个热点词汇&#xff0c;但凡它出现的地方都会迅速成为网络热门话题和网红打卡点。裸眼3D大屏凭借其立体逼真的画面显示效果&#xff0c;带给人们新颖震撼的视觉体验&#xff0c;不仅成为户外广告的“新宠”&#xff0c;还成为了城市的新地标&…

红队专题-Cobalt strike 4.x - Beacon重构

红队专题 招募六边形战士队员重构后 Beacon 适配的功能windows平台linux和mac平台C2profile 重构思路跨平台功能免杀代码部分sysinfo包packet包config.go命令的执行shell、run、executepowershell powerpick命令powershell-importexecute-assembly 堆内存加密字符集参考链接 招…

STM32使用HAL库驱动TA6932数码管驱动芯片

TA6932介绍 8段16位&#xff0c;支持共阴共阳LED数码管。 2、STM32CUBEMX配置引脚 推挽配置即可。 3、头文件 /******************************************************************************************** * TA6932&#xff1a;8段16位数码管驱动 *******************…

【AI视野·今日CV 计算机视觉论文速览 第264期】Tue, 10 Oct 2023

AI视野今日CS.CV 计算机视觉论文速览 Tue, 10 Oct 2023 (showing first 100 of 188 entries) Totally 100 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Computer Vision Papers FLATTEN: optical FLow-guided ATTENtion for consistent text-to-video editing Au…

盲盒商城源码 盲盒开箱源码 潮物盲盒商城源码 仿CSGO盲盒开箱源码

百度seo的要求对于网页内容的伪原创是相对严格的,需要进行一定的修改使其符合百度seo的标准 根据您的要求,我们将对后面的这段话进行伪原创修改,只修改文字符号,不对字数进行调整: 盲盒商城源码、盲盒开箱源码、潮物盲盒商城源码、仿CSGO盲盒开箱源码 带有Vue源代码,前端…

睿趣科技:抖音开网店怎么开通

在当前的数字时代&#xff0c;电子商务已经成为一种主流的商业模式。抖音作为中国最大的短视频平台&#xff0c;也提供了这种能力&#xff0c;让商家能够在平台上开设自己的网店。那么&#xff0c;如何在抖音上开通网店呢?下面是详细的步骤&#xff1a; 注册抖音账号 首先&…

BCYD-A10-33-L85、BCYD-A16-21-S150电比例先导阀放大器

BCYD-A16-31-L150、BCYD-A10-33-L85、BCYD-A16-21-S150、BCYD-A25-23-L320是先导式电液比例换向阀&#xff0c;导阀和主阀都没有阀芯位置反馈&#xff0c;通过比例电磁铁驱动作为功率级的先导阀芯工作。此类阀工作时是通过电子放大器提供功率级的先导阀比例电磁铁的驱动电流&am…

项目1-基于STM32制作T12洛铁(更新中)

视频补充处&#xff08;待补充。。。。&#xff09; 一、简介 当使用STM32来制作T12型号的烙铁&#xff0c;并集成OLED-0.96寸显示器时&#xff0c;你将进入一个令人兴奋的嵌入式系统开发领域。这个项目将涉及硬件和软件的复杂工作&#xff0c;以实现一个功能强大的烙铁控制器…

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

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

vue3学习(四)--- watch和watchEffect监听

文章目录 watchsource侦听源不同类型侦听ref侦听reactive侦听没有响应式的数据侦听多个源 watchEffect清除副作用清除侦听flush用法 watch watch() 默认是懒侦听的初始化不触发&#xff0c;只有在侦听源发生变化时才执行回调函数。 watch的结构&#xff1a; source 侦听源call…

pandas-进阶

apply、transform 分组聚合agg