You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

92 lines
6.4 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# Java业务开发常见错误100例
## 你将获得
* 130 个代码坑点及其解决方案
* 100 个场景化案例解读
* 25 次源码深度解析
* 使用 10 个工具定位问题根因
## 讲师介绍
朱晔贝壳金服资深架构师获得三次微软MVP曾任职于育碧软件、英孚教育、空中网、饿了么等公司两次创业公司CTO经历。工作十五年来他一直没有脱离编码工作参与过在线教育、电商、游戏、O2O、互金、物流等领域400+应用的架构设计和开发工作,熟悉微服务架构,擅长高并发、高可用架构。
工作中,朱晔经常作为救火队员在一线分析和复盘问题,见过摸过大量生产事件和事故,积累了丰富的问题排查经验,同时对于如何设计健壮和安全的业务系统也有较深刻的理解。
## 课程介绍
业务开发中的细节问题非常多,每个开发者都或多或少踩过坑。
有些细节问题,可能只会在某些特定情况下(比如高并发、多线程)出现,一经出现便会成为重大的生产事故;有些细节问题,可能暂时只会影响程序运行的性能,在量变到质变的瞬间爆发;还有些细节问题,比如所谓的服务器不稳定问题,或许运维同学改改配置、时不时重启下系统也能解决,但没从代码层面解决,就意味着程序里始终有一颗定时炸弹。
其实,**我们不是不重视这些细节,更不是不想从根儿上解决问题,只是不知道问题到底出在了哪里。而要做好这些细节、避开这些坑,第一步就得知道它们是什么、在哪里、为什么会出现。**
因此我们邀请了朱晔老师开设了“Java业务开发常见错误100例”这个课程。他从200多个真实的生产事件和事故中整理提炼了100个Demo以Java代码演示涉及130多个坑点、50多条最佳实践去讲述业务开发中的常见错误。
这些内容不仅可以帮助你写出更好的代码同时也有助于你进一步补全自己的知识网增加面试的信心。你甚至可以把这些案例当作代码审核的Checklist帮助别的项目一起避坑帮助团队一起成长。
在这个课程中每节课都是Java业务开发的一个核心关注点每个知识点对应2~5个案例并按照“**知识介绍->还原业务场景->错误实现->正确实现->原理分析->小总结**”来讲解每个案例,不仅帮你避开这个知识点的常见坑,更让你能知道产生坑的根本原因,提升自己的技术能力。
在此,也特别感谢王少泽老师,承担了整个课程的技术审核和录音工作。
# 常见问题
**非Java开发者是否可以从本课程受益**
编程语言是相通的Java语言的许多坑点其他语言也有。本课程不会专注于讲解语言本身的坑点且涉及的案例贴近业务开发的各方各面更侧重开发方面的误区和最佳实践。因此即便你的开发语言不是Java学习这个课程也能有所收获。
**《Effective Java》《码出高效Java 开发手册》和本课程的区别是什么?**
《Effective Java》注重Java语言、《码出高效Java 开发手册》注重规范而本课程覆盖使用Java进行业务开发涉及的各种常用框架和技术不会局限于Java或者JDK本身且设计篇、安全篇会从更高的视角去看开发时遇到的各种误区。因此这个课程的讲授思路和内容和这两本书有较大区别。
# 课程模块设计
本课程包括三大模块,分别是代码篇、设计篇、安全篇。
* 代码篇包含开发层面近20个方面的坑涉及多线程、数据访问、池技术、日志异常、日期时间、IO和序列化、Spring框架等。这个模块不仅会分析一些代码的错误写法还会涉及对基础知识理解不透导致的踩坑。
* 设计篇:讨论项目技术设计时的一些坑点或误区,涉及接口、缓存、异步、生产就绪、代码重复、数据存储等六个方面的设计。通过场景化的案例、针对可能实际遇到的问题,给出设计思路和最佳实践。
* 安全篇:介绍后端开发最容易忽略、却又是从开发层面来防控效果最好的四个安全问题。包括客户端数据可信问题、数据和代码的隔离问题、资源防刷兜底问题,以及敏感数据的处理。
## 课程目录
![](https://static001.geekbang.org/resource/image/3a/a7/3a5e823b1f6d8454dff1c31e652bbca7.jpeg)
## 适合人群
1. 适宜人群1~5年经验的Java开发者尤其是偏业务型项目的开发人员。
2. 不适宜人群:零编程基础的开发者。
## 特别放送
#### 免费领取福利
[![](https://static001.geekbang.org/resource/image/69/dc/69c52d08278a2164dc5b061ba342a5dc.jpg?wh=960x301)](https://time.geekbang.org/article/427012)
#### 限时活动推荐
[![](https://static001.geekbang.org/resource/image/67/a0/6720f5d50b4b38abbf867facdef728a0.png?wh=1035x360)](https://shop18793264.m.youzan.com/wscgoods/detail/2fmoej9krasag5p?dc_ps=2913145716543073286.200001)
## 订阅须知
1. 订阅成功后推荐通过“极客时间”App端、Web端学习。
2. 本专栏为虚拟商品,交付形式为图文+音频,一经订阅,概不退款。
3. 订阅后分享海报,每邀一位好友订阅有现金返现。
4. 戳此[先充值再购课更划算](https://shop18793264.m.youzan.com/wscgoods/detail/2fmoej9krasag5p?scan=1&activity=none&from=kdt&qr=directgoods_1541158976&shopAutoEnter=1),还有最新课表、超值赠品福利。
5. 企业采购推荐使用“[极客时间企业版](https://b.geekbang.org/?utm_source=geektime&utm_medium=columnintro&utm_campaign=newregister&gk_source=2021020901_gkcolumnintro_newregister)”便捷安排员工学习计划,掌握团队学习仪表盘。
6. 戳此[申请学生认证](https://promo.geekbang.org/activity/student-certificate?utm_source=geektime&utm_medium=caidanlan1)订阅课程享受原价5折优惠。
7. 价格说明:划线价、订阅价为商品或服务的参考价,并非原价,该价格仅供参考。未划线价格为商品或服务的实时标价,具体成交价格根据商品或服务参加优惠活动,或使用优惠券、礼券、赠币等不同情形发生变化,最终实际成交价格以订单结算页价格为准。