war包过大...一排查,几G文件里竟被打进一个实况足球???

2024-01-30 17:30

本文主要是介绍war包过大...一排查,几G文件里竟被打进一个实况足球???,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

👇👇关注后回复 “进群” ,拉你进程序员交流群👇👇

来源:https://www.zhihu.com/question/314644210

昨晚在家逛知乎的时候,看到了一个话题“一个程序员的水平能差到什么程度?”,看完,不得不说个个都是人才呀。给大家整理了一个高赞的回答。

Benny

想起了一件十多年前的往事,有一次帮客户的Java项目组升级框架。

入场之后屡次听到项目组的运维小哥抱怨war包过大,导致每次发布要等很久很久,用过WebSphere的童鞋可能知道我在说什么。

那么,这war有多大呢?

接近2G!!!???

富有求知欲的我于是下决心去研究下这鸽子,,不对,这war包为什么这么大?

草草一挖,果然就在里面发现了宝贝。

原来war包里还藏着两个程序安装包。

一个是JDK1.4;

另一个是PES2006,,,,实....实况足球?!

786b8d90ff192ac408a67ce6ef4c1e1e.png

根据SVN的提交记录,肇事的大哥很快就被找到了。

据说是在一个月黑风高的晚上,几个还在加班的码畜临时起意,决定一起找点乐子解解乏。

这位带头大哥为了方便把自己的游戏分享给小伙伴,就想到了把它先提交到SVN上这样一个天才的主意。。。。

当然,按照他原本的计划,这个文件应该随后被删除的。。。可是,那晚他们玩的实在太尽兴了。。。。

没人会料到这个文件竟会悄无声息的溜进war包,一路潜伏到生产环境,然后反反复复的摩擦了可怜的WebSphere和运维小哥近一年。

了解到真相之后,运维小哥表情差不多是这样的↓

566b9d13e04f4ad4f28d5dae7adedc5a.png

零五

老板觉得公司里都是男的,缺少一点阴柔之气,想平衡一下,正巧当时互金公司倒了一大批,大批简历投到公司,老板以为自己也是技术出身,就招了一个三年工作经验的女程序员,互金出来的,要价倒是不低。我休假去了,没面她,等我回来要安排工作了,这才发现问题了。

给她安排了一个新项目,是会展方面的,跟她简单说了一下工作安排:先搭个spring maven项目,然后跟产品谈下需求,考虑一下数据模型,过两天跟我碰再确定具体模型。她没说什么,等到第二天快下班了,产品来问我了,她怎么还没动工?我说我安排了啊,这就找过去问她,她说框架还等着技术总监(也就是我)搭了,她不是架构师,不会。

当时我就懵了,还有这种操作,你就是上spring网站都能搭一个啊。又问她需求谈了没有?数据模型有没有想出个大概?她又说,需求是BA谈的,她不会。我这就急了,那你会什么呀?她说她原来公司都是框架环境都是配好的,她只管写代码。我当时心里就凉了半截,这项目估计最后要我来收拾残局了。这就去找老板换人,老板说你就带带她吧,反正这项目也不急,就当给公司添一点亮色吧!

没办法,只能硬着头皮带她了,期间各种eclipse环境之类的就不谈了,比如svn配置忽略文件类型,lombok插件等等,总之环境不会配。终于帮她全部配完环境,详设也写好跟她讲解了一遍,总算开工了,若干天后提交代码了,我做了一下code review,这心里又凉了半截:方法,类名,变量等等一概中文拼音;业务逻辑明明可以复用的不写公用方法,跟别提用自定义注解了;驼峰命名法是什么不知道;

Mysql有的表字段名全大写,有的全小写,有的又跟我来个驼峰。我又跑去找老板要换人,老板打个哈哈,哎呀,又不是人人都有这个你这个水平,再带带说不定就出来了。没辙,给我戴顶高帽子,只好回去跟她苦口婆心地说了半天代码规范,其实就是阿里那一套,装个插件就能检查,又跟她着重讲了一下命名规范,要用英文命名,否则注释少的话很难看懂程序,她直点头,说这就改,我也就信了。

等到代码再次提交,我一看,一口鲜血差点没吐在屏幕上,展品的长宽高单位是米,结果好家伙一看,长度long_rice,高度high_rice,当时看的时候实在没明白这脑回路到底是个什么套路,强压怒火跑去问她这是什么意思,她振振有词地说:你讲的呀,命名的时候最好要体现度量单位

我实在忍不住了,吼起来了:那rice是什么单位,是什么单位?她也不示弱,把词霸的屏幕取词一开,移到米字那里,说:你自己看,米不就是rice吗!我顿时无语,只能又跑去找老板,老板也无语,只能自我解嘲地说:她不是过了四级了吗,我还查来着了。

这件事情最后的结局就是我在面人的时候,都要当面问几个英语单词,实在是怕了。

rice这个我是实在没看明白,记得还有一处我是看明白了,她把发消息的发命名为hair,我愣了一下也就知道。

