《阿里巴巴Java开发手册》码出高效详解(一)- 为什么要学习阿里编码手册

《Java 开发手册》(以下简称《手册》)是每个 Java 工程师人手必备的一本参考指南。该手册包括 编程规约、异常日志、单元测试、安全规约、MySQL 数据库、工程结构、设计规约 7 个部分 ,涵盖了 Java 开发的常见知识点。认真实践该《手册》能够帮助 Java 开发者养成好的编程习惯,帮助企业的开发团队在 Java 开发上更加高效、提高容错性、团队协作更好,并有助于提高代码的质量、降低项目维护的难度。然而很多人会遇到看过就忘,记住却不理解、不会用的困境。

另外在实际的学习和工作中,你是否遇到过如下尴尬:

看《手册》等 Java 技术图书时觉得啥都懂,实战时就忘了;很多知识点,知其然而不知其所以然,面试时多问你几个为什么就 “靓仔语塞”;想通过读源码来进阶,但是容易迷失在细节中,总是半途而废;不重视需求分析,导致开发完成才意识到设计和需求有偏差;遇到问题时如果无法简单地定位原因,会优先通过百度、请教别人来解决问题;开发中遇到问题排查耗时很久,方法很原始;自己开发的项目,每次上线几乎必出 BUG,而有些同事的项目质量则很高,自己却不知道如何才能尽可能地避免。

结合自己学习和工作这么长时间的思考,将出现上述尴尬的原因归结为以下几个原因:

  • 知道很容易,懂很难,很多人把知道当做懂。自认为掌握了就不愿意再深入学习,恰恰错过了彻底掌握该知识的最佳机会;
  • 专业基础不够扎实。 很多人急于求成,只重视解决眼前问题,不能够未雨绸缪,巩固好专业基础,最终导致很多问题” 知其然而不知其所以然 “,排查问题时靠猜、靠问,而不是靠扎实的专业基础之上的推测和验证;
  • 很多人不愿意改变学习方法,学习和培养好的编程习惯,不敢走出舒适区。比如很多人学了很多技术,却从来没有认真仔细阅读过官方文档;比如读源码毫无章法,随心所欲,常常半途而废;
  • 态度决定一切。很多人嘴上说想学好,但是对自己代码要求很低,总是为自己找各种理由不去学更好的方法,不去努力写更优雅的代码;
  • 在学习技术过程中,很多人把脑力劳动当成了体力劳动,把需要思考的问题当做了纯记忆的问题,学习和工作过程中缺乏思考。比如很多人是 “记忆” 经典图书的知识点,而不是理解知识点,导致容易遗忘,不能灵活运用。在学习很多知识点时缺乏思考,没有去搞懂是什么、不明白为什么、不知道如何去做;
  • 没有养成好的解决问题的习惯,排查问题靠猜,而不是思考和验证。也没有主动掌握常见的排查问题的步骤和工具等。

很多人缺乏的不只是好的资料,而是学习的方法。学一样的技术,使用不同的方法,最终学习的效果截然不同。而技术是学不完的,如果没有科学的方法,无法很好地应对层出不穷的新技术。每个人的成长速度是不同的,有的人工作多年,却只有一年的技术经验;而有的人工作一年,却有超越一年的技术经验。造成这种差异的主要原因在于学习能力。

从 Java 新手到高手的进阶过程是一个漫长的爬坑过程。 很多同学遇到 BUG 时由于基础不扎实也没有系统地排查方法,为了解决一个小问题浪费了大把的时间。而且写出的 BUG 太多将直接或间接影响绩效,影响同事、领导对你的印象。

阻碍初学者进步的往往是一叶障目不见泰山的盲目自信,往往是一成不变学习方法。破解上述尴尬的核心在于提高学习和排错能力。

为了解决上面提出诸多尴尬,本教程的具体应对策略如下:

  • 从学习方法主要切入点,结合源码,Java 语言规范 2 和 Java 虚拟机规范 3 等对《手册》的讲解和补充
  • 设计者角度思考问题,很多知识点将从设计者视角去思考分析问题,更容易理解问题的根源
  • 通过对开发中常用的思维导图、流程图和常见 UML 图的讲解,让大家可以 “大战需求分析”,前期明确需求,后期少返工
  • 通过单元测试、Code Review 等相关知识的学习和运用,促进代码质量的提升
  • 通过独特的学习源码视角,来从正确的角度和方法来学习源码的精髓,反向促进日常的开发
  • 结合实际的开发经验,给出相关知识点掌握不牢容易造成的坑,给出一些避坑建议。

版本

Java 源码均默认为 JDK 8 版本(特殊标注除外)。

技术是学不完的,学习能力和态度才是进阶的关键。作为一个技术人员,只有保持 “Stay Hungry, Stay Foolish” 的心态,才能够保持进取心;只有真正知道哪些才是更有价值的东西,才能真正少走弯路。

希望大家能够通本教程,从 “学习具体内容” 为主,转变到学习 “学习的方法” 为主;从技术的学习者变为技术的思考者。

参考

  • 《 Java 开发手册 1.5.0》华山版. 2019
  • 《Java Language Specification: Java SE 8 Edition》
  • 《The Java Virtual Machine Specification Java SE 8 Edition》
  • 码出规范:《阿里巴巴Java开发手册》详解
