9月火气大,能认真写代码么?

不羡鸳鸯不羡仙,一行代码调半天。原创:小姐姐味道(微信公众号ID:xjjdog),欢迎分享,转载请保留出处。

我在风中藏把刀,斩尽世间秋色。  这句注定要流传千古的名诗,是xjjdog于2020年9月6日书写,体现了作者想要毁掉秋色,又对其毫无办法的矛盾心理。

秋天很让人讨厌,除了是万物萧条的开始,它还容易让人上火,容易让鼻炎复发。万物都会受到季节的影响,失去它的本性。当然,程序员也不例外。

今天是周末,本应该是不上班的。但中国在1995年之前,是没有周末的,周末是无数先烈们用鲜血换来的权益。

周末并不代表星期天,而是周六。星期天其实叫做礼拜日”,由于上帝在第七天休息,所以是西方人在这天去教堂的日子。所以,程序员一般选择周六加班,周日并不加班。

但很明显,这是舶来品!我好像找到加班的理由了!

总之,今天我们来加班了!空调开的很足,是个分享知识的好日子。


今天有同学分享的话题是:为什么日志规范里,要推荐使用占位符来书写日志。

log.debug("Processing trade with id: {} and symbol : {} ", id, symbol);

小A说:很明显了,这是因为{}这对符号,非常的优雅。通过占位符方式,参与占位的那些参数,就可以被复用。这在设计上是非常优雅的。

小B说:我有点认同小A的观点。通过{}这种替换方式,每次都需要耗费CPU去进行查找替换。效率上肯定不是最优的,作者既然提供了这种方式,那肯定是出于代码的简洁性这种trade off进行设计的。

小C说:我觉得作者纯粹是脱了裤子放屁,直接使用+进行拼接也是没什么问题的。我用+拼接用了好多年了,也没什么问题。这就是作者顺手提供的API而已,并没有什么意义

小A问小C:你知道+在Java中怎么处理的么?

小C说:不要拿这种老掉牙的问题来问我。+最终在字节码上,都是使用StringBuilder进行拼接的。我还知道StringBuilder和StringBuffer,其实在效率上并没有什么区别。

小A不服:怎么就没有区别了?一个是同步方法,一个是正常的方法,肯定有区别的。

小C白了小A一眼,没有说话,似乎是不屑于解答这个问题。

别扯远了啊。推荐使用占位符方式,其实还是有非常大的道理的。看一下下面这段代码你就明白了,分享的同学及时的掩盖了这个尴尬。

if (log.isDebugEnabled()) {log.debug("Processing trade with id: " + id + " and symbol:" + symbol);
}

大家热火朝天的讨论起来。由于讨论又臭又长,xjjdog在此总结一下。

线上的日志级别,一般是使用INFO或者WARN的,DEBUG日志一般都不会打印出来,因为它的内容会非常的多非常的啰嗦。上面这段代码,在打印DEBUG日志之前,先进行了一步是否能打印DEBUG日志的判断。

这个判断,log.debug方法已经在方法内做了一次了,我们何必要多此一举呢?

注意debug中的内容,我们是使用+进行判断的,()里参数的优先级,是高于debug方法本身的。如果我们不加上外层的判断,那么debug里面的参数,无论是否要打印,都要进行一次拼接。

假如我们现在是ERROR级别,里面的这些参数依然要进行拼接。由于String对象是不可变的,这些拼接的字符串,就要占用非常多的堆空间,造成浪费。

这样解释{}占位符就比较好理解了。因为它生成的字符串数量是固定的,只有在真正需要打印的时候,字符串才会被拼接。

按这个逻辑,如果是log.error方法,你怎么玩都可以。

小A小B小C小F,全部都点头称是。


你们这是在这里讨论一些什么狗屁东西?工作进度都正常么?。正在大家讨论的热火朝天的时候,一个不协调的声音传来。

大家回头一看,原来是项目经理来了。他抱着一台老掉牙的灰色笔记本,屏幕上打开着他最喜欢的Excel,花花绿绿的统计表格甚是好看。

小A说:我们的进度都正常啊。主要是今天来加班,等的就是需求确认下来。

项目经理说:需求不早就给你了么?王总对这个需求非常的重视,你们得紧张起来。这个星期我都没找到关于这个需求的任务项。

小B说:这个需求根本就不明确,需要先把基本的功能点给订下来。我们加班也不能白加,在这讨论一下技术问题,增加一下技术氛围,有什么问题?

项目经理说:技术氛围有什么用?加班就是用来做需求的,进度不正常写的代码再牛X有什么用?这个功能王总要求下个周就要上,你们还有闲情逸致在这里搞讨论。讨论点需求不行么?

我在一旁静悄悄的看着,项目经理明显是受到秋天的影响了,目前有点火大。这明显违背了项目经理需要情绪稳定这个基本素质,他炸毛了。

反观程序员们,脸红脖子粗,争辩是他们的常态,骨子里的那点骄傲溢于言表。