知乎众大概还都是层次比较高的,认为这么简单的英语都不会是不太可能的...

但实际上这两天我又在面试,我看一位同学的笔试题写的代码里有scanner,然后面试的时候就问了他一句:scan是什么意思?想了半天,没说出来。

-End-

最近有一些小伙伴,让我帮忙找一些 面试题 资料,于是我翻遍了收藏的 5T 资料后,汇总整理出来,可以说是程序员面试必备!所有资料都整理到网盘了,欢迎下载!

41cfdbe7c3d9eb5ece294ed86823740f.png

点击👆卡片,关注后回复【面试题】即可获取

在看点这里0089d5342d623ec837f4899acd14a87d.gif好文分享给更多人↓↓

这篇关于war包过大...一排查,几G文件里竟被打进一个实况足球???的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/660995

相关文章

springboot3打包成war包,用tomcat8启动

1、在pom中,将打包类型改为war <packaging>war</packaging> 2、pom中排除SpringBoot内置的Tomcat容器并添加Tomcat依赖,用于编译和测试,         *依赖时一定设置 scope 为 provided (相当于 tomcat 依赖只在本地运行和测试的时候有效,         打包的时候会排除这个依赖)<scope>provided

网络故障排查和tcpdump抓包

网络故障排查: ping一台服务器不通,你如何排查 检查本机ip地址设置  网关和dns服务器是否设置正确 或者ip地址冲突能否上网 看路由器是否有问题 ping服务器是否运行服务器禁止ping   防火墙设置 iptables -A INPUT -P ICMP -j DROPiptables -D INPUT -P ICMP -j DROP用户不能访问服务器 怎么排查 检查用户网络连接检查服

Arthas问题排查工具

简介 Arthas 是Alibaba开源的Java诊断工具,动态跟踪Java代码;实时监控JVM状态,可以在不中断程序执行的情况下轻松完成JVM相关问题排查工作 。支持JDK 6+,支持Linux/Mac/Windows。这个工具真的很好用,而且入门超简单,十分推荐。 使用场景 这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?我改的代码为什么没有执行到?难道是我没

日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个 嫌疑犯的一个。以下为4个嫌疑犯的供词。

日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个 嫌疑犯的一个。以下为4个嫌疑犯的供词。 A说:不是我。 B说:是C。 C说:是D。 D说:C在胡说 已知3个人说了真话,1个人说的是假话。 现在请根据这些信息,写一个程序来确定到底谁是凶手。  static void Main()         {             int killer = 0;             fo

linux运维排查常用命令(开发专享)

cd: 进入到某个目录下 cd hikvision ll:详细展示该目录下有的文件 ll su 用户名:切换用户名 例子: su root 根据字符串在文件中查找信息:Grep –a –i 字符串 文件名 例子: grep -a -i 'indexCode=4a28a0dfe0244c0cbabcd9b2c3b60327' nms.nmsweb.debug.log cat 文

Commando War-uva 贪心

大意:给你N个任务,你交代他需要J时间,完成他需要B时间,问怎么搭配可以使全部问题完成时话的时间最少 思路:贪心算法,先做完成时间长的,完成时间相同的话先做交代时间长的,用了一下结构体二级快排 #include<stdio.h>#include<string.h>#include<stdlib.h>#define MAX_SIZE 1000 + 10struct Time{int

springboot部署war包

文章目录 添加依赖添加war包maven插件SpringBootServletInitializer打包 添加依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId><scope>provided</scope></d

一次关于生产环境服务无故宕机的排查过程

故事的开始 这个故事是在一年之前,当时我们的系统运行在客户的k8s环境上。然后很神奇的是每个月底我们都会服务宕机,当然我们开启了多个实例。当时的容器线条就像心跳图一样(或许有些描述的不太准确,我没有找到当时那个像心电图一样的容器资源监控图)。 第一次的排查 当时我们还是很有信心去解决这个问题的。由于每个月的月底都是业务使用的高峰时段,也就是说,从表象上来看,qps一高,容器就挂。 业务日

排查 MyBatis XML 配置中的 IF 语句与传值名称不匹配的 Bug

文章目录 本文档只是为了留档方便以后工作运维,或者给同事分享文档内容比较简陋命令也不是特别全,不适合小白观看,如有不懂可以私信,上班期间都是在得 前言,在改一个bug得时候发现一个有意思得问题,就是mybatis得xml中if判断得问题,传值名字不匹配依旧可以进行判断,如下图 传值userName,但是有意思得事情出现了,进了if,并且没有报错,尝试了两次都是这

解决war包中文件路径问题

在j2EE项目中,我们一般会把项目打包发布,一般是war包,作为独立单元,可以远程上传,加载,发布,还可以实现版本控制,但这与我们开发过程中使用MyEclipse自动部署有所不同,以下做详细说明. 使用war包部署,在tomcat和WebLogic下部署有很大的区别,tomcat会把war自动加压到当前目录下,然后再用解压的目录来发布,这与一般不会出现太大的意外,但如果是用WebLogic发布,