经过两周的公开征集,坑爹代码 2.0 的有奖征集阶段已告一段落。
在合并了 120 个 PR 后,精神状态已经极不稳定的马建仓不想说话,向你扔出了征集到的优秀作品——
短小精悍型
马建仓评语: 在迷人的简洁之中蕴含着深刻,充满力量的同时却潜藏着巧妙而深深的陷阱,让人在惊讶中领悟,在反思中受挫,让人在欣赏中无奈摇头,仿佛被一场美丽的误会所困扰。
论单机无联网App如何无痛升级数据库
// 数据库一旦升级就把所有数据表删除重新创建
// 以下注释是原开发者的注释,他很清楚自己在干嘛...
// 版本更新
// 用于升级数据库,当Version 变动了,就会调用onUpgrade方法
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
if (db != null) {
if (tableNames != null) {
// 如果表存在就删除
for (int i = 0; i < tableNames.length; i++) {
db.execSQL("drop table if exists" + tableNames[i]);
}
// 重新初始化
onCreate(db);
}
}
}
网友锐评: 合理,痛死了就不会再感觉到痛了。
PHP获取明天的时间戳
//PHP获取明天的时间戳最牛的方法, 没有之一
function get_tomorrow_timestamp(){
sleep(3600 * 24);
return time();
}
网友锐评: 太聪明了,让代码睡一觉。
业务能手型
马建仓评语: 你可能会觉得这些代码写得愚蠢无比,然而,若换一个角度去欣赏,这或许是一种难以察觉的天才。这种天才,就如同夜晚灯火下流转的情感,静默却深沉,让人在混乱中找寻一丝凌乱的秩序,感受那无言的魅力。
世上最快的提醒商家发货
// 页面按钮
// <button id="reminder">提醒商家</button>
// 获取按钮元素
var reminder = document.getElementById("reminder");
// 添加点击事件监听器
reminder.addEventListener("click", function() {
// 弹窗提示
alert("已提醒商家,尽快为您发货!");
});
网友锐评: 建议加两秒钟的延迟,提升用户体验。
产品经理神操作,价值百万合同就靠这一行代码搞定
public class SettingActivity extends androidx.appcompat.app.AppCompatActivity {
@Override
protected void onCreate(@androidx.annotation.Nullable android.os.Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
clearMemory();
}
// 清理垃圾
private void clearMemory() {
try {
// 经理说加一个延时效果,时间5秒,让甲方给钱后期便于优化
Thread.sleep(5000);
android.widget.Toast.makeText(SettingActivity.this, "清理完成!", Toast.LENGTH_SHORT).show();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
网友锐评: 到时候把5000改成2500,就说速度提升了1倍,剩下2500下次再优化。注意:代码不能让甲方看到。
废话连篇型
马建仓评语: 在这密密麻麻的字符中,有如遗失的线索,旨在引导你逐步理解,却又让人陷入无尽的迷雾。每行代码都像是电影里的镜头,复杂而美丽,却又令人感到困惑,使人深陷其中,不知所措。
为了应付公司每月统计代码行数,同事这样做
/**
* 保存各个景区均值数据
*
* 为了应付公司每月统计代码行数,同事的写法也是醉了...
*/
public void scenicPassengerFlowVolumnData(){
Calendar c = Calendar.getInstance();
String marineaquariumNo="0";
String internationalTouristResortNo="0";
String wildlifeparkNo="0";
String orientalpearltowerNo="0";
String haichangoceanparkNo="0";
String shanghaiScienceTechnologyMuseumNo="0";
String centuryparkNo="0";
String jinmaoNo="0";
String huanqiuNo="0";
String baolanzhongxinNo="0";
String xianhuagangNo="0";
String xinchangguzhenNo = "0";
String shanghaizhidianNo = "0";
String hanghaiNo = "0";
String xunyicaoNo = "0";
String zhoupuhuahaiNo = "0";
String binhaislgyNo = "0";
String zhongyiyaobwgNo = "0";
/**
* 省略业务代码
*/
// 海洋水族馆
Map<String, Object> marineaquarium = new HashMap<>();
marineaquarium.put("insertdate", c.getTime());
marineaquarium.put("xval",(c.get(Calendar.HOUR_OF_DAY)+1) + "时");
marineaquarium.put("total",marineaquariumNo);
marineaquarium.put("id", UUID.randomUUID().toString());
marineaquarium.put("businesstype", "均值");
saveDataDao.insertData("t_marineaquarium", marineaquarium);
// 国际旅游度假区
Map<String, Object> internationalTouristResort = new HashMap<>();
internationalTouristResort.put("insertdate", c.getTime());
internationalTouristResort.put("xval",(c.get(Calendar.HOUR_OF_DAY)+1) + "时");
internationalTouristResort.put("total",internationalTouristResortNo);
internationalTouristResort.put("id", UUID.randomUUID().toString());
internationalTouristResort.put("businesstype", "均值");
saveDataDao.insertData("t_internationaltouristresort", internationalTouristResort);
// 野生动物园
Map<String, Object> wildlifepark = new HashMap<>();
wildlifepark.put("insertdate", c.getTime());
wildlifepark.put("xval",(c.get(Calendar.HOUR_OF_DAY)+1) + "时");
wildlifepark.put("total",wildlifeparkNo);
wildlifepark.put("id", UUID.randomUUID().toString());
wildlifepark.put("businesstype", "均值");
saveDataDao.insertData("t_wildlifepark", wildlifepark);
// 马建仓注:版面有限,以下省略数条相同写法
网友锐评: 这就说明了绩效的无效性和关键指标选错造成的后果。
好像这么写也没错……
import java.util.*;
public class fight {
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
Random rand = new Random();
System.out.print("请输入你的英雄名:");
String yxm = scan.next();
System.out.println("正在打扫战场,请稍后……");
System.out.println("打扫完成!开始游戏!");
while(true){
System.out.println("请输入" + yxm + "出:(1.石头,2.剪刀,3.布)");
String j = scan.next();
int d = rand.nextInt(3);
if (d == 0 && j.equals("1")){
System.out.println("你出的是:石头,对方出的是:石头,平局!");
}else if(d == 1 && j.equals("1")){
System.out.println("你出的是:石头,对方出的是:剪刀,你赢了!");
}else if(d == 2 && j.equals("1")){
System.out.println("你出的是:石头,对方出的是:布,你输了!");
}else if(d == 0 && j.equals("2")){
System.out.println("你出的是:剪刀,对方出的是:石头,你输了!");
}else if(d == 1 && j.equals("2")){
System.out.println("你出的是:剪刀,对方出的是:剪刀,平局!");
}else if(d == 2 && j.equals("2")){
System.out.println("你出的是:剪刀,对方出的是:布,你赢了!");
}else if(d == 0 && j.equals("3")){
System.out.println("你出的是:布,对方出的是:石头,你赢了!");
}else if(d == 1 && j.equals("3")){
System.out.println("你出的是:布,对方出的是:剪刀,你输了!");
}else if(d == 2 && j.equals("3")){
System.out.println("你出的是:布,对方出的是:布,平局!");
}else{
System.out.println("你输入错误了,请重试!");
}
System.out.print("是否继续?(y/n)");
String cont = scan.next();
if (cont.equals("n")) {
break;
}
}
}
}
网友锐评: 好一个面向结果编程。
使用if逐位比对密码
p = "password"
p2 = input("> ")
while True:
if 8 != p2.__len__():
print("长度不是8位")
p2 = input("> ")
else:
while True:
if p[0]!=p2[0]:
print('第1位错误')
p2 = input('> ')
continue
if p[1]!=p2[1]:
print('第2位错误')
p2 = input('> ')
continue
if p[2]!=p2[2]:
print('第3位错误')
p2 = input('> ')
continue
if p[3]!=p2[3]:
print('第4位错误')
p2 = input('> ')
continue
if p[4]!=p2[4]:
print('第5位错误')
p2 = input('> ')
continue
if p[5]!=p2[5]:
print('第6位错误')
p2 = input('> ')
continue
if p[6]!=p2[6]:
print('第7位错误')
p2 = input('> ')
continue
if p[7]!=p2[7]:
print('第8位错误')
p2 = input('> ')
continue
break
break
网友锐评: 但是你别说,你还真别说,它能跑!它甚至能跑!我测试过了,它真的能跑!
⚠️ 警告 ⚠️
看完后精神还算正常?点击下方链接去仓库看看,体验更强烈的视觉和精神冲击:
And More…
bullshit-codes 仓库仍将继续保持开放状态,持续收集大家在日常中遇到的那些坑爹代码,等到马建仓精神状态恢复正常后,我们坑爹代码 3.0 再见!👋
当然,不止坑爹代码,你还想用 Gitee 仓库玩点更好玩的东西?欢迎留言告诉我们,我们一起来玩!