个人所思所想录

2023-09-20 22:22:57

🧑‍💻作者名称:DaenCode
🎤作者简介:CSDN实力新星,后端开发两年经验,曾担任甲方技术代表,业余独自创办智源恩创网络科技工作室。会点点Java相关技术栈、帆软报表、低代码平台快速开发。技术尚浅,闭关学习中······
😎人生感悟:尝尽人生百味,方知世间冷暖。
📖所属专栏:项目所感所想


在这里插入图片描述


🌟绪论

记录项目、学习中的所感所想。

🌟编码规范

  1. 类、类属性、类方法统一采用/***/进行注释。
  2. 获取单个对象时,方法名采用get作为前缀。
  3. 获取多个对象时,方法名采用list作为前缀,并以复数结尾。
  4. 获取统计值时,方法名采用count作为前缀。
  5. 新增时,方法名采用save/insert作为前缀。
  6. 删除时,方法名采用remove/delete作为前缀。
  7. 更新时,方法名采用update作为前缀。
  8. 数据对象:xxxDO,xxx为数据库表名。
  9. 传输对象:xxxDTO,xxx为业务领域相关名称。
  10. 展示对象:xxxVO,xxx为展示对象名称。

🌟编码意识

  1. 敏感数据保护:有些敏感数据,比如用户密码不能返回到前端。
  2. 数据越权防护:编写业务代码时,注意防范水平越权、垂直越权,考虑数据的归属权。
  3. 系统安全保护:比如说实现注册、登录功能时,防范他人恶意注册、登录,导致网站成为肉鸡网站。
  4. 多线程共享资源竞争处理:考虑某一个时刻,多线程环境下同时操作对于业务数据的影响。比如说多线程下用户领券。
  5. 数据结果合理性:考虑业务数据的某个结果要符合生活现实。比如说用户领券后的库存量要保证其不能为负数。
  6. 效益亏损防范:防止业务结果不合理,对用户或者企业造成经济效益,进而带来其他方面更大的损失。比如说羊毛漏洞案例。
  7. 时间线暂停或者扩大思维:假设某段代码执行到某时刻或者执行的时间无限放大会有什么后果。
  8. 设计原则理论中实践:代码的编写对应的是设计原则中的哪个原则或者哪一种设计模式。
  9. 场景化分析:假设某个场景下的事件会发生什么?万一…怎么办?

🌟学习方法

  1. 知识成体系化,学会用思维导图记忆。
  2. 多练多敲代码,搞懂一段代码背后的本质逻辑。
  3. 学完一个东西后,要学会输出,写出来、讲出来或者是做个小东西出来。
更多推荐

阿里云服务器部署安装hadoop与elasticsearch踩坑笔记

2023-09-1214:00——2023.09.1320:06目录00、软件版本01、阿里云服务器部署hadoop1.1、修改四个配置文件1.1.1、core-site.xml1.1.2、hdfs-site.xml1.1.3、mapred-site.xml1.1.4、yarn-site.xml1.2、修改系统/etc

基于STM32F407ZET6的环境温湿度监控系统(粤嵌GEC-M4)

注意使用事项:开发板如下由于外部晶振是8M,需要修改setup和stm32f4头文件的晶振值。操作如下:system_stm32f4xx.c的254行#definePLL_M8stm32f4xx.h的127行#defineHSE_VALUE((uint32_t)8000000)/*!<ValueoftheExterna

JAVA成员变量首字母小写,第二个字母大写报错问题(原因:Lombok与Spring冲突)

1、问题现象:JAVA类里定义成员变量使用首字母小写,第二个字母大写@Getter@SetterpublicclassBrandQueryObjectextendsQueryObject{privateStringpName;}结果页面报错,无法找到类型为cn.wolfcode.ssm.query.BrandQuery

【css】如何实现自定义滚动悬浮置顶、固定表头

说到固定表头或者滚动置顶,我们需要认识css的两个api的2个属性:position:sticky;position:sticky;是CSS中的一种定位方式。当应用于元素时,该元素在滚动时会固定在父容器的指定位置,直到滚动到达特定的位置或条件满足后,才会取消固定定位。元素的position属性需设置为sticky,同时

高级运维学习(八)Ceph 概述与部署

ceph概述ceph可以实现的存储方式:块存储:提供像普通硬盘一样的存储,为使用者提供“硬盘”文件系统存储:类似于NFS的共享方式,为使用者提供共享文件夹对象存储:像百度云盘一样,需要使用单独的客户端Ceph存储集群至少需要一个Ceph监视器、Ceph管理器和CephOSD(对象存储守护程序)。运行Ceph文件系统客户

《C和指针》笔记29:数组名和指针

看下面的代码intb[10];b[4]的类型是整型,但b的类型又是什么?它所表示的又是什么?一个合乎逻辑的答案是它表示整个数组,但事实并非如此。在C中,在几乎所有使用数组名的表达式中,数组名的值是一个指针常量,也就是数组第1个元素的地址。它的类型取决于数组元素的类型:如果它们是int类型,那么数组名的类型就是“指向in

ELK企业级日志分析系统

目录ELK可以添加的其它组件filebeat结合logstash的好处为什么要使用ELK完整日志系统基本特征ELK的工作原理ELKELK平台是一套完整的日志集中处理解决方案,将ElasticSearch、Logstash和Kiabana三个开源工具配合使用,完成更强大的用户对日志的查询、排序、统计需求。1.Elasti

C++多线程的用法(包含线程池小项目)

一些小tips:编译命令如下:g++7.thread_pool.cpp-lpthread查看运行时间:time./a.out获得本进程的进程id:this_thread::get_id()需要引入的库函数有:#include<thread>//引入线程库#include<mutex>//加入锁机制需要引入库函数mute

4G工业路由器高效数据传输助力光伏发电站管理

光伏发电站是能源产业中一种利用太阳能技术将光转化为电能的常见设施。随着物联网技术与环保能源的不断进步和应用的普及,光伏发电站的管理也变得更加便捷高效。光伏发电站结合4G工业路由器实现远程监控管理,并用于采集发电站中的传感器数据和监控信息。4G工业路由器是一种专业的设备,具有稳定可靠的网络连接和高效的数据传输能力,能够满

【k8s】Pod 的钩子

Kubernetes(K8s)中的Pod可以使用以下几种勾子(钩子)来执行在容器生命周期的不同阶段运行的操作:PostStart(启动后):该勾子在容器启动之后立即运行。它可以用于在容器内执行一些初始化任务、启动服务或设置环境。例如,进行一些文件操作、加载配置文件或注册服务到服务发现等。PreStop(停止前):该勾子

RPC和HTTP调用的区别

RPC(RemoteProcedureCall)和HTTP调用都是用于实现远程通信的方法,但它们有一些重要的区别:通信协议:RPC:RPC通常使用自定义的二进制协议或者序列化协议(如Protobuf、Thrift)来进行通信。这些协议更加高效,因为它们可以将数据以二进制形式传输,减少了序列化和反序列化的开销。HTTP调

热文推荐