(0)

相关推荐

  • 开篇词 | 领略 MyBatis 设计思维,突破持久化技术瓶颈

    你好,我是杨四正,在接下来的几个月里,我会带你一起来探究 MyBatis 这个 Java 持久化框架. 我曾在电商.新零售.短视频.直播等领域的多家互联网企业任职,这期间我在业务线没日没夜地" ...

  • 阿里Java开发手册(嵩山版).pdf

    阿里的Java开发手册让众多开发人员养成了编写好代码的习惯,不得不说真的是无私的奉献. 阿里的Java开发手册发布最新的嵩山版本,首次提出了前后端的开发规范,适合Java开发者们反复品尝.建议Java ...

  • Android 开发三年,跳槽大厂无望,意外获得《Android面试宝典》助我跳槽字节、薪资翻倍

    感悟 这个世界有一个二八原则 在好多地方都发挥着作用,在Android开发上我认为也一样有用.做为一名Android开发者,你也许只会用到Android开发知识中的20%,有80%其实你学了也不一定会 ...

  • 《Java 面经手册》PDF,全书 417 页 11.5 万字,完稿&发版!

    本文目录 一.前言 二.简介 1. 适合人群 2. 我能学到什么 3. 阅读建议 4. 书籍截图 三.目录 第 1 章 谈谈面试 第 2 章 数据结构和算法 第 3 章 码农会锁 第 4 章 多线程 ...

  • 看完源码记不住,是记性有问题?

    都说大厂面试必问源码,可很多人看完MyBatis源码记不住,是脑子有问题吗?当然不是!是因为你没有掌握学习源码的技巧. 看完源码的我- 我的朋友lison,是国内最早把MyBatis讲透的,江湖人称& ...

  • 《阿里巴巴Java开发手册》2018年完整资料下载!

    无规矩不成方圆,无规范不能协作. <阿里巴巴Java开发手册>(以下简称<手册>)是阿里内部Java工程师所遵循的开发规范,涵盖编程规约.异常日志.单元测试.安全规约.MySQ ...

  • 大厂面试必问的Spring全家桶 4 大开源框架,思维脑图全总结,终于出来了

    对于开发来说,我们在工作中普遍都会用到各个开源框架,比如最基础的 Spring,使开发网络编程变得特别简单的 Netty 框架,还有成为目前微服务框架首选的 Spring Cloud 等.在多个框架之 ...

  • android颜色!那些年Android面试官常问的知识点,大厂面经合集

    为什么想跳槽? 简单说一下当时的状况,我在这家公司做了两年多,这两年多完成了一个大项目,作为开发的核心主力,开发压力很大,特别是项目上线前的几个月是非常辛苦,几乎每晚都要加班到12点以后,周末最多只有 ...

  • JAVA中常见的阻塞队列详解

    在之前的线程池的介绍中我们看到了很多阻塞队列,这篇文章我们主要来说说阻塞队列的事. 阻塞队列也就是 BlockingQueue ,这个类是一个接 口,同时继承了 Queue 接口,这两个接口都是在JD ...

  • 涨停股的卖出时机详解

    买涨停股的注意事项: (1)在极强的市场中,尤其是每日都有5只左右股票涨停的情况下,要大胆追涨停板.极弱的市场切不可追涨停板,机率相对偏小一些. (2)追涨停板--选有题材的新股,上市数日小幅整理,某 ...

  • 涨停板的买点与卖出时机详解

    涨停股特征: 涨停显示股价走势较强,特别是延续涨停的个股,短期可获取丰厚收益,但大涨之后往往也会大跌,因而,参与涨停股,高收益的还伴随着高风险.经过对近两年涨停股的剖析,可发现,涨停股次日往往会顺势冲 ...

  • 涨停板卖出法详解:当日涨停不能封板卖出图解

    但凡涨停的个股,从日K线图上看,其走势都是很诱人的,或者是形成了"突破"或者是正在"加速上涨".从顺势交易的角度来看,似乎仍然要做多,但是,从实战来看,很多个股 ...

  • Java 虚拟机运行时数据区详解

    本文摘自深入理解 Java 虚拟机第三版 概述 Java 虚拟机在执行 Java 程序的过程中会把它所管理的内存划分为若干个不同的数据区域,这些区域有各自的用途,以及创建和销毁的时间,有的区域随着虚拟 ...

  • 2021届高考地理二轮复习: 区域开发与区域可持续发展(详解)

    二轮复习测试卷测试内容:区域开发与区域可持续发展测试时间:60分钟,分值:100分       姓名___________  得分__________第Ⅰ卷   选择题(共60分)一.选择题(本大题共 ...

  • 《Java 底层原理》String字符串详解

    前言 Java 字符串底层是如何存储的,如何提高性能的,今天就来好好了解一下. 字符串的存储结构 Jvm 有专门的字符串常量池用于存放字符串,存放字符串的数据结构是HashTable. HashTab ...

  • 大环境变了,阿里巴巴也变了|财报详解

    ©️资本侦探原创 不确定性笼罩互联网行业之际,阿里巴巴走进了新的阶段. 8月3日美股盘前,阿里巴巴公布截至6月30日的2022财年一季度财报(即2021年Q2),财报显示: 阿里巴巴第一财季营收为20 ...