《阿里巴巴Java开发手册》码出高效详解(一)- 为什么要学习阿里编码手册
1 引导语
阿里手册是每个 Java 工程师必备的一本案头书。该手册包括 编程规约、异常日志、单元测试、安全规约、MySQL 数据库、工程结构、设计规约 7 个部分 ,基本涵盖了 Java 开发的常见必用知识点。
认真实践该《手册》能够帮助 Java 开发者养成好的编程习惯,帮助企业的开发团队在 Java 开发上更加高效、提高容错性、团队协作更好,并有助于提高代码的质量、降低项目维护的难度。
然而!!!
很多人会看了就忘,记住了却不理解,工作时根本不会用。
2 现实的尴尬
- 看《手册》等 Java 技术图书时觉得啥都懂,一到实战时就忘了;
- 很多知识点,知其然而不知其所以然,面试时多问你几个为什么就 “靓仔语塞”;
- 想通过读源码来进阶,但是容易迷失在细节中,总是半途而废;
- 不重视需求分析,导致开发完成才意识到设计和需求有偏差;
- 遇到问题时如果无法简单地定位原因,会优先通过百度、请教别人来解决问题;
- 开发中遇到问题排查耗时很久,方法很原始;
- 自己开发的项目,每次上线几乎必出 BUG,而有些同事的项目质量则很高,自己却不知道如何才能尽可能地避免。
3 灵魂的拷问
- 知道很容易,懂很难,很多人把知道当做懂。自认为掌握了就不愿意再深入学习,恰恰错过了彻底掌握该知识的最佳机会;
- 专业基础不够扎实。 很多人急于求成,只重视解决眼前问题,不能够未雨绸缪,巩固好专业基础,最终导致很多问题” 知其然而不知其所以然 “,排查问题时靠猜、靠问,而不是靠扎实的专业基础之上的推测和验证;
- 很多人不愿意改变学习方法,学习和培养好的编程习惯,不敢走出舒适区。比如很多人学了很多技术,却从来没有认真仔细阅读过官方文档;比如读源码毫无章法,随心所欲,常常半途而废;
- 态度决定一切。很多人嘴上说想学好,但是对自己代码要求很低,总是为自己找各种理由不去学更好的方法,不去努力写更优雅的代码;
- 在学习技术过程中,很多人把脑力劳动当成了体力劳动,把需要思考的问题当做了纯记忆的问题,学习和工作过程中缺乏思考。比如很多人是 “记忆” 经典图书的知识点,而不是理解知识点,导致容易遗忘,不能灵活运用。在学习很多知识点时缺乏思考,没有去搞懂是什么、不明白为什么、不知道如何去做;
- 没有养成好的解决问题的习惯,排查问题靠猜,而不是思考和验证。也没有主动掌握常见的排查问题的步骤和工具等。
很多人缺乏的不只是好的资料,而是学习的方法。学一样的技术,使用不同的方法,最终学习的效果截然不同。而技术是学不完的,如果没有科学的方法,无法很好地应对层出不穷的新技术。每个人的成长速度是不同的,有的人工作多年,却只有一年的技术经验;而有的人工作一年,却有超越一年的技术经验。造成这种差异的主要原因在于学习能力。
从 Java 新手到高手的进阶过程是一个漫长的爬坑过程。 很多同学遇到 BUG 时由于基础不扎实也没有系统地排查方法,为了解决一个小问题浪费了大把的时间。而且写出的 BUG 太多将直接或间接影响绩效,影响同事、领导对你的印象。
阻碍初学者进步的往往是一成不变的学习方法,是一叶障目不见泰山的盲目自信,而破解尴尬的核心就在于提高自身的学习能力和排错能力。
4 解决方案
- 从学习方法主要切入点,结合源码,Java 语言规范 2 和 Java 虚拟机规范 3 等对《手册》的讲解和补充
- 设计者角度思考问题,很多知识点将从设计者视角去思考分析问题,更容易理解问题的根源
- 通过对开发中常用的思维导图、流程图和常见 UML 图的讲解,让大家可以 “大战需求分析”,前期明确需求,后期少返工
- 通过单元测试、Code Review 等相关知识的学习和运用,促进代码质量的提升
- 通过独特的学习源码视角,来从正确的角度和方法来学习源码的精髓,反向促进日常的开发
- 结合实际的开发经验,给出相关知识点掌握不牢容易造成的坑,给出一些避坑建议。
5 版本
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开发手册》详解
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
利用以太坊管理物联网设备 - 论文及源代码
本文介绍一个利用以太坊区块链管理物联网IoT设备的身份识别、验证和声誉的IoT设备管理系统。该系统使用Web界面在以太坊智能合约中注册物联网设备,并通过密码学签名消息验证Iot设备对平台的使用权。 以太坊教程链接:Dapp入门 | 电商Dapp实战 | ERC721实战 | Php对接 | Java对接 | Python对接 | C#对接 | Dart对接 1、区块链物联网设备管理系统的基本概念 __物联网/IoT设备的标识__:通过默克尔树(Merkle Tree)的利用,无需暴露设备的私有属性即可完成IoT设备的注册。使用公钥(或其衍生表示)作为IoT设备的标识ID。 __物联网/IoT设备的消息签名与验证__:系统中的每个消息都需要由发送端的IoT设备签名,并在接收端的IoT设备处进行验证。 发送端IoT设备的消息签名生成: 接收端IoT设备的消息签名验证: __物联网/IoT设备的固件指纹__:通过保存IoT设备的固件哈希,可以验证设备所运行的固件是否被非法篡改。 __物联网/IoT设备的信誉机制__:基于Web的信任原理,设备可以形成一个信任网络。一个IoT设备从其他有信誉的...
- 下一篇
五分钟学编程:怎么学数据结构
原创声明 本文首发于微信公众号【程序员黄小斜】 本文作者:黄小斜 转载请务必在文章开头注明出处和作者。 简介 学习编程,数据结构是你必须要掌握的基础知识,那么数据结构到底是什么呢? 根据百度百科的介绍,数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。 听听这是人话么,我帮你们翻译一下,其实数据结构就是用来描述计算机里存储数据的一种数学模型,因为计算机里要存储很多乱七八糟的数据,所以也需要不同的数据结构来描述。 本文思维导图 为什么要学数据结构 了解了基本概念之后,接下来我们再来看看,为什么我们要学习数据结构呢? 在许多类型的程序的设计中,数据结构的选择是一个基本的设计考虑因素。许多大型系统的构造经验表明,系统实现的困难程度和系统构造的质量都严重的依赖于是否选择了最优的数据结构。 许多时候,确定了数据结构后,算法就容易得到了。有些时候事情也会反过来,我们根据特定算法来选择数据结构与之适应。不论哪种情况,选择合适的数据结构都是非常重要的...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7安装Docker,走上虚拟化容器引擎之路
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS8编译安装MySQL8.0.19
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS关闭SELinux安全模块
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS8安装Docker,最新的服务器搭配容器使用