写点什么

还在苦于提升代码质量?快来试试这个方法

  • 2023-02-27
    北京
  • 本文字数:1669 字

    阅读完需:约 5 分钟

作为你一名有追求的程序猿,你是否苦于该如何提升自己的编码质量呢?


博文菌最近听说一种好用的方法,分享给大家


~~

那就是学习优秀框架的设计思想和设计模式在实际场景中的应用方法


据说,这样可以非常有效地提高架构师和研发人员对业务工程架构的设计能力。

既然如此,选择哪个框架进行学习比较好呢?

其实,大家天天接触的神级开源框架——MyBatis,就是绝好的学习素材!


01

为何选择 MyBatis

MyBatis 作为一款优秀的 ORM 框架,通过配置 XML 文件或 Java 注解的方式,将 Java 代码中 DAO 对象类与 SQL 语句进行映射关联,完成对数据库的增、删、改、查操作。

由于 MyBatis 具有简单、易用和灵活等特性,所以成为众多互联网公司开发 Java 项目的首选 ORM 框架。

在遇到 MyBatis 的报错提醒,以及需要基于 MyBatis 开发各类技术插件时,大部分研发人员会尝试阅读 MyBatis 源码。

由于 MyBatis 源码体量庞大、语法复杂,也不像平常的业务流程代码一样具有分层结构,并且使用了大量的设计模式,因此理解难度比较大。研发人员很难厘清其中的各个代码类的调用顺序和各个类之间的关系。

架构师和研发人员在熟练使用 MyBatis 的过程中,重要的一点是掌握其源码设计,这样可以将其精妙的设计模式和设计原则运用到日程编码中。


02

怎样学好 MyBatis

要想学习优秀的开源框架,有一条极佳的学习路线。

那就是:

手写源码

通过手写源码,对开源框架功能的细节进行拆解,并按照项目的实现过程分析每个功能逻辑的设计原则、设计方案和落地代码,以渐进式地完成整个框架的开发。

如此,就像做一个项目一样,完整实现开源框架的功能。

技术清流小付哥在手写 MyBatis 源码的实践中就受益匪浅!


他通过对 MyBatis 框架的理解和多年中间件的开发经验,把 MyBatis 框架拆解,用一种以需求驱动、分支开发、渐进实现的方式形成了自己独有的一套学习方法,即使是编程小白,也能沿着这条路走到终点得到收获。

为了帮助更多开发者提升代码质量,轻松学习 MyBatis 源码,写出有价值的设计方案,小付哥总结了手写 MyBatis 源码过程中的点点滴滴,特编纂成书,以飨读者。



本书内容


本书共 22 章。

  • 第 1 ~ 4 章:拆解和实现 ORM 框架的基本功能,构建会话的基本调用流程,解析 XML 文件,以及串联 DefaultSqlSession 结合解析配置项获取展示信息。

  • 第 5 ~ 8 章:创建和使用数据源,池化技术的实现,完成执行 SQL 语句的操作,同时引入反射工具包,实现对属性信息的获取和设置。

  • 第 9 ~ 12 章:以实现 ORM 框架的基本功能为目的,完善静态 SQL 的标准化解析、参数设置和结果封装,使整个 ORM 框架可以处理基本的新增、删除、修改和查询操作。

  • 第 13 ~ 19 章:以完善 ORM 框架的核心功能逻辑为目的,实现注解 SQL 解析、ResultMap 参数、事务处理自增索引、动态 SQL 解析、插件、一级缓存和二级缓存等功能。

  • 第 20 ~ 22 章:利用 ORM 框架整合 Spring 和 Spring Boot,并介绍整个核心流程,同时总结 ORM 框架开发中涉及的 10 种设计模式。

本书通过渐进式的开发方式实现整个 MyBatis 核心源码的开发。

每章开头先列出难度和重点,再介绍要处理的问题、具体设计和实现代码,最后给出测试验证和总结。


本书特点


学习优秀框架源码,不应该脱离其本身来实现一个简单的 ORM 框架,更不应该只是用一些自己的想法来代替原有的设计。

如果脱离 MyBatis 源码的核心实现学习 MyBatis,就会缺少对解决复杂设计问题的思考,也很难学习到设计模式在框架中的运用方法,更无法了解各个模块的分层逻辑。

因此,本书内容从使用几个类就能写出简单的 ORM 框架开始,渐进式地扩展为拆解 MyBatis,逐步扩展到使用 100 多个类完整实现一个核心的 MyBatis 框架。



业内专家推荐



作者简介



付政委(小傅哥)

作为一名一线互联网 Java 工程师、架构师,曾开发过交易、营销类项目,运营、活动类项目,设计过中间件,组织过系统重构,编写过技术专利。

他不仅从事业务系统的开发工作,也经常做一些字节码插桩类的设计和实现,对架构的设计和落地具有丰富的经验。

他既热衷于 Java 语言,也喜欢研究中继器、I/O 板卡、C#和 PHP,是一名活跃的技术“折腾者”。常逛 GitHub,乐于分享技术文章。

沉淀、分享、成长,让自己和他人都能有所收获!



手写mybatis二维码.png


限时五折优惠,快快扫码抢购吧!


用户头像

还未添加个人签名 2019-10-21 加入

还未添加个人简介

评论

发布
暂无评论
还在苦于提升代码质量?快来试试这个方法_博文视点Broadview_InfoQ写作社区