代码写成这样,老板把我开除了| IT 巨能唠

今天聊一聊遇到过的一些神逻辑代码,不一定很全,但真心让小编我自叹不如啊!

1、耍猴的最佳手段

还记得 XX 手机的抢购活动么,抢购按钮的代码类似是这样的:
<a href="javasript:alert('抢购结束!')">立即抢购</a>
活动还没开始就结束了。。
后面有人挖出来这段神逻辑,大家真是哭晕在厕所了,还好,抢购买手机这种我从来不参加。。
就是在前端写死代码造成抢购结束的假象,其实请求压根没有发送到服务器,或者休眠几秒直接跳转到抢购结束页面,良心点的,点 10 次有一次发到服务器就不错了,这样耍猴是不是太好玩了?
众所周知,为了提高服务器的承载能力,现在各类 APP、网页等都会或多或少加入前端缓存,但上面这种耍猴的代码也太无耻了。

2、猪一样的队友

大家有没有见过这样的代码:
<!-- 原价 180 元,现在活动价 228 元,活动结束后恢复原价 -->
...
这上面的活动价比原价还贵,真是哭笑不得……
类似这样的代码,一些程序员在注释中说明活动的内容,又或者是把一些生产上环境的 IP、端口、用户名、密码等敏感信息把在注释中,好随时能切换……
真是猪一样的队友,这样的程序员不开除么!?定时炸弹啊!

3、最牛逼的排序算法

据说是一个月薪 9K 的 Java 程序员,因老板让他写一个排序算法,然后他就写了一段屌炸天的休眠排序算法,接着他就被老板开除了……
排序算法代码大概是这样的:

640?wx_fmt=png

这个程序员更棒啊,数字排序,用一行简单的 Arrays.sort 就搞定的东西,他竟用到了这么多概念。

1、循环
2、线程休眠
3、多线程
还好是数字小啊,还好休眠是毫秒啊,要是数字大,要是休眠时间是秒,那要等多少休眠时间才能排序完?
按道理,他的程序也没问题啊,老板为什么要开除他?应用程序中出 BUG 不是很正常的事吗?但他这种排序思维,能写出这样的隐藏 BUG 也是绝了,创造性的发明了 "休眠排序" 算法,系统里面还不知道有多少这样的坑,不开除他开除谁啊?

4、休眠的最高境界

/**
 * 获取未来几天的日期
 * @param days 指定的天数
 * @author 微信公众号:Java技术栈
 * @return
 */

