大佬们, 关于 Java 后端空判断

85 天前
 vyuai
大佬们, 这种过滤是不是多余的啊, 数据库设计了部门 id 不能为空, 前端也加了校验, 后端还要进行多步的空判断吗, 有点晕了, 一般在什么情况下做这种多步的空判断啊
https://imgur.com/5RXY9q2
以下图片是改造的, 会有什么问题嘛, 是不是到这种程度就可以了
https://imgur.com/jWhJzYu

主要为了学习代码编码风格和规范, 看哪些开源项目比较好啊, 或者看什么别的东西

目前看的是 SmartAdmin 这个开源项目学习, 大佬们有了解的嘛, 看哪位作者的风格比较好呢, 若依实在不喜欢, 目前觉得这个 SmartAdmin 对我帮助很大

补一个问题 Java 后端大部分人都说 CRUD, 企业中 CRUD 到底是什么样子的, 一般一个后端会分多少个表啊, 或者分多少个模块啊, 学到什么程度可以, 一直没有概念, 距离辞职, 已经学习一年了
3417 次点击
所在节点    Java
23 条回复
ZZ74
85 天前
没心情细看。就说问的明确的问题吧。
判空是必须的。代码健壮性要求。鬼知道谁或者哪段代码会调用你的方法 然后给点不正常数据。
补充问题
1 ,都可以用,但是先明白 Throwable Exception 和 RuntimeException 的区别。默认只作用于 RuntimeException 。用哪个看你们的自己的要求。
2 ,以前严谨的都是加外键来确保的,自从互联网开始,就都没了。大不了在代码里去查一下。
kaf
85 天前
前端判断是为了用户体验交互,后端校验是为了保证业务数据稳定,必须要做
woodwhales
85 天前
数据库为什么不加外键,业务数据的依赖关系都在代码里实现。个人认为,这样做的好处是系统不强依赖数据库,数据库仅仅是数据的存储媒介,没有外键意味着数据库不是存储业务逻辑媒介。方便日后可能会发生的场景:
1. 需求升级,现有库表结构扩展
2. 数据迁移
3. 数据库升级及产品替换

总之,不使用外键,避免牵一发动全身。

所有业务逻辑全部在代码里,那么开发者只要关注代码本身就能知道所有业务逻辑。数据库、redis 、mq 等全部是辅助代码逻辑,系统的业务价值核心在于代码。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1083417

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX