当前位置: 首页 > news >正文

《程序猿入职必会(5) · CURD 页面细节规范 》

📢 大家好,我是 【战神刘玉栋】,有10多年的研发经验,致力于前后端技术栈的知识沉淀和传播。 💗
🌻 CSDN入驻不久,希望大家多多支持,后续会继续提升文章质量,绝不滥竽充数,欢迎多多交流。👍

文章目录

  • 写在前面的话
  • CURD 共性问题
    • 操作体验
    • 查询条件部
    • 主体表格部
    • 表单弹窗部
    • 字典翻译问题
    • 其他前端问题
    • 后端规约问题
  • 总结陈词

CSDN.gif

写在前面的话

本系列博文已连载到第五篇,通过前四篇博文,我们已完成了教师信息的基础增删改查功能,在介绍其他知识专栏之前,先来谈一谈CURD页面的规范问题。
企业实战开发中,后台管理系统的大部分页面都是CURD的配置页,通常由查询条件+主体表格+弹窗表单三个部分组成,代码生成器基本也帮忙生成了大部分代码,但是不能过分依赖代码生成器,很多细节还是要调整的。
刚入职的程序猿往往也会被安排以这一任务作为练手,在完成任务后,主管会审核其功能完成质量。那双方参考什么规范确认完成质量呢,博主为公司新员工整理了《CURD 页面共性问题》研发文档,新人和主管都需要掌握,这里挑选部分内容,放置到博客上来分享。
加油,程序猿,保持住Tempo,开干,玩的就是真实!

关联文章:
《程序猿入职必会(1) · 搭建拥有数据交互的 SpringBoot 》
《程序猿入职必会(2) · 搭建具备前端展示效果的 Vue》
《程序猿入职必会(3) · SpringBoot 各层功能完善 》
《程序猿入职必会(4) · Vue 完成 CURD 案例 》
《程序猿入职必会(5) · CURD 页面细节规范 》
《程序猿入职必会(6) · 返回结果统一封装》


CURD 共性问题

操作体验

1、删除和批量删除操作必须提示是否删除,如“是否确定删除该行数据?”“请先选择需要删除的记录?”“是否批量删除选中的5行数据?”;
2、弹窗提示性文字应该带上问号,中文的问号,例如下面不符合规范:
image.png
image.png
3、搜索框的input或者select都应该加上clearable方便用户点击清空而不是还要长按删除键猜清空

4、对于提示内容,验证通过的应该用绿色,不通过的才用红色,区分开来

5、对于新增弹窗中的一些有效标志什么的,应该根据实际情况设置默认值,如有效标志应该默认有效

6、对于有效标志在列表界面应该采用switch按钮来实现快速设置


7、界面的按钮大小要统一,有的按钮用size=normal有的用size=small就显得很突兀


查询条件部

1、查询条件不能仅有一个代码生成器生成的文本输入框,原则上一些字段若是字典类型,也需要使用下拉框作为查询条件(如状态、类型等),具体情况自行分析;
2、当下拉框条件过多时,要使用可搜索的下拉框;
3、查询条件自带的文本框尽量使用模糊搜索,若多个字段需要模糊搜索,可以分开多个文本框,也可以同一个;
4、后台管理的CURD也页面通常都应该有查询条件部;
5、时间条件要注意和后端约定,不应该出现搜索“当日-当日”,搜索不到数据的场景;
6、输入框应该具有清空功能;
7、搜索尽量可以使用Enter快捷键替代,下拉框直接切换就触发搜索;


主体表格部

说明:代码生成器生成的页面,表的全部字段都显示了,没这个必要,表格显示重要列即可,不然太挤了。

1、表格部分,显示的字段太多,导致表头很多两行,而且内容过于拥挤开发人员应该要自行判断哪些字段不需要显示在表格上,不重要的字段麻烦放置到编辑框去,如描述等,当且仅当表格部分要显示的字段本身就不多才全部显示),原则上显示在表格上的内容要保住可以显示全;
2、有的页面翻页按钮下移到看不见的位置,这里就是搜索内容比较多,导致到了第二行,而没有同时调整表格的高度导致;
3、关键信息的长度要单独设置长一点,不要使用均分,这样用户体验不好;
4、对于数据显示不全的应该做样式调整;
5、对于要输入大段内容的输入框,例如备注等,应当使用textarea
6、自动生成时,表格序号一般从0计数,要修改为从1计数;
7、操作栏的按钮应该能清晰知道含义;


表单弹窗部

说明:表单通常在新增和编辑弹窗里面,由文本框、下拉框等表单项组成。
说明:安排封装校验工具类,校验常用的表单项,如常用正则等。

