java代码编写随笔总结

2023-05-16

一、项目模块定义

说明:一个产品分为各个独立的原子服务,通过这些独立的原子服务进行组合来满足各种业务的需求。

1、各原子服务关系与原则:

            依赖关系:只能上级依赖下级,不可下级依赖上级;各模块之间不直接依赖,可以设置共享模块,给各模块进行依赖;

           单一性原则:

                        原子服务之间:每个原子服务是独立的,假如生产中众多原子服务里,其中一个服务宕机了,而其他服务正常运行,则可以认为该服务是满足的单一原则;

                       各业务模块之间:每个业务模块之间不进行直接交叉依赖,分层可以按模块来,但该模块用到的代码只能都放在该模块的文件夹下,如果需要对其他模块提供接口,只能以接口的方式提供(provider),如果是对外暴露的接口,则文件夹名一定取名为API,则没有歧义;

                        程序中的方法:原则为一个方法只干一件事,那么这个方法就不会臃肿,如果业务复杂,则可以先进行细分,然后一个方法对应一个细节;

             仓储原则:即数据库持久化层,可单独建立一个模块,对外只是以接口的形式进行提供,这样可以做到整个持久化层可以单独下沉或分割,因为其他模块依赖的是接口,而不是具体哪一个持久化层类;

             代码设计:在通常的代码设计中,由业务的角度来设计,决定技术的实现,而不是由技术来决定业务的原则;

             代码细节:

                       循环尽量使用流式遍历(jdk8新特性),如  xxxList.stream().map(xxx -> xxx).collect(Collectors.toList())

                       时间则采用jdk8提供的Instant类(如:Instant.now().toEpochMilli() ),该时间类没有并发问题;

                       谁使用谁销毁原则:即代码中的类使用的DTO、VO对象,一般只有自己类才能用到,则不用像PO对象一样单独创建一个实体类,只需要在该类下写一个私有的DTO、VO对象即可;

                                                      如静态常量,通常我们做项目会写一个公共的静态常量类,大家都习惯的只有用到常量就会在该类里添加,这是不对的,只有大家经常使用的、通用的才可添加,如具体类内部使用的,只需要在该使用类里进行添加抽象的静态常量即可;注意:工具类慎用,尽量用jdk或spring自带的工具类;

                       编写接口原则: 任何service接口,首先第一件事就是使用断言(spring自带)来进行参数校验,通常我们都会在前端和controller类里校验,但这是不够的,因为未来接口你是不知道有没有其他地方会进行调用,所以一定要添加断言;

                       使用IDE进行编码,页面一定不能出现黄色底,如果按鼠标单击黄色区域代码,左侧会有一个黄色小灯泡提示需要的优化;另外每一行的代码长度不能超过右侧的代码线,如超过了则进行换行;

                       类名和方法名取名不能随意,最好能直接通过英文名直接知道意思,另外注释不能缺,特别是有逻辑的地方,注释要全面;

                        

                       

                     

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java代码编写随笔总结 的相关文章

