史上最强《Java 开发手册》泰山版王者归来

 

第一次提出完整的错,误码解决方案,并且新增 34 条规约,速来下载。...





阿里妹导读:潜力修炼一年之久的《Java 开发手册(泰山版)》今天发布!此次共计新增 34 条规约,修改描述 90 处,其中错误码规则更是第一次提出,完整的解决方案,大家参考错误码示例表,欢迎大家下载与阅读。

今日福利:评论区留言送纸质版《Java 开发手册》、最新版《码出高效》及社区周边。

“荡胸生层云,决眦入归鸟”,《Java 开发手册(泰山版)》正式和大家伙见面了!秉承着“码出高效,码出质量”的一贯愿景,泰山小哥跳着欢快的步伐向,大家走来了,以下是他的独白:

自华山版现身武林以来,大家都叫泰山泰山快现身,但是一开始我是拒绝的,不能因为你说来,我就马上来,直到我遇到了 stream.Collectors 类下 toMap() 方法的坑,转化逻辑对我等键盘侠来说应该是,手到擒来,谁知一脚深坑踩进,了无底洞,两个相同 key 的转化时就已经撂挑子了。怎奈祸不单行,toMap() 大哥在进行值为 null 的转化逻辑时突然的,空指针异常,又一次给了我沉痛一击,于是我悔悟,我惶恐,我连夜买着,站票赶来见大家,欲知详情如何,请速速下载《Java 开发手册(泰山版)》。

错误码一统中原

夜色中的火车驶过泰安站,我朦胧欲睡时,边上的 HTTP 小哥传来一个声音“嘿,兄弟,前方道口 404 信号灯了”,我一脸懵逼状,然后他就开始嘲笑我们后端程序之间纷繁复杂,又各自为政的错误码定义,这让我十分没有面子。但是今天!这样局面就要被终结!你还在为杂乱的,错误码而烦恼么?统一错误码,就是统一度量衡,为你的应用与服务,的稳定保驾护航,烦恼清空,快乐回家。

泰山版新近出炉的,错误码具有快速溯源、简单易记、沟通标准化三大优势。错误码为字符串类型,共 5 位,分成两个部分:错误产生来源和,四位数字编号。错误产生来源分为A/B/C,以当前代码运行视角来,进行判定:

  • A 表示错误来源于用户,比如请求参数错误,用户安装版本过低等问题。
  • B 表示错误来源于当前系统,往往是业务逻辑出错,或程序健壮性差等问题。
  • C 表示错误来源于第三方,服务,比如 CDN 服务出错,消息投递超时等问题。
优秀的错误码可以迅速知道他们,是怎么来滴,从哪儿来滴,来干啥滴。同时俺们的错误码具有,三级结构,分为一级宏观错误码、二级宏观错误码、三级宏观错误码,你想要的,泰山我全部都有。

闰年多一天多一丝烦恼  

蔡国庆叔叔曾唱过“一年有三百六十五个日出,我送你三百六十五个祝福”,当闰年的时候,我们就会有一天收不到蔡叔叔,的祝福了。虽前有“千年虫”之鉴,但好多朋友却开始在代码中,玩儿起了“闰年虫”,一个写死为 365 天的年份天数,在闰年里让大家尝尽,了悲伤痛楚,比如,缓存有效期 = 365*24*60*60 秒,结果提前一天所有缓存,同时失效,高并发(高并发),访问时数据库就跪了。对此,泰山我不禁要问了,LocalDate 它不香么,你要的年份、天数,它通通拥有,听哥的,以后这坑啊,咱不踩。

表的别名  

“在这表的世界里,为什么我不配拥有一个简洁,的江湖头衔?”SQL 老弟常常对我说,这日子他过得憋屈。 “泰山大哥,你知道么?我在一个多表操作的 SQL 中大吼一声行者孙,竟然活生生蹦出了俩,劈头盖脸那就是给我,一顿胖揍。”多表连接操作的时候,当一个相同的列名出现在多个表的,时候就是会如此,多个行者孙打架(孙,打架)斗殴的场面屡见不鲜。我们能做的就是用,表的别名(或表名)来给这些小猴子般,的操作列加上限定,不然花果山的猴子就会跟,果子岭的猴子起冲突,让我等键盘侠沦落于,无穷的 BUG 地狱中,不得超脱。