1、表单要防止重复提交,提交后关闭;
2、表单不要全部使用一行两列布局,部分字段内容多的可以单独一行,要美观;
3、表单需要做好校验工作,校验工具应该封装;
4、表单验证时取消或关闭弹窗时,应当清空规则校验提示及表单内容;
5、新增数据,通常要进行名称查重,对于字典表的新增,都要进行名称查重,编码也需要;
6、描述类型的字段,通常使用textarea,并且要单独占用一行;
7、一些表单项新增的时候,可以把默认值带过来,例如有效标志位,可以默认有效;
8、例如排序号等数字类型输入框,要对输入进行限制,只能输入数字,并且非必填情况下后端应该自动补上且不重复。
9、新增和编辑要确保有效,不要出现点击新增或者编辑提示成功了缺什么变化也没有。
10、更新的时候要确保主键设置为disable,不然如果把主键字段修改了,update会失效。
11、编辑弹窗里面各表单项长度应该要一致;
12、要注意哪些字段新增或编辑的时候是不可以编辑的,特别是编码和名称;
13、表单输入时长度没有控制,当输入的内容非常长,超过数据库设置的字段长度,会报“SQL_ERROR”,最好一些特殊字段和后端人员核对一下输入长度;
14、对于新增页面涉及到编码或者id时,重复时的提示信息都是类似“IS_EXIST”这种,是否需要转成中文提示;


字典翻译问题

说明:字典就是拥有编码和对应名称的表,例如性别字典,0男1女,除了性别字典自身的维护页面外,其他页面上需要使用性别字典,显示的都应该是名称,并且获取的字典列表数据必须加上validFlag=“1”,即有效的数据。

1、表格列里面某列,使用字典,但没有翻译成名称;
2、表单里面某个表单项,使用了字典,但没有用下拉选择框,或者没有翻译成名称;
3、通常需要翻译的字典项,需要考虑是否应该作为查询下拉框;


其他前端问题

1、前端请求的异常不用提示两次,代码生成器要整改一下;
2、异常提示信息要做国际化处理,并且信息提示要准确;
3、debugger没有删除,影响他人开发;
4、弹窗里面涉及到JSON和SQL显示的,尽量用格式化插件优化展示;
5、加载动画效果要有;


后端规约问题

说明:规约文档里面介绍的很清楚了,而且大部分是代码生成器生成的,这边不多强调,但是需要额外写逻辑的一定要遵循规约。

1、关键变量或者逻辑需进行注释;
2、与业务相关的不要放在controller,与业务无关的应该放在controller,如时间戳转换等;
3、方法注释,文件头注释要有;
4、无用import、代码块及时删除,可以通过设置自动清除无用包;
5、对于用户信息直接用前端传过来的信息不好,应该加密之类的;
6、Service 应该定义为接口,具体实现写在 ServiceImpl;
7、代码一行内过长,应该换行,不要超过idea的辅助线;
8、出现魔法值,应该用常量定义起来;
9、方法参数过多,建议用类封装;
10、转String的四种写法中,直接加空串效率最低,不建议使用,建议改成toString或String.valueOf;
QQ图片20200618170437.png


总结陈词

此篇文章介绍了CURD页面的共性问题,仅供学习参考。
💗 后续会逐步分享企业实际开发中的实战经验,有需要交流的可以联系博主。

CSDN_END.gif

相关文章:

《程序猿入职必会(5) · CURD 页面细节规范 》

📢 大家好,我是 【战神刘玉栋】,有10多年的研发经验,致力于前后端技术栈的知识沉淀和传播。 💗 🌻 CSDN入驻不久,希望大家多多支持,后续会继续提升文章质量,绝不滥竽充数…...

操作系统面试知识点总结5

#来自ウルトラマンメビウス(梦比优斯) 1 IO管理概述 1.1 I/O 设备 I/O 设备的类型分类。 1.1.1 按使用特性 人机交互类外部设备,例如打印机、显示器等。存储设备,例如磁盘、光盘等。网络通信设备,例如网络接口等。 1…...

BigInteger和BigDecimal类

一、应用场景 1. BigInteger 类 目前,我们学过最大的是long类型,但是,在实际开发时候,很有可能遇见超出long类型范围的数,我们就需要用BigInteger类; ① add 加 ② subtract 减 ③ multiply 乘…...

2024最新Uniapp的H5网页版添加谷歌授权验证

现在教程不少,但是自从谷歌升级验证之后,以前的老教程就失效了,现在写一个新教程以备不时之需。 由于众所周知的特殊原因,开发的时候一定注意网络环境,如果没有梯子是无法进行开发的哦~ clientID的申请方式我就不再进…...

学习java第一百四十四天

Spring通知有哪些类型? 在AOP术语中,切面的工作被称为通知。通知实际上是程序运行时要通过Spring AOP框架来触发的代码段。 Spring切面可以应用5种类型的通知: 前置通知(Before):在目标方法被调用之前调用通…...