随机推荐

  • 【ORB-SLAM2】(三):单目摄像头+ROS+ORB_SLAM2实时测试

    介绍 xff1a 首先启动一个单目摄像头 xff0c 其次发布节点话题 usb cam image raw xff0c 最后ORB SLAM2订阅摄像头数据进行处理 xff08 这里需要修改相应的源文件里的话题类型 xff0c 其默认值为
  • vscode如何更换主题

    1 打开Vscode xff0c 点击 文件 首选项 颜色主题 快捷键 xff1a 先按Ctrl 43 K 再按Ctrl 43 T 2 打开主题设置面板 xff0c 在深色主题中点击 深色 3 这样就可以把主题改为 深色 这样Vscode界
  • CSDN写博客更改代码颜色为白色代码样式

    一 背景 在平时发博客时 xff0c 代码块背景默认是黑色的 xff0c 而注释是黑色的 xff0c 总是看起来很不清楚 直接上图 xff1a 注释看起来很不清晰 xff0c 现在我们修改一下颜色为白色 直接上图 xff1a 下面是具体设置
  • win10安装Ubuntu16.04双系统

    下载Ubuntu16 04 xff1a 下载地址 xff1a 官网 xff1a Ubuntu 16 04 7 LTS Xenial Xerus 阿里云开源镜像站 ubuntu releases 16 04安装包下载 开源镜像站 阿里云 中科
  • SLAM后端--滤波方法和非线性优化方法

    SLAM的后端一般分为两种处理方法 xff0c 一种是以扩展卡尔曼滤波 xff08 EKF xff09 为代表的滤波方法 xff0c 一种是以图优化为代表的非线性优化方法 不过 xff0c 目前SLAM研究的主流热点几乎都是基于图优化的 滤
  • React 组件 API

    常用 React 组件 API xff1a 设置状态 xff1a setState替换状态 xff1a replaceState设置属性 xff1a setProps替换属性 xff1a replaceProps强制更新 xff1a for
  • 浅析SATA Physical Layer物理层OOB信号

    一 SATA物理层概述 说OOB之前 xff0c 首先得了解一下SATA结构以及物理层的含义 SATA主要包括 xff1a 应用层 Application Layer 传输层 Transport Layer xff0c 链路层 Link L
  • CodeBlocks 20.03下载及安装指南 使用自带MinGW进行环境配置

    原本用的好好的CodeBlocks 17 12 xff0c 今天手欠无聊去搜了一下官网发现两年都没更新的cb竟然在这两天更新了 对于一直喜欢用最新版的我 xff0c 一定要更新 xff0c 然后 我还把之前的各项配置都删掉了 好吧 xff0
  • 程序是从main主函数开始运行吗?

    很多人开始学计算机语言 xff0c 编写代码时都会有一个疑问 xff1a 程序真的是从main主函数开始的吗 xff1f 之前什么都不做吗 xff1f main结束后就不能执行其他函数了吗 xff1f 下面本篇文章就为此问题做一个简单的解释
  • C++内存越界(转)

    glibc detected free invalid pointer glibc detected malloc memory corruption glibc detected double free or corruption out
  • 总结几种结构体初始化的方法(转)

    总结几种结构体初始化的方法 转自 xff1a http www cnblogs com vongang archive 2011 07 30 2122076 html 结构体能自由组装数据 xff0c 是一种很常见的数据打包方法 当我们定义
  • C++各大有名库的介绍(转)

    C 43 43 各大有名库的介绍 C 43 43 各大有名库的介绍之C 43 43 标准库 标准库中提供了C 43 43 程序的基本设施 虽然C 43 43 标准库随着C 43 43 标准折腾了许多年 xff0c 直到标准的出台才正式定型
  • 内存分配——静态存储区 栈 堆 与static变量 (转)

    一 内存基本构成 可编程内存在基本上分为这样的几大部分 xff1a 静态存储区 堆区和栈区 他们的功能不同 xff0c 对他们使用方式也就不同 静态存储区 xff1a 内存在程序编译的时候就已经分配好 xff0c 这块内存在程序的整个运行期
  • Java的集合框架最全详解(图)

    Java的集合框架最全详解 xff08 图 xff09 前言 xff1a 数据结构对程序设计有着深远的影响 xff0c 在面向过程的C 语言中 xff0c 数据库结构用struct来描述 xff0c 而在面向对象的编程中 xff0c 数据结
  • 如何查看sybase存储过程的内容?

    如何查看sybase存储过程的内容 xff1f 1 在isql xff08 或SQL Advantage xff09 中执行 xff1a sp helptext 存储过程名 可以查看存储过程的内容 2 在 SQL CENTRAL里连接你的服
  • Oracle的表分析是做什么的?

    Oracle的表分析是做什么的 xff1f analyze table tablename compute statistics 分析的结果被Oracle用于基于成本的优化生成更好的查询计划 那么 xff0c 问题在于 xff1a Orac
  • React Refs

    React 支持一种非常特殊的属性 Ref xff0c 可以用来绑定到 render 输出的任何组件上 这个特殊的属性允许引用 render 返回的相应的支撑实例 xff08 backing instance xff09 这样就可以确保在任
  • μC/OS-II学习之:任务,信号量、邮箱、队列及其区别

    一 xff1a UCOS是一种抢占式的多任务操作系统 xff0c 如果最高优先级的任务不主动放弃CPU的使用的话 xff0c 其他任务是无法运行的 xff0c 通常情况下 xff0c 高优先级的任务在使用完CPU或其他资源后都要主动放弃 x
  • 51 单片机简单的多任务调度例子(转)

    51 单片机简单的多任务调度例子 看大家都在学操作系统 xff0c 我也想学学 所以想用51写一个来玩玩 xff0c 发现比较郁闷 弄了几下 xff0c 不想再弄了 xff0c 51弄这个没啥意思 我用的89S52 xff0c 除了速度慢
  • java代码编写随笔总结

    一 项目模块定义 说明 xff1a 一个产品分为各个独立的原子服务 xff0c 通过这些独立的原子服务进行组合来满足各种业务的需求 1 各原子服务关系与原则 xff1a 依赖关系 xff1a 只能上级依赖下级 xff0c 不可下级依赖上级