代码无空行憋得慌

遥望东海,当年我也是代码届一蛟龙,可上九天揽月,可下五洋抓鳖,但是有些仁兄的百余余行一站到底式的,瀑布布式写法还是让我玉面小蛟龙感受到了窒息的滋味。代码和人一样,憋久了也是要换气的,未来你的代码要被很多人,阅读和修改,因此,不要让阅读者感到,憋闷和窒息,也是好的代码应该,做的事情,当某个方法的代码,行数超过 10 行时,return / throw 等中断逻辑的右大括号后,加一个空行。合适的换行能够让阅读者获得,喘息的机会,更能让代码之间的组织方式,更加的协调。

三目运算符的任性  

三目运算符这个外表看起来老实巴交的,孩子却不是个好相处之辈,竟然也玩起了,儿时类型转化的游戏,让我等好汉折了腰。这是咋回事儿呢?原来在三目运算符中:

    condition ? 表达式 1 : 表达式 2


    表达式 1 和 2 在涉及算术计算或数据,类型转换时,会触发自动拆箱。拆箱操作本来没有问题,但是当其中的操作数为 null 值时,一个大大的 NPE 就砸到了我滴脸上,泰山我不能让兄弟们前赴后继,踩进深坑里,跌得鼻青脸肿,下面就复原下现场,大家回家思考,一下为啥抛出 NPE 异常:

      Integer a = 1;
      Integer b = 2;
      Integer c = null;
      Boolean flag = false;
      Integer result = (flag ?

      a * b

      :

      c);


      寄语未来

      本次泰山版是一次全新的革新,涉及到集合转化函数式接,口中的深坑、年份天数写死所,带来的问题、SQL 多表操作未加表名,对字段限制惨案、以及统一错误码能够为我们带来的巨大好处,更多的细节与精彩我们可以在泰山版,手册中细细品读。这些年来我们同全球有着相同极致追求,的开发者一起,不断的完善和迭代着 Java 开发手册,用技术情怀去做一件,帮助所有 Java 开发者们避免踩坑。因为相信,所以看见,未来我们将一起,继续为全球的 Java 开发者们服务,致力于消灭各类程序,中的疑难病症。

      手册中每一条规约的背后,都有一段或悲伤或遗憾的故事,将前人的历史,经验沉淀下来,让后面的人的路走,的更平坦。我们于小中见大,于细微处见真章。“见渺小之物必细查其纹理”,可能也是我辈技术人,独有的浪漫,small is powerful, small is beautiful。

      再次感谢各位全球开发者,本次《Java 开发手册(泰山版)》共计新增 34 条规约,修改描述 90 处,其中错误码规则更是第一次提出,完整的解决方案,欢迎大家下载与阅读。下一个版本“嵩山版”,咱们少林寺见真功夫。

      识别下方二维码,或点击文末“阅读原文”,疯狂下载《Java 开发手册(泰山版)》吧:


      福利来了  

       

      评论区留言

      送孤尽老师签名版

      《Java 开发手册(泰山版)》

      《码出高效》

      在学习和使用手册的过程中你有哪些疑惑?有没有哪一条代码规约,想要增加到手册中?错误码的方案你认同吗,为什么?欢迎同学们在评论区留言,孤尽老师将选出 5 个评论回复,并送出最新版《码出高效》点赞数前 2 名送纸质版手册,点赞数 3 - 7 名送阿里云 ET 小公仔、超大鼠标垫、卫衣等社区周边,到 23 号 14:00 截止。

      祝大家在编程的道路上,码出高效,码出质量 :)



      你可能还喜欢
      点击下方图片即可阅读

      Java 正青春:现状与技术趋势报告


      开源 | App 开发神仙工具:帮你抓 Bug

      关注「阿里技术」
      把握前沿技术脉搏


      戳我,免费下载《Java 开发手册(泰山版)》。


          关注 阿里技术


      微信扫一扫关注公众号

      0 个评论

      要回复文章请先登录注册