在刚开始的这期线上实习中 有一大半java实习生的代码里 都用的全局错误提示常量 然后就是各种throw 错误
在Controller里面疯狂的throw 已经够离谱的,但是更离谱的是 service层还一堆throw
这种情况不只是这一期,今年的几期线上实习 上千个java实习生 都大规模的出现这种代码
甚至还有同学说 ,这是我代码的优点呢 你怎么能说是离谱
就这个问题,刘一拿老师讲一下 不多不少 还是三点:
1 要先知道为什么用?
写的同学 一定是从一些网上的烂大街项目里学的
用的原因 大概就是错误描述更好管理
然后我们学生就觉得有道理 就用上了 甚至在简历上还作为亮点去写
但是错误描述为什么要统一管理?如果这个原因是错误的 那后面做的就没有意义
在大部分项目里 不管是C端或者B端 错误描述 或者提示 都是告诉使用的用户现在有什么问题?
也就是说错误是跟业务相关的,而业务是不断迭代的 ,比较说互联网项目,会持续迭代5-10年,错误描述会不断增加 1个接口平均有2个错误的话 那1年就得上千个 10年就得上万个
那开发还能写代码吗 一有错误提示 就得去上万的常量里查 有没有相似的描述 是用哪个 还是新增
而且这种统一管理的意义是啥,本来就没有意义 就是告诉用户 我们真想统一 日志工具就可以了
那有没有业务是可能需要统一错误码的?
有,一般是B对B平台,方便错误联调,比如说小程序开发文档 就是明确错误码 但是这个不是对使用用户提供的,是接入的公司方
另外,还会有少量的外包项目 的产品经理或者项目经理 会明确错误码 主要的目的 是在项目比较小 或者开发能力不统一的情况下 较好的把控项目开发质量
这可能也是为什么有些学生最被这类描述说服的原因
2 用的话,问题在哪?
在正常的C端业务里,全局拦截异常实际上是基本的代码常识错误
(1) 代码越多,越需要维护,最基本的就是调试,那各种抛出 是很难打断点的 这是最基本的开发问题
(2)大量同学还会在service层里放throw,就是不知道设计service层,就是为了方法复用,你一堆抛出,那别人调到你的方法的时候 就不能只出看入参和访回值 必须读你的代码 然后各种捕获异常 这种是被人骂的
(3)错误提示只是给前端的话 ,只需要简单返回就好 跟全局异常半毛钱关系没有 但是需要代码迭代的时候 就很麻烦
这里要提一句 全局异常拦截的主要目的 是为了保底 就是业务端没有拦截到的异常 做为最后的防线,不要让用户看到一堆看不懂的错误栈信息
3 从校招面试官的角度看
所以大家就会得到一个结论 大部分网上卖课的有两个问题 1个是主要强调名词 2个不管是不是C端项目 都会拿B端的技术讲
就说明这些项目的出身 大部分都是外包为主 而且更重要的是看重的是学生不懂业务 所以强调技术名词 让你好买课 而不关心你找不找的到工作
但是你放到 简历上 一方面这种非业务描述 重复度就会非常高 大家都一样 拔尖考试就减分 另一方面就算给面试 面试官一看就是错的描述 那项目提问会会减分 很难拿到OFFER
最后说一句,现在日常实习机会很少,有亮点的更少,大家可以考虑我们校招VIP的线上实习 真实商业模块 真实上线运营 全新核心模块迭代 重复度低 亮点多 还有一定的实习工资可以 搜索“校招VIP”小程序 首页报名即可
大拿老师
&原360教育CTO
扫码添加课程顾问小拿
把offer装进口袋
帖子还没人回复快来抢沙发