优秀的后端应该有哪些开发习惯?

news2024/12/27 19:48:57

见识过各种各样的代码,优秀的、垃圾的、不堪入目的、看了想跑路的等等,所以这篇文章记录一下一个优秀的后端 Java 开发应该有哪些好的开发习惯。

拆分合理的目录结构

受传统的 MVC 模式影响,传统做法大多是几个固定的文件夹 controller、service、mapper、entity,然后无限制添加,到最后你就会发现一个 service 文件夹下面有几十上百个 Service 类,根本没法分清业务模块。正确的做法是在写 service 上层新建一个 modules 文件夹,在 moudles 文件夹下根据不同业务建立不同的包,在这些包下面写具体的 service、controller、entity、enums 包或者继续拆分。

 

 

等以后开发版本迭代,如果某个包可以继续拆领域就继续往下拆,可以很清楚的一览项目业务模块。后续拆微服务也简单。

封装方法形参

当你的方法形参过多时请封装一个对象出来...... 下面是一个反面教材,谁特么教你这样写代码的!

public void updateCustomerDeviceAndInstallInfo(l

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

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

相关文章

CentOS7 离线部署 PostgreSQL12

CentOS7 离线部署 PostgreSQL12下载资源包部署、启动配置服务创建用户及数据库下载资源包 下载地址 https://www.postgresql.org/download/选择系统 3. 拉到最下边点击direct download 4. 选择需要的版本 5. 点击Avaliable Groups下的链接 6. 下载postgresql*、postgresql*-…

基于android的共享单车系统

效果展示: 需求信息: 客户端: 1:登录注册:用户可以通过自己的信息进行账号的注册 2:附近单车:显示 附近的共享单车租赁点 3:单车开锁:扫码或者输入编号开锁 4&#xff1a…

简单DP+最长上升子序列

简单DP最长上升子序列 文章目录简单DP最长上升子序列比较简单的DP[1027. 方格取数](https://www.acwing.com/problem/content/1029/)题解[275. 传纸条](https://www.acwing.com/problem/content/277/)题解最长上升子序列[AcWing1014. 登山](https://www.acwing.com/problem/con…

20.Django大型电商项目之登录页面、如何使用图片验证码

1. 登录页面 1.1 基础搭建 templates <!-- netshop\userapp\templates\userapp\login.html --> {% extends base.html %} {% block title %}用户登录页面{% endblock %}{% load static %} {% block headerjs %} <script type"text/javascript" src"…

Allegro打散Group的两种方法操作指导

Allegro打散Group的两种方法操作指导 Allegro可以建一个Group,也可以打散一个Group,当不需要器件,过孔走线等等以一个group形式体现,可以用下面的操作打散,具体操作如下 举例需要将这个Group打散 选择setup-application Mode-placement edit模式 Find选择Groups 鼠标移…

基于Geehy APM32F4移植使用letter-shell命令行终端

1. letter-shell简介 letter shell是一个C语言编写的&#xff0c;可以嵌入在程序中的嵌入式shell&#xff0c;主要面向嵌入式设备。 说得直白点他就是一个命令行交互软件&#xff0c;可以读取用户输入的命令&#xff0c;找到并执行命令对应的函数。 letter-shell的功能十分强…

C# 绘图基本方法

一得到Graphics对象 1 OnPaint事件中使用 Protected overrid void OnPaint(PaintEventArgs e) {Graphics ge.Graphics;...... }2 其他情况实现 Graphics gthis.CreaateGraphics();二 关于Graphics的释放 1 对于CreateGraphics&#xff08;&#xff09;得到的Graphics对象&a…

VC++开发一个资源编辑器-1.拖动控件

我想要做一个代码生成向导&#xff0c;首先要实现的功能 &#xff0c;是自动生成界面。 要实现以上的功能&#xff0c;第1步要实现&#xff0c;对界面上各个控件的拖动&#xff0c;移动&#xff0c;缩放的功能。 今天完成了初步的代码实现。 最要的功能实现 与备忘在这里写一…

【MQTT】mqtt 服务器部署--go 生产和消费demo

1. 背景 Golang 是谷歌开发的一种静态强类型、编译、并发和垃圾收集编程语言。围棋富有表现力&#xff0c;干净&#xff0c;高效。它的并发机制使得编写最大限度地利用多核和网络机器的程序变得容易&#xff0c;它的创新类型系统使得灵活和模块化的程序构造成为可能。Go 可以快…

【博客561】利用隧道和conntrack实现NAT网关

利用隧道和conntrack实现NAT网关 场景&#xff1a;实现一个NAT网关来转发其它node的出外网流量 如&#xff1a;图中的2节点充当NAT网关来转发1的出外网流量 利用隧道和conntrack实现NAT网关 节点ip&#xff1a; node1是172.17.158.48&#xff0c;node2是172.17.158.46 1、配…

Clipper库 | 类型和填充规则

裁剪类型(ClipType) CT_INTERSECTION 0 CT_UNION 1 CT_DIFFERENCE 2 CT_XOR 3交集&#xff0c;AND (intersection) &#xff1a;主体和裁剪多边形相交的区域。并集&#xff0c;OR (union) - 主体和裁剪多边形两者合并的区域。非/差&#xff0c;NOT (difference) - 裁剪多边…

net/http 库的客户端实现(上)

前言 Go语言标准库 net/http 是一个非常强大的标准库&#xff0c;使得构建 HTTP 请求和编写 Web 服务器的工作变得非常简单。 我们来看看是他是如何实现客户端和服务端的。 使用示例 假设本地有一个GET方法的HTTP接口&#xff0c;响应 Hello World&#xff01; 使用 net/ht…

Cesium:实时数据渲染性能优化与内存泄漏问题分析

在基于Cesium.js三维可视化开发框架,采用“轮询”策略,实现单车点位数据的实时渲染的demo示例,线上部署完毕之后,竟发现出现了“内存泄漏”的问题。思前想后,反复调试,然而并没有找到引发泄露的根源所在,最后偶然间在《JavaScript高级程序设计(第4版)》中看到了问题的答…

HashTable源码解析

HashTable源码解析 简介 HashTable 是一个古老的&#xff08;JDK1.0 时就已存在&#xff09;线程安全的容器&#xff0c;其核心方法都是 synchronized 修饰的。 相反 HashMap 不是线程安全的。 HashTable与HashMap对比 二者继承体系 HashTable HashMap 从图中可以对比得出…

零基础的小白如何学习编程,该怎么入手学习?

零基础的小白如何学习编程&#xff0c;该怎么入手学习&#xff1f;这是一个被问烂透而有很有趣的话题了。听到这个问题时&#xff0c;小编的第一反应就是要弄清楚对方为什么要学习编程&#xff0c;这是一个很好地起点&#xff0c;清楚自己想要什么&#xff0c;才能去努力实现。…

【JY】 ABAQUS子程序UEL的有限元原理与应用

不等待即关注【简述ABAQUS中UEL子程序】ABAQUS作为成熟的商用有限元软件&#xff0c;可为高级用户提供特定的分析需求。ABAQUS常见的二次开发子程序包括&#xff1a;UMAT、VUMAT、UGENS、UEL和VUEL等。其中UEL/VUEL分别适用于ABAQUS的Standard/Explicit求解器。只有清楚有限元分…

零基础怎么学Python编程,新手常犯哪些错误?

Python是人工智能时代最佳的编程语言&#xff0c;入门简单、功能强大&#xff0c;深获初学者的喜爱。 很多零基础学习Python开发的人都会忽视一些小细节&#xff0c;进而导致整个程序出现错误。下面就给大家介绍一下Python开发者常犯的几个错误。 1、错误的使用变量。 在Pyt…

华为网工入门之eNSP小实验(5)--VLAN间相互通信的三种方法

VLAN间相互通信 实际网络部署中一般会将不同IP地址段划分到不同的VLAN。同VLAN且同网段的PC之间可直接进行通信&#xff0c;无需借助三层转发设备&#xff0c;该通信方式被称为二层通信。VLAN之间需要通过三层通信实现互访&#xff0c;三层通信需借助三层设备(路由器,三层交换…

高可用系列文章之二 - 传统分层架构技术方案

前文链接 高可用系列文章之一 - 概述 - 东风微鸣技术博客 (ewhisper.cn) 三 技术方案 3.1 概述 单点是系统高可用最大的风险和敌人&#xff0c;应该尽量在系统设计的过程中避免单点。 保障系统的高可用, 方法论上&#xff0c;高可用保证的原则是「集群化」(或 「冗余」), …

LeetCode HOT 100 —— 312.戳气球

题目 有 n 个气球&#xff0c;编号为0 到 n - 1&#xff0c;每个气球上都标有一个数字&#xff0c;这些数字存在数组 nums 中。 现在要求你戳破所有的气球。戳破第 i 个气球&#xff0c;你可以获得 nums[i - 1] * nums[i] * nums[i 1] 枚硬币。 这里的 i - 1 和 i 1 代表和 i…