public static Date getNextDays(int days){
    try {
        // 休眠指定的天数
        Thread.sleep(days * 24 * 60 * 60 * 1000);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
    // 休眠结束后返回日期
    return new Date();
}
获取指定日期用休眠?写完,已笑晕在厕所。
开除的原因是因为没写注释吗?
显然不是,休眠的逻辑,大家都懂,不需要写注释,你注释写休眠 1 天也没意义啊。
这个程序员的思维不是一般的牛啊,获取下一天的日期,居然要休眠等到下一天再获取,欲哭无泪。
想离职找不到借口?
那还不容易,哥送你这段加强版,复制这段代码,提交打包测试上线,坐等开除。

5、真就是假,假就是真

boolean isBoy = user.isBoy() == true ? truefalse;
if (isBoy){
    ...
else {
    ...
}
布尔值可以直接拿来用,你硬要写个三元表达式?年底绩效考核了,代码量有 KPI 么?
还有类似这样的:
if (xx1 == true && xx2 !=  true){
    ...
else {
    ...
}
还有这样的:
if (xx1 > xx2){
    return true;
else {
    return false;
}
写得太优雅了!

6、循环循环循环

for (int i = 0; i < 1; i++){
    ...
}
一个循环也用循环,曾经就遇到过这么一段,不知所云了,要改这段代码,还要把他叫在旁边坐着,看着改才行。。
for (;;){
    ...
}
死循环这么写,我们就看不出来了么?

7、魔法值的真谛

曾经检查代码时,发现代码中很多魔法值,叫同事要定义成公共常量,结果来了这么一段:
private final static int ZERO = 0;
private final static int ONE = 1;
private final static int TWO = 2;
...
看到上面的常量定义,我真想打人,虽然魔法值是没了,但又定义了一些没有意义的常量,完全没有理解修改魔法值的真谛,这和脱裤子放屁有什么区别?
上面还只是一个简单的示例,实际审查情况远比你想象的糟糕。

8、看花眼的参数

Order order = new Order(orderNo, 1678.13"CNY"13"wx"5"1"0"8"01new Date());
看到这样的代码,我也是醉醉的了。
我就见过同事写出这样的代码,是赶时间呢,还是真的不会设计模式,一个构造函数参数能写这么多,且不说魔法值,这么长,看一眼都觉得头大。

9、消失的异常

try {
    ...
catch (Exception e) {}
程序捕捉了异常,却不打印。
try {
    ...
catch (Exception e) {
    e.printStackTrace();
}
错误是输出来了,但没有输出到日志文件。
try {
    ...
catch (Exception e) {
    logger.info("...", e);
}
日志级别用的不对,去错误日志文件里面死活找不着错误日志。
上面的种种不规范的写法,在生产环境出现问题时,一方面导致排查问题艰难,另一方面,监控系统也不能及时地监控到异常。

10、神奇的if

最后一个了,压轴了。。
来,我们一起赏析下这段神奇的 if 代码:
if(user.getFirstName() != null)
    if(user.getMiddleName() != null)
        if(user.getLastName() != null)
            if(user.getNickName() != null)
                if(user.getShortName() != null)
                    if(user.getFullName() != null)
                        if(user.getFamilyName() != null)
                            if(user.getEnglishName() != null)
                                ...
                                return true;
return false;                                
这段代码够奇葩了吧,一个 if 能搞定的非要写这么长,还缩进得这么有层次感。
老规写神逻辑代码的人才这么多,找问题、解决问题真是太难了。关注CSDN云计算,并在本文下方留言,参与互动,聊一聊你见过的最无可奈何的代码。留言点赞数最多的前3位粉丝,每人获得surprise一份。当然,你也可以顺带提出对栏目的建议,比如你想参与什么样的讨论话题吧啦吧啦。
640?wx_fmt=jpeg

活动时间:11月12日09:30—11月13日 09:30
活动奖品:大数据相关书籍,随机赠送哟


尴尬而不失礼貌的TIP:为了公平公正地照顾到每位粉丝儿的需求,每个人每月只能最多获得一次奖品的机会。若一个月内已获得奖品,即使点赞数最多,也顺延到下一个人。请知晓。
【关注IT巨能唠,每天都是1024。电脑在、BUG在、云计算在、我在。你还要怎样更好的世界?

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

springboot+vue项目如何在linux上部署

在linux上部署项目&#xff0c;是我们实训项目作业的最后一步&#xff0c;此时我们的项目编码测试已经完成&#xff0c;接下来就需要在服务器上部署上线&#xff0c;那么如何部署上线&#xff0c;接下来我会在虚拟机上的CentOS7系统上实现部署&#xff0c; 一.下载JDK 因为我…

离线数据同步神器:DataX,支持几乎所有异构数据源的离线同步到MaxCompute

概述 DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台&#xff0c;实现包括 MySQL、Oracle、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、DRDS 等各种异构数据源之间高效的数据同步功能。 DataX本身作为数据同步框架&#xf…

MaxCompute Hash Clustering介绍

背景 在MaxCompute查询中&#xff0c;Join是很常见的场景。例如以下Query&#xff0c;就是一个简单的Inner Join把t1表和t2表通过id连接起来&#xff1a; SELECT t1.a, t2.b FROM t1 JOIN t2 ON t1.id t2.id; Join在MaxCompute内部主要有三种实现方法&#xff1a; Broadca…

上热搜了!“学了Python6个月,竟然找不到工作!”

在编程界&#xff0c;Python是一种神奇的存在。有人认为&#xff0c;只有用Python才能优雅写代码&#xff0c;提高代码效率&#xff1b;但另一部分人恨不能把Python喷成筛子。那么&#xff0c;Python到底有没有用&#xff0c;为什么用Python找不到工作&#xff1f;CSDN小姐姐带…

wget连接指定端口_新技能:wget参数有用过吗?

Wget是一个从网络上自动下载文件的工具&#xff0c;支持HTTP、HTTPS、ftp三个最常见的TCP/IP协议下载&#xff0c;并可以使用HTTP代理。“wget”这个名称来源于“world wide web”与“get”的结合。自动下载文件时什么意思&#xff1f;就是指&#xff1a;wget可以在用户退出系统…

数据脱敏平台-大数据时代的隐私保护利器

什么是数据脱敏 又称数据漂白、数据去隐私化或数据变形。是对核心业务数据中敏感的信息&#xff0c;进行变形、转换、混淆&#xff0c;使得对业务数据中的身份、组织等隐私敏感信息进行去除或掩盖&#xff0c;以保护数据能被合理、安全地利用。 数据脱敏的重要性 1&#xff09;…

数据中台送到家 企业数字化转型“输血”变“造血”

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | 刘丹 责编&#xff5c;阿秃出品 | CSDN云计算&#xff08;ID&#xff1a;CSDNcloud&#xff09;如果有人要问2019年技术圈什么最热&#xff0c;“中台”绝对当仁不让&#xff0c;从观望到试水&#xff0c;很多公司做出了从 0…

虚拟服务器 端口管理,Apache服务配置虚拟主机(基于域名、端口、IP地址)与简单访问权限管理...

虚拟Web主机在同一台物理服务器中运行多个Web站点&#xff0c;其中每一一个站点并不独立占用一台真正的计算机。httpd支持的虚拟主机类型基于域名的虚拟主机基于IP地址的虚拟主机基于端口的虚拟主机构建虚拟主机------基于域名(1)安装bind、httpd服务。(2)进入named服务的主配置…

这个2684亿交易额里你贡献了多少?

戳蓝字“CSDN云计算”关注我们哦&#xff01;你们的朋友圈被天猫的双十一交易额刷屏了吗&#xff1f;1今天一大早醒来&#xff0c;按照往常翻了一下朋友圈&#xff0c;朋友圈都在晒天猫的双十一成交额&#xff0c;大家纷纷讨论你为这个交易额贡献了多少&#xff0c;小编表示自己…

大数据驱动业务决策,CDN实时日志重磅上线

背景 CDN是非常重要的互联网基础设施&#xff0c;用户可以通过CDN&#xff0c;快速的访问网络中各种图片&#xff0c;视频等资源。在访问过程中&#xff0c;CDN会产生大量的日志数据&#xff0c;而随着如今越来越复杂的网络环境变化&#xff0c;和业务的迅速增长&#xff0c;日…

oa服务器怎么修改域名,oa域名服务器配置

oa域名服务器配置 内容精选换一换当您想在Internet上通过域名访问您的网站时&#xff0c;可以通过本操作将域名托管至华为云的云解析服务&#xff0c;并为域名添加解析记录。例如&#xff0c;搭建一个网站服务器&#xff0c;采用IPv4格式的弹性IP地址。如果想要实现通过域名“e…

当S8遇上边缘计算:谈阿里云ENS对直播业务场景的支撑

近日&#xff0c;英雄联盟S8全球总决赛落下帷幕&#xff0c;中国战队IG零封FNC夺得冠军。这场比赛引起了国内网友的超高关注度&#xff0c;也给直播平台带来了不小的技术挑战。虎牙直播平台结合阿里云边缘节点技术方案&#xff0c;保障了总决赛当日7000万在线用户的低延时、稳定…

下行物理信道rs_5G物理层服务模型

物理层做为无线通信网络最重要的一层&#xff0c;提供了很多数据传输服务&#xff0c;如下&#xff1a;输通道上的错误检测并向高层进行指示; 传输信道上的FEC&#xff08;Forward Error Correction&#xff09; 编码和解码; Hybrid ARQ 软合并; 编码传输信道到物理信道的速率匹…

谷歌“夜莺计划”秘密采集数百万美国人健康隐私;联发科首款7nm产能的5G芯片;2019年天猫双11落幕,最终成交额2684亿……...

关注并标星星CSDN云计算 速递、最新、绝对有料。这里有企业新动、这里有业界要闻&#xff0c;打起十二分精神&#xff0c;紧跟fashion你可以的&#xff01;每周两次&#xff0c;打卡即read更快、更全了解泛云圈精彩newsgo go go荣耀V30外观剑走偏锋&#xff0c;多维相机矩阵&am…

2135亿!2018 双11阿里数据库技术战报新鲜出炉

00:02:05 成交额超100亿 00:57:56 成交额超666亿 01:47:26 成交额超1000亿 15:49:39 成交额超1682亿 22:28:37 成交额超2000亿 2018新纪录2135亿 在年度大考面前 阿里数据库技术的小哥哥和小姐姐们 又一次为大众递交了诚意满满的答卷 让我们来看看 面对2分05秒破100亿的交易洪…

ftp 553 Could not create file

关闭SELinux&#xff1a;1、临时关闭&#xff08;不用重启机器&#xff09;&#xff1a; setenforce 0 2、修改配置文件需要重启机器&#xff1a; 修改/etc/selinux/config 文件 将SELINUXenforcing改为SELINUXdisabled 重启机器即可 …

阿里云发布Quick BIV3.0,人人都能轻松进行在线数据分析

提到BI与OLAP这两个概念&#xff0c;对于很多做数据库的技术人员来说并不陌生。BI随着时代的发展逐渐出现了新型BI和传统型BI的划分&#xff0c;从目前的发展程度来看&#xff0c;传统型BI正在慢慢地衰退&#xff0c;由于传统型BI存在从业门槛高&#xff0c;需要专业的IT人员来…

同事操作两个数据源保持事务一致_终于有人把分布式事务说清楚了

前言这篇文章将给大家介绍一下对分布式事务的一些见解&#xff0c;并讲解分布式事务处理框架 TX-LCN 的执行原理&#xff0c;错误之处望各位不吝指正。1. 什么情况下需要使用分布式事务&#xff1f;使用的场景很多&#xff0c;先举一个常见的&#xff1a;在微服务系统中&#x…

数据安全引担忧?get它,让你吃一颗“定心丸”

网络购物、在线外卖、远程教育、共享单车……如今&#xff0c;这些数字化的消费场景在个人生活中早已司空见惯。同时&#xff0c;在数字化浪潮下&#xff0c;越来越多的企业意识到大数据资产的价值&#xff0c;并试图推动其数字化转型。数据经济飞速发展&#xff0c;带来便捷和…

rpm 安装RabbitMQ 3.7.24版本-User can only log in via localhost

登录遇到问题&#xff1a;User can only log in via localhost 解决问题&#xff1a; 找到这个文件rabbit.app /usr/lib/rabbitmq/lib/rabbitmq_server-3.7.7/ebin/rabbit.app将&#xff1a;{loopback_users, [<<”guest”>>]}&#xff0c; 改为&#xff1a;{loo…