1. 聚能聊>
  2. 话题详情

系统可能已处在崩溃的边缘,因为你还在用过时的类和方法

近日,有一则失物招领很火

【暑假作业被漆同学领走啦!】漆同学凭自己的记忆到车站找到@成都地铁运营 工作人员领取了作业。运营君提醒小可爱们,出门注意带好自己的随身物品哦。负责任的告诉大家,作业你尽管丢好了,我们有n种方式帮你找回

_jpeg

网友对此事的评论也是异常的精彩。
网友:“这么辛苦才丢的,这么容易又回来了吗?”

像上面那位同学,把不应该丢掉的作业给弄丢了。

而对于我们开发人员来说,有些东西则是应该丢掉的却一直在用着 —— 过时的类和方法

产生过时的类和方法的原因:

一般情况下,无论是工具包或者依赖包,只要有大的版本更新,都很有可能产生一些过时的类和方法。而产生过时的类和方法的原因,或者是有bug,或者是有更好的实现方式。

通常过时的类和方法不会立马不能用,会在之后的一个版本兼容,再往后的版本可能就弃用。

对现在的开发人员比较好的一点是,很多 IDE 会提示我们,哪些类和方法是过时的。我们可以对这些类和方法选择用或者不用。当然建议最好是不要用过时的类和方法。因为当你再次升级版本的时候,那些用了过时代码的功能可能就无法正常运行。

很巧的是,今天刚好群里有位兄弟就因为遇到过时的类和方法而头疼的事情。

_

以下是本次话题的讨论
1. 你是否有注意到自己正在使用的方法或者类是过时的吗?
2. 哪些类或者方法过时了,你仍然在使用的?
3. 在替换过时的类和方法的过程,你有什么好的建议或者经验?

参与话题

奖品区域 活动规则 已 结束

  • 奖品一

    阿里云代金券 x 5

  • 奖品二

    星座淘公仔 x 2

  • 奖品三

    定制笔记本 x 2

11个回答

1

雷侠 已获得定制笔记本 复制链接去分享

  1. 你是否有注意到自己正在使用的方法或者类是过时的吗?
    我目前用的JDK版本,我自己写的代码是没有过时的类。但是以前存在的一些代码确实有着过时的类。
  2. 哪些类或者方法过时了,你仍然在使用的?
    URLEncoder.encode(s),我在目前的系统里面发现存在大量这样的代码。我用p3c插件扫描了一部分代码,发现存在上万个警告!

Snipaste_2018_08_20_13_52_05

  1. 在替换过时的类和方法的过程,你有什么好的建议或者经验?
    过时的方法不是想改就改的,还要结合目前系统情况才能改。

建议是,那些改了之后影响不大,或者说没有影响过时方法先改。其他,建议先看看文档或者注释里面提供的新方法再进行修改。

饭娱咖啡 回复

靠谱的建议

评论
0

黄一刀 已获得定制笔记本 复制链接去分享

这不就是我发的吗?
纠正:这编码插件如果能给些替换提示就好了。
改到虚脱,打字都错乱了

  1. 你是否有注意到自己正在使用的方法或者类是过时的吗?
    很早就已经意识到了这个问题,但是考虑到效益的问题,所以一直没去把这些方法替换掉,直到把jdk8升级到jdk10,结果报错了,然后又把jdk降回8,才下定决心去改。其实在我身边一个jdk5可以用一辈子的人比比皆是。
  2. 哪些类或者方法过时了,你仍然在使用的?
    org.apache.http.client.params.CookiePolicy;

Date的getHours、getMinutes;
Randomizer的netInt2;
ParallelDestination‘;
数不胜数,这些我都还在用,这和项目的生命周期有关,项目的生命周期越长,过时的类和方法就可能越多;

  1. 在替换过时的类和方法的过程,你有什么好的建议或者经验?
    现在除了查看新JDK的API是如何实现的,没有什么其他比较好的方法,非常耗时费力,就希望阿里的编码插件能够再人性化一点,能显示替换示例建议。

求笔记本。

饭娱咖啡 回复

你自己来认领啦!哈哈哈

wyx88688123 回复

黄一刀666

评论
0

gallely 已获得阿里云代金券 复制链接去分享

我要代金券给空间续费~~~

  1. 你是否有注意到自己正在使用的方法或者类是过时的吗?
    用的时候偶尔会遇到VS提示。
  2. 哪些类或者方法过时了,你仍然在使用的?
    好像没有再用了,提示过时了我都会找对应的换掉它。
  3. 在替换过时的类和方法的过程,你有什么好的建议或者经验?
    这个还真没有,跟着提示走就好了。
0

aoteman675 已获得星座淘公仔 复制链接去分享

