《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开发手册》详解

《阿里巴巴Java开发手册》码出高效详解(一)- 为什么要学习阿里编码手册的更多相关文章

  1. OpenCV参考手册之Mat类详解

    OpenCV参考手册之Mat类详解(一) OpenCV参考手册之Mat类详解(二) OpenCV参考手册之Mat类详解(三)

  2. 码出高效,阿里巴巴JAVA开发手册1.4.0

    码出高效,阿里巴巴JAVA开发手册1.4.0阅读笔记 一.编程规约(三) 代码格式// 关键词if与括号之间必须有一个空格,括号内的f与左括号,0与右括号不需要空格 if (flag == 0) { ...

  3. 《码出高效:Java开发手册》第四章学习记录,内容想当的多,前后花了几天的时间才整理好。

    <码出高效:Java开发手册>第四章学习记录,内容想当的多,前后花了几天的时间才整理好. https://naotu.baidu.com/file/e667435a4638cbaa15eb ...

  4. 为什么阿里巴巴Java开发手册中不允许魔法值出现在代码中?

    在阅读<阿里巴巴Java开发手册>时,发现有一条关于关于常量定义的规约,具体内容如下: 图中的反例是将数据缓存起来,并使用魔法值加链路 id 组成 key,这就可能会出现其他开发人员在复制 ...

  5. 【Java】阿里巴巴Java开发手册(纪念版)

    下载地址:(最新纪念版 2017-11-30 V1.3.1) <阿里巴巴Java开发手册>是阿里巴巴集团技术团队的集体智慧结晶和经验总结,经历了多次大规模一线实战的检验及不断的完善,系统化 ...

  6. 304902阿里巴巴Java开发手册1.4.0

    转自官网 前言 <阿里巴巴Java开发手册>是阿里巴巴集团技术团队的集体智慧结晶和经验总结,经历了多次大规模一线实战的检验及不断完善,系统化地整理成册,回馈给广大开发者.现代软件行业的高速 ...

  7. 读阿里巴巴Java开发手册v1.2.0之编程规约有感【架构篇】

     不为过去蹉跎,改变当下. 为什么开篇就送这么一句话给大家,我相信很多处于1-3年码龄的哥们儿们,在平时的编码历程中编码的个性可能是多彩的,每个人都有每个人特定的风格,但是我们现在这么随意写,以后这么 ...

  8. 阿里官方Java代码规范标准《阿里巴巴Java开发手册 终极版 v1.3.0》

    终极版 v1.3.0 2017年开春之际,阿里诚意献上重磅大礼:<阿里巴巴Java开发手册>,首次公开阿里官方Java代码规范标准.这套Java统一规范标准将有助于提高行业编码规范化水平, ...

  9. 阿里巴巴Java开发手册评

    2016年底的时候阿里巴巴公开了其在内部使用的Java编程规范.随后进行了几次版本修订,目前的版本为v1.0.2版.下载地址可以在其官方社区-云栖社区https://yq.aliyun.com/art ...

随机推荐

  1. Android利用Fiddler进行网络数据抓包,手机抓包工具汇总,使用mono运行filddler

    Fiddler抓包工具 Fiddler抓包工具很好用的,它可以干嘛用呢,举个简单例子,当你浏览网页时,网页中有段视频非常好,但网站又不提供下载,用迅雷下载你又找不到下载地址,这个时候,Fiddler抓 ...

  2. Text Style Transfer论文笔记

    Text Style Transfer主要是指Non-Parallel Data条件下的,具体的paper list见: https://github.com/fuzhenxin/Style-Tran ...

  3. Struts2 注释类型

    Struts 2 应用程序可以使用Java5注释作为替代XML和Java属性配置.这里是清单的不同的类别有关的最重要的注解: 命名空间注释(动作注释): @ Namespace注释允许在Action类 ...

  4. 基于TDengine-ver-1.6.4.4在windows 10下cmake+msys2编译(windows cgo 使用)

    目录 基于TDengine-ver-1.6.4.4在windows 10下cmake+msys2编译(windows cgo 使用) 背景 下载地址 仓库地址 安装部署 msys2 安装 配置环境变量 ...

  5. 001 Ceph简介

    一.Ceph简介 Red Hat Ceph是一个分布式的数据对象存储,系统设计旨在性能.可靠性和可扩展性上能够提供优秀的存储服务.Ceph分布式存储能够在一个统一的系统中同时提供了对象.块.和文件存储 ...

  6. 全网最详细的Ceph14.2.5集群部署及配置文件详解,快来看看吧! -- <2>

    部署Ceph集群 Ceph版本选择 Ceph版本来源介绍 Ceph 社区最新版本是 14,而 Ceph 12 是市面用的最广的稳定版本. 第一个 Ceph 版本是 0.1 ,要回溯到 2008 年 1 ...

  7. django 数据库连接出现的问题

    mysqlclient 1.3.3 or newer is required; you have 0.7.11: 解决方法: 将报错文件中的如下代码注释: if version < (1, 3, ...

  8. 带有外部Tomcat的Spring Boot

    在本文中,我将如何在外部Tomcat上运行Spring Boot应用程序.对我来说,这是一个现实的场景,我必须解决这个问题,因此也请教了一下优锐课老师,得到了很多帮助.也希望当你遇到类似问题时,能为你 ...

  9. Spring Boot中利用递归算法查询到所有下级用户,并手动进行分页

    Spring Boot中利用递归算法查询到所有下级用户,并手动进行分页 前提:语言用的是kotlin(和Java一样,但更简洁),写下这篇文章用来记录编程过程中遇到的一些难点 1.功能需求 前端用户A ...

  10. 【转】Eclipse快捷键指南

    目录 1 编辑 2 查看 3 窗口 4 导航 5 搜索 6 文本编辑 7 文件 8 项目 9 源代码 10 运行 11 重构 12 修改快捷键 Eclipse快捷键,熟悉快捷键可以帮助开发事半功倍,节 ...