Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

PaulRSing/java-common-mistakes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

86 Commits

Repository files navigation

《Java业务开发常见错误100例》源码目录

联系我

我和1对1沟通

我的博客

专栏地址

进入极客时间专栏

点赞趋势

如果觉得源码对你有帮助,欢迎Star 点赞趋势

源码说明

  • 专栏的所有代码基于Java 8 + Spring Boot 2.2.1.RELEASE + Spring Cloud Greenwich.SR4 + Spring Data Moore-SR4开发,基于Maven做依赖管理。
  • 每一个案例都是独立的SpringBoot或Java命令行应用程序,可以单独启动,避免相互干扰,但是它们公用一个Maven POM。
  • 下载源码后,先在根目录运行docker-compose up命令来通过Docker运行相关的MySQL、Redis、ES、RabbitMQ等系统,随后再来启动应用。
  • 专栏大部分内容只依赖MySQL一个组件,如果docker-compose启动有困难的话可以先注释docker-compose.yml中的相关组件,比如注释ES和RabbitMQ,等后面设计篇需要用到的时候再启动,并且需要同时删除pom.xml中的相关SpringBoot Starter模块。
  • 源码根目录下有一个readme.md的Markdown文件,这里有一个目录列了每一篇文章对应的源码位置,同时来到每一个源码包中下面还有一个readme.md文件,里面列了每一篇文章中每一个小节的源码包名。
  • 大多数源码中的案例都会使用wrong和right这样方法命名来代表错误实现和正确实现,你可以结合文章对比实现来理解。
  • 有一些案例(比如SQL索引一文)会基于当前时间生成测试数据,所以不确保文中的测试结果本地可以重现,需要自己调整测试用例。

代码篇

  • 01 使用了并发工具类库,线程安全就高枕无忧了吗?:concurrenttool
  • 02 代码加锁:不要让"锁"事成为烦心事:lock
  • 03 线程池:业务代码最常用也最容易犯错的组件:threadpool
  • 04 连接池:别让连接池帮了倒忙:connectionpool
  • 05 HTTP调用:你考虑到超时、重试、并发了吗?:httpinvoke
  • 06 20%的业务代码的Spring声明式事务,可能都没处理正确:transaction
  • 07 数据库索引:索引不是万能药:sqlindex
  • 08 判等问题:程序里如何确定你就是你?:equals
  • 09 数值计算:注意精度、舍入和溢出问题:numeralcalculations
  • 10 集合类:坑满地的List列表操作:collection
  • 11 空值处理:分不清楚的null和恼人的空指针:nullvalue
  • 12 异常处理:别让自己在出问题的时候变为瞎子:exception
  • 13 日志:日志记录真没你想象的那么简单:logging
  • 14 文件IO:实现高效正确的文件读写并非易事:io
  • 15 序列化:一来一回,你还是原来的你吗?:serialization
  • 16 用好Java 8的日期时间类,少踩一些"老三样"的坑:datetime
  • 17 别以为"自动挡"就不可能出现OOM:oom
  • 18 当反射、注解和泛型遇到OOP时,会有哪些坑?:advancedfeatures
  • 19 Spring框架:IoC和AOP是扩展的核心:springpart1
  • 20 Spring框架:帮我们做了很多工作也带来了复杂度:springpart2

设计篇

  • 21 代码重复:搞定代码重复的三个绝招:redundantcode
  • 22 接口设计:系统间对话的语言,一定要统一:apidesign
  • 23 缓存设计:缓存可以锦上添花也可以落井下石:cachedesign
  • 24 业务代码写完,就意味着生产就绪了?:productionready
  • 25 异步处理好用,但非常容易用错:asyncprocess
  • 26 数据存储:NoSQL与RDBMS如何取长补短、相辅相成?:nosqluse

安全篇

  • 27 数据源头:任何客户端的东西都不可信任:clientdata
  • 28 安全兜底:涉及钱时,必须考虑防刷、限量和防重:securitylastdefense
  • 29 数据和代码:数据就是数据,代码就是代码:dataandcode
  • 30 敏感数据:如何正确保存和传输敏感数据?:sensitivedata

加餐

  • 带你吃透课程中Java 8的那些重要知识点:java8
  • 分析定位Java问题,一定要用好这些工具:troubleshootingtools

内容脑图

About

极客时间专栏《Java业务开发常见错误100例》源码

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 99.8%
  • HTML 0.2%

AltStyle によって変換されたページ (->オリジナル) /