x你m的,老子忍你很久了,小C跳将起来,一巴掌拍在项目经理的电脑上。花花绿绿的电子表格上面瞬间出现了一道道电子干扰波。

老子也忍你很久了!! 项目经理也怒了,指着小C的鼻子吼叫:就TM数你干活慢,整天整些没用的。

一时间口水乱飞,恶语飞贯,振的天花板上灰尘都掉了下来。

你可能会奇怪,他们怎么不动手呢?因为这有前车之鉴。前不久在公司,两个干仗的都被开除了,而且不给赔偿,所以冒不得这个风险。

过了一会儿,大家都吵累了,怒气冲冲地盯着对方。项目经理并没有因为是一个人就败下阵来,因为其他的程序员都是怂货,只有小C在和他对骂。

这个需求,我和客户聊了一下,觉得不太应该做。今天大家可以早点下班了。正在大家发愣尴尬的时候,王总的声音竟然传了过来。他刚和客户通完电话,没有看到这激烈的场面。

我偷偷跑到王总身边,伸手遮住嘴,悄悄和王总耳语了几句。我得把发生的问题告诉他。

王总的脸沉了下来:一个项目组,就是一个大家庭!不求相爱,也不能相杀。你们这种行为破坏了团结,非常的不可取。项目组的全体成员,这个月绩效全部为C!

一时间,大家幸灾乐祸的看着我。我尴尬的笑了笑,他们应该不是恨我,这根本就是秋天惹的祸。

作者简介:小姐姐味道  (xjjdog),一个不允许程序员走弯路的公众号。聚焦基础架构和Linux。十年架构,日百亿流量,与你探讨高并发世界,给你不一样的味道。我的个人微信xjjdog0,欢迎添加好友,进一步交流。

推荐阅读:

一图解千愁,jvm内存从来没有这么简单过!
失联的架构师,只留下一段脚本
架构师写的BUG,非比寻常
nginx工程师,需要上承天命,下召九幽
实力解剖一枚挖矿脚本,风骚操作亮瞎双眼
又一P1故障,锅比脸圆
传统企业的人才们,先别忙着跳“互联网”!
面试官很牛,逼我尿遁
又一批长事务,P0故障谁来背锅?
一天有24个小时?别开玩笑了!
《程序人生》杀机!
可怕的“浏览器指纹”,让你在互联网上,无处可藏
2w字长文,让你瞬间拥有「调用链」开发经验
996的乐趣,你是无法想象的
作为高级Java,你应该了解的Linux知识(非广告)
必看!java后端,亮剑诛仙(最全知识点)
学完这100多技术,能当架构师么?(非广告)
Linux上,最常用的一批命令解析(10年精选)
数百篇「原创」文章,助你完成技术「体系化」


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2219629.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

html语言登黄鹤楼,《中国诗词大会》命题专家方笑一, 揭秘千古名诗《登黄鹤楼》为何格律“不合格”...

楚天都市报10月26日讯(记者舒均 李辉 通讯员王红念 江萌)10月26日上午,华东师范大学古籍研究所教授、央视 《中国诗词大会》命题专家暨现场学术顾问方笑一做客“黄鹤大讲堂”,带来一场《古诗词与天下名楼》品评锦绣诗词的讲座,受到江城上百名…

NLP 自然语言处理实战

前言 自然语言处理 ( Natural Language Processing, NLP) 是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法,用于分析理解机器与人之间的交互,常用的领域有:实体识别、文…

软件行业与就业(导师主讲)

在企业软件应用的整体架构体系中,有一部分被称为中间件,那么什么叫中间件? 中间件(Middleware)是指位于操作系统和应用程序之间的一层软件层,它提供了一组工具和服务,用于简化和增强企业软件应用…

Docker修改阿里源

在一次安装rtmp推流服务时,总是无法下载源,估计是国外资源下载超时照成的,于是想到修改为国内源。 docker pull alfg/nginx-rtmp Using default tag: latest latest: Pulling from alfg/nginx-rtmp 530afca65e2e: Retrying in 7 seconds c20…

试卷模板 html,一年级语文试卷模板

一年级语文试卷模板 每个学期我们都要进行一次考试,为让大家能够考的更好,下面,小编为大家分享一年级语文试卷模板,希望对大家有所帮助! 一、选字填空,再把句子读一读。 元 园 原 圆 员 1.公(   )里的花好看极了…

Qt QGridLayout和QFormLayout案例分析

QGridLayout和QFormLayout是Qt中常用的布局管理器,可以用于在应用程序中设置控件的位置和大小。 QGridLayout网格布局(栅格布局) QGridLayout是一个网格布局管理器,可以将控件放置在一个二维网格中。在QGridLayout中,控件可以跨越多个行和列…

linux中安装RocketMQ以及dashboard

