“反内卷”代码书写原则

有人相爱,有人夜里开车看海。有人看着这些代码一句话也说不出来。这是一个你的项目应该遵循的垃圾代码书写准则,只有这样写了才能让人看不懂,这才是真正的反内卷之道,请恪守以下原则,时刻铭记,切勿反向操作:

变量/函数混合命名风格

能int出来就完事。
好代码:

int hgt = 1980;
int wgt = 1024;

坏代码:

Int screenHeight = 1980;
int screenWidth = 1024;

三角法则

三个石加一起等于磊。
好代码:

fun showAnim(){if (condition1) {if (condition2) {asyncFunction(params, (result) -> {if (result) {for (;;) {if (condition3) {}}}})}}
}

坏代码:

fun getTheInfo(){if (!condition1 || !condition2) {return;}if (!result) {return;}for (;;) {if (condition3) {}}
}

多创建点变量

不怕一万,就怕万一。

好代码:

private int sum(a, b, c) {int addsum = 1300;int result = a + b;return a + b;
}

坏代码:

private int sum(a, b) {return a + b;
}

继承更改类型

改个名字而已,不必那么死板。
好代码:

public class NBActivity extends Fragment

坏代码:

public class HomeFragment extends BaseFragment

广泛使用全局变量

目标全球化。
好代码:

private int x = 3;private void square() {x = x * x;
}square();

坏代码:

private int x = 3;private int square(int num) {return num *=num;
}x = square(3);

大对象全部全局化

调用起来多方便,还可多个方法重复调用呢
好代码:

