昨晚加班将核三练习的作业提交给了师父,今早师父花了半小时给我讲了代码中存在的各种问题。今早是我认识师父以来感觉他最严肃的时候,可能是我的编码风格让有代码洁癖的他真的受不了了。师父说就算逻辑写的再漂亮而编码风格一团乱对看代码和之后维护的人而言简直是灾难,记下师父今早说的话,希望以后不会再成为别人的灾难。
1.在早期一定要养成严格的代码规范
编码规范比其他的都重要一些,规范的代码可更容易维护 ,更有助于代码审查 ,养成代码规范的习惯,有助于成长。规范的代码可以大大提高了程序的可读性,师父说,代码规范不代表高水平,但高水平的代码通常来说都是规范的,规范的代码更有利于帮助我理解,能够帮助我快速提升开发水平。代码不规范,即使写的再高明的算法,没准也被当作乱码处理掉。
2.注释规范
代码一定要有注释,对于方法,类,变量等等都要写注释,不能不写注释或者乱写注释,注释能帮助我们更好地理解代码的含义,增强可读性,写注释是对自己代码的负责。
3.代码复用问题
提交的代码中存在大量的冗余代码,很多实现相同功能的代码我写了多遍,仅仅只是因为传递的参数不一样,虽然实现了功能,逻辑也变得简单,但是在之后的维护中,如果需要修改某个地方,就可能有很多地方需要同时变动。比如:实现新增和修改我写了两个Service方法,但是实际上在新增和修改都是在进行保存操作,区别只是,若有ID不为空则进行修改操作,为空则进行新增操作,完全没有必要写成两个Service。再比如Mapper文件,我没有使用标签,许多select语句要查询的字段都是一样的,我就写了很多次,这样写虽然实现了功能,但是如果需求要求新增一个字段,那修改起来岂不是很麻烦?
4.判断尽量交给中间层而不是交给前台
在下图中保存单位信息时,前台JS判断“单位顺序号”是否为空,为空则新增,不为空则修改,而调用Service传递的参数一个是“业务流水号”,一个是“单位顺序号”,这种情况下可以让Service层判断处理。
5.数据库脚本问题
一定要先在eclispe里面写好数据库脚本再在数据库里面执行,而不是直接在数据库里面执行sql语句,eclipse里面规定脚本的编码是GBK编码,编码都是统一的,不可能要用脚本的时候从数据库里面导出脚本,开发并不是一个人在开发,大家都从数据库导出脚本,编码可能不一致,会使整理脚本的工作会变的非常复杂。
6.书写问题
我需要将开发规范熟记于心
1.我提交的Mapper文件的书写风格非常的乱,大写小写不统一,关键字,表名,字段书写风格不统一
2.“==”“||”等符号没有添加空格
3.代码缩进问题
7.不要用@Autowired注解,会出现“空”的情况
改成private CommDAO commDAO=(CommDAO)Util.getBean("commDAO")
相关文章
- 在uni-app中,如果data中的对象属性改变了,但是页面没有相应更新的情况,通常有以下几点需要注意:
- java中Integer比较需要注意的问题
- Redis --- redis事务和分布式事务锁-事务过程中失败有两种可能: Redis 命令只会因为错误的语法而失败(并且这些问题不能在入队时发现),或是命令中用在了错误类型的键上面,所以如果在生产环境中你使用的正常命令,那么在 Redis 事务中,是不会出现错误而导致回滚的。 来自文档:Redis commands can fail only if called with a wrong syntax... 事务执行一半,Redis宕机。如果 Redis 服务器因为某些原因被管理员杀死,或者遇上某种硬件故障,那么可能只有部分事务命令会被成功写入到磁盘中。如果 Redis 在重新启动时发现 AOF 文件出了这样的问题,那么它会退出,并汇报一个错误。使用redis-check-aof程序可以修复这一问题:它会移除 AOF 文件中不完整事务的信息,确保服务器可以顺利启动 注意: 若在事务队列中存在命令性错误(类似于java编译性错误),则执行EXEC命令时,所有命令都不会执行 若在事务队列中存在语法性错误(类似于java的1/0的运行时异常),则执行EXEC命令时,其他正确命令会被执行,错误命令抛出异常。 Redis 官网也解释了自己为啥不支持回滚。简单来说就是 Redis 开发者们觉得没必要支持回滚,这样更简单便捷并且性能更好(回滚还需要解决回滚事务覆盖的问题)。Redis 开发者觉得即使命令执行错误也应该在开发过程中就被发现而不是生产过程中。
- [原创]标记下Kendo使用中的问题, 持续更新中ing.....
- 那些年我们装过的数据库---盘点sqlserver2008安装时遇到的各种的问题(持续更新中)
- Hadoop集群配置过程中需要注意的问题
- CentOS中常见问题的解决方法(持续更新中...)-亲测
- vue3-element-admin二次开发遇到的问题总结,持续更新中
- ROS中amcl配置需要特别注意的问题(base_link、base_footprint、footprint的联系)
- CVE-2024-3094:Linux生态供应链攻击-CVE-2024-3094:供应链攻击? 一个潜伏3年只为通杀的漏洞,今天更新了一个CVE漏洞,XZ-utils5.6.0/5.6.1版本后门风险(CVE-2024-3094)这个后门并非作者无意加入的,也不是引入存在后门的库文件导致的问题,而是有人经过三年的潜伏,积极参与该项目的维护,在获得了直接commit代码的权限以后将后门代码注入其中。 这个代码一共存活了不到2个月的时间,发现者是PostgreSQL 开发人员兼软件工程师 Andres Freund 意外发现的,在观察到 liblzma(xz 包的一部分)Debian sid(使用 ssh 登录占用了大量 CPU,valgrind 错误,然后找见了上游 xz 存储库和 xz tarball 已被后门。 幸运的是,xz 5.6.0 和 5.6.1 尚未被 Linux 发行版广泛集成,而且大部分是在预发行版本中。 但是kali linux如果每周更新或者最近3月26到29号之间更新了,不好意思。 根据kali官方说法希望更新, 首先我们apt-cache policy liblzma5 更新命令 sudo apt update && sudo apt install -y --only-upgrade liblzma5 更新 难的追一回滚动更新就这样玩吗?看来以后也不要追最新的。 当然我们还可以cat /var/log/apt/history.log 查看更新时间和都更新了哪些内容! 附: 各大linux系统可以查看自己对应的系统,查看官网说明 比如我的kali可以直接在https://www.kali.org/blog/about-the-xz-backdoor/看到 当然了这个供应链后门只能说差一点就完美成功,因为他写的有bug在sshd运行的时候直接cpu飙升,引起了研究员的注意,否则如果在发行版中大规模集成,估计可以造成linux的一个通杀,现在只是在预发行版中,但是更新快的比如kali linux中如果滚动更新那么就会被影响到。 参考链接: