本文经沉默王二(id:cmower)授权转载

如若转载请联系原公众号

这周一,公司新来了一个同事,面试的时候表现得非常不错,各种问题对答如流,老板和我都倍感欣慰。

这么优秀的人,绝不能让他浪费一分一秒,于是很快,我就发他了需求文档、源码,让他先在本地熟悉一下业务和开发流程。

结果没想到,周三大家一起 review 代码的时候就发现了问题,新来的同事直接把原来 @Transactional 优化成了这个鬼样子:

@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)

就因为这一行代码,老板(当年也是一线互联网大厂的好手)当场就发飙了,马上就要劝退这位新同事,我就赶紧打圆场,毕竟自己面试的人,不看僧面看佛面,是吧?于是老板答应我说再试用一个月看看。

会议结束后,我就赶紧让新同事复习了一遍事务,以下是他自己做的总结,还是非常详细的,分享出来给大家一点点参考和启发。相信大家看完后就明白为什么不能这样优化 @Transactional 注解了,纯属画蛇添足和乱用。


关于事务

事务在逻辑上是一组操作,要么执行,要不都不执行。主要是针对数据库而言的,比如说 MySQL。

只要记住这一点,理解事务就很容易了。在 Java 中,我们通常要在业务里面处理多个事件,比如说编程喵

程序员新人周一优化一行代码,周三被劝退?相关推荐

  1. 史上首例!阿里程序员写的这一行代码,被国家博物馆收藏了

    中国国家博物馆,收藏有各类文物100多万件,是我国收藏文物数量最丰富的博物馆之一. 从甲骨到价值连城的的玉器书画,这里的藏品种类繁多,无不体现着厚重的中华文明. 近日,国博又增加一件令人意想不到的特殊 ...

  2. (转)程序员新人怎样在复杂代码中找 bug?

    我曾经做了两年大型软件的维护工作,那个项目有10多年了,大约3000万行以上的代码,参与过开发的有数千人,代码checkout出来有大约5个GB,而且bug特别多,open的有上千,即使最高优先级的s ...

  3. 程序员新人怎样在复杂代码中找 bug?

    我曾经做了两年大型软件的维护工作,那个项目有 10 多年了,大约 3000 万行以上的代码,参与过开发的有数千人,代码 checkout 出来有大约 5 个 GB,而且 bug 特别多,open 的有 ...

  4. 抢程序员饭碗?自动写代码的Deep TabNine真如此神奇?

    作者 |  James Vincent等 编译 | 夕颜 出品 | AI科技大本营(ID:rgznai100) 导读:在过去的一年中,AI 生成书面文字的能力大大提高.通过扫描庞大的文本数据集,机器学 ...

  5. 优秀的PHP程序员至少应该了解PHP代码的优缺点(转)

    我在SitePoint做面试官的时候一定会问的问题是:你认为PHP代码的优劣体现在哪里?因为这个问题可以让我大体知道应聘者是哪种类型的程序员,而不是单纯地考察他对PHP函数的掌握程度(这一点Zend的 ...

  6. 拒绝经验过剩,“程序员的工作只能是代码”?

    似乎软件工程师都有一个自然而然的成长过程:从缺乏经验的新手,发展到中级工程师,进而成为经验过剩的工程师.一旦软件工程师进入经验过剩阶段,他们对代码的兴趣就会降低!那么哪些迹象表明你已经经验过剩了呢? ...

  7. c语言输出我爱你程序,程序员表白教程,这些代码用过的都成功了!

    原标题:程序员表白教程,这些代码用过的都成功了! 作为一名程序员,如何用自己的技术向喜欢的人表白? 这篇程序员表白教程,可以让你创造出不一样的浪漫! 你值得拥有! 1. I Love You Batc ...

  8. 【2022黑马程序员】SQL优化

    [黑马程序员]SQL优化笔记 文章目录 [黑马程序员]SQL优化笔记 插入数据优化 大批量插入数据 总结 主键优化 数据组织方式 页分裂 A. 主键顺序插入效果 B. 主键乱序插入效果 页合并 索引设 ...

  9. [转]为什么程序员总是写糟糕的代码?这3个原因

    原文请看:为什么程序员总是写糟糕的代码?这3个原因 我最近一直在想我们作为一个行业为什么总是产出糟糕代码的原因. 1.明显原因-- 我一下子想到的最明显的原因是,有好的程序员,也有不那么好的程序员,有 ...

最新文章

  1. css :hover
  2. 关于Delphi中TRttiContext.FindType失效的问题
  3. vue-cli 没有build如何配置_webpack4配置实现浏览器长期缓存
  4. 机器学习(二十八)——Monte-Carlo
  5. sublime 正则搜索日语字符
  6. CAP-微服务间通信实践
  7. ES6学习笔记(三)—— Set 和 Map
  8. 解决一个容易忽略的点:pandas无法读取excel的全部列
  9. dubbo之rmi协议使用
  10. PowerShell批量配置VM端点
  11. 如何使用Joyoshare VidiKit Mac版为WMV视频添加字幕?
  12. 计算机原理教程 pdf,《计算机组成原理》教程 概述.pdf
  13. 家里在计算机在线考试作弊,计算机在线考试系统能监考
  14. 机器学习实战---入门篇
  15. k8s all-in-one 部署过程记录
  16. 多线程并发面试题合集
  17. maya中英文对照_maya2011中英文对照表
  18. 简单好用的桌面日历便签软件有哪些?
  19. vue的网站用puppeteer做seo
  20. CAD/CAM/CAE基础(四) CAM

热门文章

  1. Cg Programming/Unity/Specular Highlights镜面高光
  2. 学习---人脉经营全攻略
  3. Google浏览器打开新页面会覆盖当前页面的问题(打开新页面)
  4. 设置vscode默认打开浏览器为谷歌
  5. 2013年1月CPU性能天梯图
  6. 本地html播放器代码,HTML播放器代码集
  7. 微信导航的门户网站(曾经的创业故事4)
  8. 华为云BI,真正的一站式BI解决方案
  9. 业绩下滑、利润缩水,除了一直涨价,涪陵榨菜还有什么招数?
  10. 促销 java 满 赠_促销活动除了打折、返现、满赠,还有什么方式?