Meta 发布 Llama3.1,一站教你如何推理、微调、部署大模型

最近这一两周看到不少互联网公司都已经开始秋招提前批了。不同以往的是,当前职场环境已不再是那个双向奔赴时代了。求职者在变多,HC 在变少,岗位要求还更高了。 最近,我们又陆续整理了很多大厂的面试题,帮助一些球友解…...

XSSFWorkbook 和 SXSSFWorkbook 的区别

在现代办公环境中,处理 Excel 文件是一个常见的任务。Apache POI 是一个流行的 Java 库,能够读写 Microsoft Office 文档。对于处理 Excel 文件,Apache POI 提供了 XSSFWorkbook 和 SXSSFWorkbook 两个类。本文将详细介绍这两个类的特点和适用…...

会议主题:NICE Seminar|神经组合优化方法的大规模泛化研究(南方科技大学王振坤副研究员)

数据增强 获得更多解 TSP问题 最优解与序列无关,数据增强 ICML 2024 Position Rethinking Post-Hoc Search-Based Neural Approaches for Solving Large-Scale Traveling Salesman Problems...

昇思25天学习打卡营第22天|CycleGAN图像风格迁移互换

相关知识 CycleGAN 循环生成网络,实现了在没有配对示例的情况下将图像从源域X转换到目标域Y的方法,应用于域迁移,也就是图像风格迁移。上章介绍了可以完成图像翻译任务的Pix2Pix,但是Pix2Pix的数据必须是成对的。CycleGAN中只需…...

《Java初阶数据结构》----6.<优先级队列之PriorityQueue底层:堆>

前言 大家好,我目前在学习java。之前也学了一段时间,但是没有发布博客。时间过的真的很快。我会利用好这个暑假,来复习之前学过的内容,并整理好之前写过的博客进行发布。如果博客中有错误或者没有读懂的地方。热烈欢迎大家在评论区…...

Matrix Equation(高斯线性异或消元+bitset优化)

题目: 登录—专业IT笔试面试备考平台_牛客网 思路: 我们发现对于矩阵C可以一列一列求。 mod2,当这一行相乘1的个数为奇数时,z(i,j)为1,偶数为0,是异或消元。 对于b[i,j]*c[i,j],b[i,j]可以…...

【一图学技术】2.API测试9种方法图解

9种API测试方法 冒烟测试:冒烟测试是一种快速的表面级测试,用于验证软件的基本功能是否正常工作,以确定是否值得进行更详细的测试。功能测试:功能测试是验证软件是否符合预期功能要求的测试类型。它涉及对每个功能进行测试&#…...

力扣刷题----42. 接雨水

给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 输入:height [0,1,0,2,1,0,1,3,2,1,2,1] 输出:6 解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图&#xf…...

【论文精读】 | 基于图表示的视频抑郁症识别的两阶段时间建模框架

文章目录 0、Description1、Introduction2、Related work2.1 Relationship between depression and facial behaviours2.2 Video-based automatic depression analysis2.3 Facial graph representation 3、The proposed two-stage approach3.1 Short-term depressive behaviour…...

采集PCM,将base64片段转换为wav音频文件

需求 开始录音——监听录音数据——结束录音 在监听录音数据过程中:客户端每100ms给前端传输一次数据(pcm数据转成base64),前端需要将base64片段解码、合并、添加WAV头、转成File、上传到 OSS之后将 url 给到服务端处理。 {num…...

eclipse ui bug

eclipse ui bug界面缺陷,可能项目过多,特别maven项目过多,下载,自动编译,加载更新界面异常 所有窗口死活Restore不回去了 1)尝试创建项目,还原界面,失败 2)关闭所有窗口&…...

前端获取blob文件格式的两种格式

第一种,后台传递给前台是base64格式的JSON数据 这时候前台拿到base64格式的数据可以通过内置的atob解码方法结合new Uint8Array和new Blob方法转换成blob类型的数据格式,然后可以使用blob数据格式进行操作,虽然base64转换成blob要经过很多步骤,但幸运的是这些步骤都是固定的,因…...

向日葵RCE复现(CNVD-2022-10270/CNVD-2022-03672)

一、环境 1.1 网上下载低版本的向日葵<2022 二、开始复现 2.1 在目标主机上打开旧版向日葵 2.2 首先打开nmap扫描向日葵主机端口 2.3 在浏览器中访问ip端口号cgi-bin/rpc?actionverify-haras &#xff08;端口号&#xff1a;每一个都尝试&#xff0c;直到获取到session值…...

Postman中的负载均衡测试:确保API的高可用性