public class VolumeDialogImpl extends VolumeConstact {private Bitmap mBitmapBig;private Bitmap mBitmapSmall;private void getThePic(){...}

坏代码:

public class VolumeDialogImpl extends VolumeConstact {private void getThePic(){Bitmap mBitmapBig = BitmapFactory.decodeByteArray(...);Bitmap mBitmmBitmapSmallapBig = BitmapFactory.decodeByteArray(...);}
}

异常抓到就行了

没必要让人知道。
好代码:

try {// 意料之外
} catch (error) {// ... nothing happen
}

坏代码:

try {// 意料之外
} catch (Throwable ex) {ex.printStackTrace();// and/orreportBugByNet(ex);
}

代码写一行就行了

又不是看不了。
好代码:

okHttpClient = new OkHttpClient.Builder().readTimeout(READ_TIME_OUT,TimeUnit.SECONDS).connectTimeout(CONNECT_TIME_OUT,TimeUnit.SECONDS).writeTimeout(WRITE_TIME_OUT,TimeUnit.SECONDS).retryOnConnectionFailure(false).proxy(Proxy.NO_PROXY).addInterceptor(new Interceptor() {@Override public Response intercept(Chain chain) throws IOException {...}

坏代码:

okHttpClient = new OkHttpClient.Builder().readTimeout(READ_TIME_OUT, TimeUnit.SECONDS).connectTimeout(CONNECT_TIME_OUT, TimeUnit.SECONDS).writeTimeout(WRITE_TIME_OUT, TimeUnit.SECONDS)// 连接失败不重试.retryOnConnectionFailure(false).proxy(Proxy.NO_PROXY).addInterceptor(new Interceptor() {...

不需要写注释

正经人谁会写注释啊,你会写吗?
好代码:

public final static int showTime = 700;

坏代码:

//与后台协商的超时时间,如若要修改请与后台确认,否则会有意想不到问题
public final static int overTime = 700;

注释劝退

谁没年轻过?
好注释:

/*** Dear maintainer:** Once you are done trying to 'optimize' this routine,* and have realized what a terrible mistake that was,* please increment the following counter as a warning* to the next guy:** total_hours_wasted_here = 136*/public class FloatWindowService ...

坏注释:

/*** 这类逻辑负责,相关业务流程图请参照公共盘/产品设计/Version1.9.2/...*/
public class FloatWindowService ...

极简方式命名变量

这不是极简这是混淆变量风格,是让那些反编译的不怀好心变成怀疑人生

好代码:

Intent i = new Intent();
Intent a = new Intent();
Intent b = new Intent();

坏代码:

Intent mUserIntent = new Intent();
Intent mInfoIntent = new Intent();
Intent mGameIntent = new Intent();

逻辑处理只需要一个

一个团队没有第二个发号命令的人,同样的,一个系统没必要那么多逻辑处理类,一个就行,10000行代码也是情理之中。

每个人都要有自己的风格

在团队工作中,没必要统一代码风格,每个人有自己的喜好,这是每个人的自由。

项目不需要相关文档

人就在这,想知道啥你直接问。

冗余代码注释就行了

产品经理天天改需求,万一哪天脑抽要改回来呢,以备不时之需。


实不相瞒,以上代码我都遇见过,每次想到总会哭笑不得。友情提醒,记得反向操作。

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

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

相关文章

docker 2:安装

docker 2:安装 ‍ ubuntu 安装 docker sudo apt install docker.io‍ 把当前用户放进 docker 用户组,避免每次运行 docker 命都要使用 sudo​ 或者 root​ 权限。 sudo usermod -aG docker $USER​id $USER ​看到用户已加入 docker 组 ​​ ‍ …

CSS介绍

本章目标: CSS概述 三种样式表 简单选择器 复合选择器 盒子模型 常用背景样式 浮动 常用文本样式 伪类样式 列表样式 表格样式 定位 一、CSS概述: CSS:cascading style sheets-层叠样式表 专门负责对网页的美化 二、有三种使用方式&…

SpringBoot与虚拟线程,接口吞吐量成倍增加,太爽了!

我们看一下如何在spring-boot中利用loom虚拟线程。 我们将做一些负载测试&#xff0c;看看虚拟线程和普通线程的响应时间如何。 让我们快速设置我们的 Spring Boot 项目。 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http:/…

【开源图床】使用Typora+PicGo+Gitee搭建个人博客图床

准备工作&#xff1a; 首先电脑得提前完成安装如下&#xff1a; 1. nodejs环境(node ,npm):【安装指南】nodejs下载、安装与配置详细教程 2. Picgo:【安装指南】图床神器之Picgo下载、安装与配置详细教程 3. Typora:【安装指南】markdown神器之Typora下载、安装与无限使用详细教…

「优选算法刷题」:搜索插入位置

一、题目 给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 示例 1: 输入: nums [1,3,5,6], target 5 输出: 2示例…

orbslam_semantic_nav_ros 编译出现的问题1

安装环境 ubuntu20.04 ros NODES 项目链接&#xff1a; https://github.com/MRwangmaomao/semantic_slam_nav_ros 安装腾讯ncnn库 其他库 opencv 3.4.9 eigen 3.4.0 pangolin 已安装 vtk5 自带的是 vtk-7.1 建议自己源码安装 下载链接&#xff1a;https://vtk.org/download/ …

《Docker极简教程》--Docker镜像--Docker镜像的创建和使用

一、Docker 镜像的创建 1.1 基于 Dockerfile 创建镜像 当你基于 Dockerfile 创建镜像时&#xff0c;你需要编写一个描述镜像构建步骤的文本文件&#xff0c;该文件称为 Dockerfile。下面是一个简单的示例 Dockerfile 和相应的说明&#xff1a; # 使用指定的基础镜像 FROM ub…

面试计算机网络框架八股文十问十答第三期

面试计算机网络框架八股文十问十答第三期 作者&#xff1a;程序员小白条&#xff0c;个人博客 相信看了本文后&#xff0c;对你的面试是有一定帮助的&#xff01;关注专栏后就能收到持续更新&#xff01; ⭐点赞⭐收藏⭐不迷路&#xff01;⭐ 1&#xff09;GET和POST请求的区…

JavaScript中如何判断数据类型

在JavaScript中&#xff0c;判断数据类型是我们在日常开发中经常会遇到的问题。正确地判断数据类型不仅有助于我们编写出更加健壮的代码&#xff0c;还可以提高程序的可读性和可维护性。本文将为大家介绍几种判断数据类型的方法 使用typeof运算符&#xff1a; typeof运算符可以…

[NSSRound#17 Basic]WEB

1.真签到 看robots.txt 密码先base32再base64得到md5加密的密文&#xff0c;在线解得到密码为Nss hint用16进制转字符串&#xff0c;提示新生赛遇到过 是一个敲击码加密 账号是ctfer,登录之后源码提示在F111n4l.php 要求nss参数若比较等于732339662&#xff0c;但是不能是数…

rtt设备io框架面向对象学习-脉冲编码器设备

目录 1.脉冲编码器设备基类2.脉冲编码器设备基类的子类3.初始化/构造流程3.1设备驱动层3.2 设备驱动框架层3.3 设备io管理层 4.总结5.使用 1.脉冲编码器设备基类 此层处于设备驱动框架层。也是抽象类。 在/ components / drivers / include / drivers 下的pulse_encoder.h定义…

Java学习21--abstract抽象类

abstract抽象类 在Java中&#xff0c;abstract 是一个关键字&#xff0c;用于定义抽象类abstract class或抽象方法abstract method。abstract class是一种特殊的class&#xff0c;它不能用来建立具体的object&#xff0c;即不能实例化对象。abstract class通常用作其他类的基类…

关于idea无法检测出lombok,导致代码爆红的处理

为啥需要本地安装lombok插件&#xff1f; 编译错误提示&#xff1a;Lombok 使用注解来自动生成代码&#xff0c;这些代码在编译时会由 Lombok 插件进行处理。如果没有安装 Lombok 插件&#xff0c;IDEA 在编译过程中可能会报告错误&#xff0c;因为它无法识别并处理 Lombok 注解…

【RL】Bellman Optimality Equation(贝尔曼最优等式)

Lecture3: Optimal Policy and Bellman Optimality Equation Definition of optimal policy state value可以被用来去评估policy的好坏&#xff0c;如果&#xff1a; v π 1 ( s ) ≥ v π 2 ( s ) for all s ∈ S v_{\pi_1}(s) \ge v_{\pi_2}(s) \;\;\;\;\; \text{for all…

Python数据科学:Scikit-Learn机器学习

4.1Scikit-Learn机器学习 Scikit-Learn使用的数据表示&#xff1a;二维网格数据表 实例1&#xff1a;通过Seaborn导入数据 def skLearn():scikit Learn基本介绍:return:import seaborn as sns#导入Iris数据集#注&#xff1a;一般网络访问不了iris sns.load_dataset(iris)ir…

【JavaScript】回调函数

文章目录 1. 什么是回调函数2. 回调函数的用法作为函数参数作为匿名函数 3. 处理异步编程4. 解决回调地狱问题5. 总结 在 JavaScript 中&#xff0c; 回调函数是一种重要的编程模式&#xff0c;特别是在处理异步操作时。本篇博客将介绍回调函数的概念、用法以及在异步编程中的…

Jdk11新增特性

目录 模块化系统(Jigsaw) 新的垃圾收集器(ZGC和Shenandoah) 新的API和工具 其他改进 JDK 11(Java Development Kit 11)Java的版本引入了一些新特性和改进,主要有:

助眠神器小程序源码|白噪音|小睡眠|微信小程序前后端开源

安装要求和说明后端程序运行环境&#xff1a;NginxPHP7.4MySQL5.6 PHP程序扩展安装&#xff1a;sg11 网站运行目录设置为&#xff1a;public 伪静态规则选择&#xff1a;thinkphp 数据库修改文件路径&#xff1a;/config/database.php需要配置后端的小程序配置文件&#xff0c;…

[word] word分割线在哪里设置 #其他#经验分享

word分割线在哪里设置 在工作中有些技巧&#xff0c;可以快速提高工作效率&#xff0c;解决大部分工作&#xff0c;今天给大家分享word分割线在哪里设置的小技能&#xff0c;希望可以帮助到你。 1、快速输入分割线 输入三个【_】按下回车就是一条长直线&#xff0c;同样分别…

webgis后端安卓系统部署攻略,超详细Termux攻略

目录 前言 一、将后端项目编译ARM64 二、安卓手机安装termux 1.更换为国内源 2.安装ssh远程访问 3.安装文件远程访问 三、安装postgis数据库 1.安装数据库 2.数据库配置 3.数据导入 四、后端项目部署 五、自启动设置 总结 前言 因为之前一直做的H5APP开发&#xf…