1、你是否有注意到自己正在使用的方法或者类是过时的吗?
这个必须有从java的jdk6到10,一些优秀特性完全可以取代之前方法。但是目前还是维持在jdk8,没敢升级。安卓系统一直升级,软件APP也要不断的适配升级,一些类方法已经变斜杠了,需要被替换了,但还是还是会用,有时候也迫不得已。
2、哪些类或者方法过时了,你仍然在使用的?
几乎每个项目转维之后都会存在过时类和方法的,特别是使用了开源架构,OpenStack就很烦恼,升级需要动全身。如果项目本身不存在风险漏洞,一般情况下不会对过时的方法改造。项目一多,维护成本也就越多,项目改造也是一笔大投入。
3、在替换过时的类和方法的过程,你有什么好的建议或者经验?
能否有这样的IDE,导入项目,自动替换过时的类和方法,并自动适配编译。
替换过程中首先要评估需要替换量是多少?投入成本人力多少?项目运行是维持还是升级?如果是维持现状则没必要改造,因为亏本买卖干不了,万一跨了,还需要背锅赔偿损失。替换过程中逐步进行,在实验环境中可能没问题,可是在实际部署时,万一触发了一个未知的bug,也可以迅速找到故障点。

0

微wx笑 已获得星座淘公仔 复制链接去分享

  1. 你是否有注意到自己正在使用的方法或者类是过时的吗?
    不知从何时起,过时的方法就一直困扰着我,久久不能平静。
  2. 哪些类或者方法过时了,你仍然在使用的?
    有印象的主要是编码解码的。
  3. 在替换过时的类和方法的过程,你有什么好的建议或者经验?
    为什么要替换呢。如果是正在写一个新的系统,希望达到最优,或者向后兼容,那就替换。

如果已经存在的系统,就不要纠结了,过时了并不代表不能正常工作,对于生产它的那个时代,那个环境,或许它是最优的。哦,不好,预感有板砖向我飞来~~~

0

浮生递归 已获得阿里云代金券 复制链接去分享

  1. 你是否有注意到自己正在使用的方法或者类是过时的吗?
    有啊,但是如果同时用几种不同的语言做开发的话,就不想关注这一块。一会儿这个语言的方法类过时了,一会儿那个语言的方法类又过时了,整天都在处理过时的方法类中。
  2. 哪些类或者方法过时了,你仍然在使用的?
    大部分都还在使用吧,毕竟产量太高,项目太多,全部修改的话,工作量会很大,而且预算也会超出吧。我会告诉你做过100多个项目?在维护中的就还有十几个,二十几个?
  3. 在替换过时的类和方法的过程,你有什么好的建议或者经验?
    希望将来能实现一种像升级版本或补丁一样,自动升级掉所有过时的方法类。
0

天字号猪 已获得阿里云代金券 复制链接去分享

第一,既然你查过,没有毒,那就不是病毒所致。你试试重装系统看看还会不会出现你所说的那种情况。
第二,如果重装了系统以后还是会,那就说明你的硬件有问题。
第三,硬件有问题的话,突然经常死机大多跟CPU有关,有可能是CPU散热不好引起的,你把CPU拆出来,在CPU与风扇之间涂些硅胶,小心装上去
第四,如果排除了CPU问题,那就是显卡有问题,不兼容,换一块吧
第五,如果又排除了显卡问题,那就主板不行,跟你的硬件不兼容
第六,直接把电脑扔到垃圾桶里

2

灵魂锻造所 复制链接去分享

1. 你是否有注意到自己正在使用的方法或者类是过时的吗?
这个可以分两种情况

  • 已经开发过的代码,我就不会再去注意有没有过时。
  • 正在开发的代码,因为有 IDE 的提示,所以对过时的代码都不会去使用。

2. 哪些类或者方法过时了,你仍然在使用的?
在已经开发过的项目中,一定是有很多过时代码的。
但是对于已经开发过的项目,很难再去修改的。一方面,项目框架的约束,比如 jdk 1.6 中的有些代码在 1.9 中已经过时了,但是已开发的项目用的 jdk 是1.6,你无法越过这个 1.6 而去使用 1.9 的代码,除非项目整体升级到 1.9。而升级本身就会带来整个项目的不稳定,会有很大的工作量去修改过时或者弃用的代码,这又带动了业务的不稳定。

3. 在替换过时的类和方法的过程,你有什么好的建议或者经验?

  • 项目在搭建框架的阶段就要确定好各个 jar 包、插件、工具类.....的使用版本,以防止未来升级带来的风险。
  • 项目中最好都使用稳定版本的工具
  • 如果项目中真的到了需要替换代码的程度,首先搜索项目中需要替换的代码都在哪些功能方法里面,然后必须保证替换前与替换后整个功能方法的输出是一致的。
0

amiba.org 复制链接去分享

  1. 你是否有注意到自己正在使用的方法或者类是过时的吗?
    有.
  2. 哪些类或者方法过时了,你仍然在使用的?
    URLEncoder.encode(s),Java的Date类型的相关方法.
  3. 在替换过时的类和方法的过程,你有什么好的建议或者经验?
    首先定期升级项目基础依赖

使用阿里爸爸的idea代码规范插件识别过时方法,
然后,过时方法名用全局搜索+替换.

0

1886483774312014 复制链接去分享

@全体成员
阿里云服务器又出活动了

2核4G服务器一年269,两年499,三年699
可以撸3年注册新用户即可,使劲撸
https://promotion.aliyun.com/ntms/act/vm/aliyun-group/buy.html?group=4bwH4mxaah

有需要的可以去看看 小白勿扰 对小白没用