Postman中的负载均衡测试&#xff1a;确保API的高可用性 在微服务架构和分布式系统中&#xff0c;API的负载均衡是确保系统高可用性和可扩展性的关键技术之一。Postman作为一个多功能的API开发和测试平台&#xff0c;提供了多种工具来帮助测试人员模拟高负载情况下的API表现。…...

anaconda+tensorflow+keras+jupyter notebook搭建过程(CPU版)

AnacondaTensorFlowKeras 环境搭建教程...

LitCTF2024赛后web复现

复现要求&#xff1a;看wp做一遍&#xff0c;自己做一遍&#xff0c;第二天再做一遍。&#xff08;一眼看出来就跳过&#xff09; 目录 [LitCTF 2024]浏览器也能套娃&#xff1f; [LitCTF 2024]一个....池子&#xff1f; [LitCTF 2024]高亮主题(划掉)背景查看器 [LitCTF 2…...

Elasticsearch:跨集群使用 ES|QL

警告&#xff1a;ES|QL 的跨集群搜索目前处于技术预览阶段&#xff0c;可能会在未来版本中更改或删除。Elastic 将努力解决任何问题&#xff0c;但技术预览中的功能不受官方 GA 功能的支持 SLA 约束。 使用 ES|QL&#xff0c;你可以跨多个集群执行单个查询。 前提&#xff1a; …...

学习笔记4:docker和k8s选择简述

docker和 k8s 占用资源 使用客户体量Docker 和 Kubernetes&#xff08;K8s&#xff09;都是流行的容器化技术&#xff0c;但它们在资源管理和使用上有一些不同。以下是关于两者资源占用和使用客户体量的详细比较&#xff0c;基于具体数据和信息&#xff1a; Docker 资源占用…...

关于锁策略

在Java中对于多线程来说&#xff0c;锁是一种重要且必不可少的东西&#xff0c;那么我们将如何使用以及在什么时候使用什么样的锁呢&#xff1f;请各位往下看 悲观锁VS乐观锁 悲观锁&#xff1a; 在多线程环境中&#xff0c;冲突是非常常见的&#xff0c;所以在执行操作之前…...

昇思25天学习打卡营第3天|基础知识-数据集Dataset

目录 环境 环境 导包 数据集加载 数据集迭代 数据集常用操作 shuffle map batch 自定义数据集 可随机访问数据集 可迭代数据集 生成器 MindSpore提供基于Pipeline的数据引擎&#xff0c;通过数据集&#xff08;Dataset&#xff09;和数据变换&#xff08;Transfor…...

C++11新特性——智能指针——参考bibi《 原子之音》的视频以及ChatGpt

智能指针 一、内存泄露1.1 内存泄露常见原因1.2 如何避免内存泄露 二、实例Demo2.1 文件结构2.2 Dog.h2.3 Dog.cpp2.3 mian.cpp 三、独占式智能指针:unique _ptr3.1 创建方式3.1.1 ⭐从原始(裸)指针转换&#xff1a;3.1.2 ⭐⭐使用 new 关键字直接创建&#xff1a;3.1.3 ⭐⭐⭐…...

“微软蓝屏”全球宕机,敲响基础软件自主可控警钟

上周五&#xff0c;“微软蓝屏”“感谢微软 喜提假期”等词条冲上热搜&#xff0c;全球百万打工人受此影响&#xff0c;共同见证这一历史性事件。据微软方面发布消息称&#xff0c;旗下Microsoft 365系列服务出现访问中断。随后在全球范围内&#xff0c;包括企业、政府、个人在…...

【Linux C | 网络编程】进程间传递文件描述符socketpair、sendmsg、recvmsg详解

我们的目的是&#xff0c;实现进程间传递文件描述符&#xff0c;是指 A进程打开文件fileA,获得文件描述符为fdA&#xff0c;现在 A进程要通过某种方法&#xff0c;传递fdA&#xff0c;使得另一个进程B&#xff0c;获得一个新的文件描述符fdB&#xff0c;这个fdB在进程B中的作用…...

高并发内存池(六)Page Cache回收功能的实现

当Page Cache接收了一个来自Central Cache的Span&#xff0c;根据Span的起始页的_pageId来对前一页所对应的Span进行查找&#xff0c;并判断该Span&#xff0c;是否处于使用状态&#xff0c;从而看是否可以合并&#xff0c;如果可以合并继续向前寻找。 当该Span前的空闲Span查…...

浅析JWT原理及牛客出现过的相关面试题

原文链接&#xff1a;https://kixuan.github.io/posts/f568/ 对jwt总是一知半解&#xff0c;而且项目打算写个关于JWT登录的点&#xff0c;所以总结关于JWT的知识及网上面试考察过的点 参考资料&#xff1a; Cookie、Session、Token、JWT_通俗地讲就是验证当前用户的身份,证明-…...