前提: 需要安装jdk8 上传下面的文件到服务器中 新建目录 mkdir rocketmq 将下载后的压缩包上传到阿里云服务器或者虚拟机中去,并解压 unzip rocketmq-all-4.9.2-bin-release.zip 配置环境变量 vim /etc/profile 配置内容: export NAM…

mysql面试题29:大表查询的优化方案

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:说一下大表查询的优化方案 以下是几种常见的大表优化方案: 分区&…

ubuntu显卡驱动掉了重新装

之前装好的Ubuntu显卡驱动因为系统内核自动升级(以防下次再次出现这种情况现在立刻马上关闭所有自动更新)输入nvidia-smi指令不再提示显卡信息,此时不需要重装系统,再次装显卡驱动即可。方法如下(此方法适用于之前装成…

【java学习】类的方法(17)

文章目录 1. 类方法的基本用法2. 对象的创建和使用3. 练习题4. 方法的调用4.1. 注意事项 类的两个成员:方法和属性 1. 类方法的基本用法 方法是类或对象行为特征的抽象,也称为函数。java 里的方法不能独立存在,所有的方法必须定义在类里。 …

更新内核,显卡驱动崩掉解决办法

以下是在崩掉后,重新启动,nvidia-smi出现的问题: NVIDIA-SMI has failed because it couldnt communicate with NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.这里使用了sudo apt-get install dkms的方…

408-2014

一、单项选择题 1.下列程序段的时间复杂度是_______。 count0; for(k1;k<n;kk*2)for(j1;j<n;j)count; A.O() B.O(n) C.O() D.O(n*n) 解答&#xff1a;C 外层循环的时间复杂度为 O() &#xff0c;内层循环的时间复杂度为 O(n)&#xff0c;因此结果…

gma 2 教程(三)坐标参考系统:1.坐标系和坐标参考系统模块简介

安装 gma&#xff1a;pip install gma 坐标参考系统是地理空间数据表示和位置定位的基础&#xff0c;它是一种用于描述和测量地球表面位置的标准化框架。其定义了坐标系统、基准面和坐标单位等要素&#xff0c;以确保地球上不同地方的位置可以一致、准确地表示和比较。 本章以g…

拥抱产业发展机遇 兑现5G商业价值

[阿联酋&#xff0c;迪拜&#xff0c;2023年10月10日] 今天&#xff0c;以“将5G-A带入现实”为主题的2023全球移动宽带论坛在迪拜举行。本次大会上&#xff0c;华为轮值董事长胡厚崑与GSMA总干事Mats Granryd围绕“5G产业进程与发展”连线对话。胡厚崑指出&#xff0c;“技术发…

计算机论文 指导老师评语,毕业设计指导老师评语(精选5篇)

毕业设计指导老师评语(精选5篇) 在现实生活或工作学习中,许多人都有过写评语的经历,对评语都不陌生吧,通过评语的导向作用,我们可以引导某项工作或教育活动朝正确方向发展。那什么样的评语才好的评语呢?以下是小编帮大家整理的毕业设计指导老师评语(精选5篇),欢迎阅读与收…

计算机系本科毕业论文评阅评语,毕业论文评阅教师评语

毕业论文评阅教师评语 一段忙碌又充实的大学生活要即将结束,大学生们毕业前都要通过最后的毕业论文,毕业论文是一种有计划的检验学生学习成果的形式,写毕业论文需要注意哪些格式呢?以下是小编帮大家整理的毕业论文评阅教师评语,仅供参考,欢迎大家阅读。 1、 本文选题符合…

计算机专业开题报告指导老师意见评语,开题报告指导教师评语

开题报告指导教师评语 在现在社会&#xff0c;报告与我们的生活紧密相连&#xff0c;报告中涉及到专业性术语要解释清楚。相信许多人会觉得报告很难写吧&#xff0c;下面是小编为大家收集的开题报告指导教师评语&#xff0c;仅供参考&#xff0c;希望能够帮助到大家。 开题报告…

教师对php作品评语通用,期末教师给学生的评语

期末教师给学生的评语 张xx&#xff1a; 你是个懂事的女孩&#xff0c;与同学交往中&#xff0c;懂得谦让&#xff0c;看到师长&#xff0c;总能主动热情地打招呼。上课能认真听讲&#xff0c;积极举手发言。本学期&#xff0c;你学会了跳长绳&#xff0c;也能用百变魔尺折出一…

Congestion Control for Large-Scale RDMA Deployments

文章目录 IntroductionDCQCNBuffer Setting Introduction PFC是粗粒度的流量控制机制&#xff0c;在端口层面发挥作用&#xff0c;不区别不同的流。这会导致很多弊端&#xff0c;比如不公平&#xff0c;受害流等。 解决PFC限制的解决方法是flow-level的拥塞控制&#xff0c;D…

华为OD机试 - 数组组成的最小数字(Java 2023 B卷 100分)

目录 专栏导读一、题目描述二、输入描述三、输出描述四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、说明 华为OD机试 2023B卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&#xff09;真题&#xff08;A卷B卷&#…