首页 > 其他分享 >一个瞬间让你的代码量暴增的脚本

一个瞬间让你的代码量暴增的脚本

时间:2022-11-05 17:35:12浏览次数:74  
标签:暴增 const ran 代码 js current 瞬间 Math


1 功能概述

在某些特殊情况下,需要凑齐一定的代码量,或者一定的提交次数,为了应急不得不采用一些非常规的手段来保证达标。本文分享的是一段自动提交代码的脚本,用于凑齐code review流程数量,将单次code review代码修改行数拉下来(备注:如果git开启自动生成code review流程,则每次push操作就会自动生成一次code review流程)。

2 友情提示

本脚本仅用于特殊应急场景下,平时开发中还是老老实实敲代码。

重要的事情说三遍:

千万不要在工作中使用、千万不要在工作中使用、千万不要在工作中使用

3 实现思路

3.1 准备示例代码

可以多准备一些样例代码,然后随机取用, 效果会更好。例如:

需要确保示例代码是有效的代码,有些项目可能有eslint检查,如果格式不对可能导致无法自动提交

function huisu(value, index, len, arr, current) {
if (index >= len) {
if (value === 8) {
console.log('suu', current)
}
console.log('suu', current)
return
}
for (let i = index; i < len; i++) {
current.push(arr[i])
console.log('suu', current)
if (value + arr[i] === 8) {
console.log('结果', current)
return
}
huisu(value + arr[i], i + 1, len, arr, [...current])
console.log('suu', value)
current.pop()
onsole.log('suu', current)
}
}
复制代码

3.2、准备一堆文件名

准备一堆文件名,用于生成新的问题,如果想偷懒,直接随机生成问题也不大。例如:

// 实现准备好的文件名称,随机也可以
const JS_NAMES = ['index.js', 'main.js', 'code.js', 'app.js', 'visitor.js', 'detail.js', 'warning.js', 'product.js', 'comment.js', 'awenk.js', 'test.js'];
复制代码

3.3 生成待提交的文件

这一步策略也很简单,就是根据指定代码输出文件夹内已有的文件数量,来决定是要执行新增文件还是删除文件

if (codeFiles.length > MIN_COUNT) {
rmFile(codeFiles);
} else {
createFile(codeDir);
}
复制代码

【新增文件】

根据前面两步准备的示例代码和文件命名,随机获取文件名和代码段,然后创建新文件

// 创建新的代码文件
function createFile(codeDir) {
const ran = Math.floor(Math.random() * JS_NAMES.length);
const name = JS_NAMES[ran];
const filePath = `${codeDir}/${name}`;
const content = getCode();
writeFile(filePath, content);
}
复制代码

【删除文件】

这一步比较简单,直接随机删除一个就行了

// 随机删除一个文件
function rmFile(codeFiles) {
const ran = Math.floor(Math.random() * codeFiles.length);
const filePath = codeFiles[ran];
try {
if (fs.existsSync(filePath)) {
fs.unlinkSync(filePath);
}
} catch (e) {
console.error('removeFile', e);
}
}
复制代码

3.4 准备commit信息

这一步怎么简单怎么来,直接准备一堆,然后随机取一个就可以了

const msgs = ['feat:消息处理', 'feat:详情修改', 'fix: 交互优化', 'feat:新增渠道', 'config修改'];
const ran = Math.floor(Math.random() * msgs.length);
console.log(`${msgs[ran]}--测试提交,请直接通过`);
复制代码

3.5 扩大增幅

上述步骤执行一次可能不太够,咱们可以循环多来几次。随机生成一个数字,用来控制循环的次数

const ran = Math.max(3, parseInt(Math.random() * 10, 10));
console.log(ran);
复制代码

3.6 组合脚本

组合上述步骤,利用shell脚本执行git提交,详细代码如下:

#! /bin/bash

git pull

cd $(dirname $0)

# 执行次数
count=$(node ./commit/ran.js)
echo $count

# 循环执行
for((i=0;i<$count;i++))
do
node ./commit/code.js
git add .

msg=$(node ./commit/msg.js)
git commit -m "$msg"

git push
done
复制代码

总结


标签:暴增,const,ran,代码,js,current,瞬间,Math
From: https://blog.51cto.com/u_14627797/5826034

相关文章

  • 代码随想录Day17
    LeetCode199.二叉树右视图给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。   层序遍历一个思路,只需要判断当前元素是否......
  • Linux共享内存通信的C语言Demo代码
    重点注明:本文代码来源于:https://blog.csdn.net/github_38294679/article/details/122360026  =====================================================  使用p......
  • 阅读代码技巧
    如何快速上手?一、了解业务梳理实现的业务功能1.系统有没有文档、教程、分享文章等2.代码的主要业务功能是什么3.业务功能使用的角色是哪些,数量是多少,种类是多少4.业......
  • 20行代码简单python爬虫,爬虫实例
    函数介绍 函数功能简单介绍 库函数介绍 importrequests#请求网页fromlxmlimportetree#对网页进行解析函数功能介绍  函数1 defgetdata(url):......
  • #Primavera Unifier:关于零代码/低代码平台特点【1/3】
    在之前对Unifier的介绍中,我提到了Unifier应用的一个非常关键的特征,及零代码快速配置使用,而为了更好的介绍OraclePrimaveraUnifier 的零代码特点,以下我将通过3篇内容来逐......
  • #Primavera Unifier:关于零代码/低代码平台特点【2/3】
     在之前对Unifier的介绍中,我提到了Unifier应用的一个非常关键的特征,及零代码快速配置使用,而为了更好的介绍OraclePrimaveraUnifier 的零代码特点,以下我将通过3篇内容来......
  • JS代码压缩
    JS代码压缩本文分享一种技术,用于实现JS代码压缩。该技术使用LZW算法。LZW算法又叫“串表压缩算法”,简而言之,通过建立一个字符串表,用较短的代码来表示较长的字符串来实现压缩......
  • 个人写代码的几个要点
    另外额外说一点,如果思路不清晰不妨先将业务逻辑通过注释打出来然后按照逻辑去写,如果没写注释写完后再打一遍注释有助于检查一遍逻辑和代码 保证业务清晰度,比如:一段逻辑要完......
  • 2023最新傻瓜式下载喜马拉雅音频文件,看不懂代码的你值得拥有
    傻瓜式教学如果还是学不会那不然,洗洗睡吧首先打开喜马拉雅网页版,随便点击一个节目,这里我用平时常听的“3分钟心理学”举例https://www.ximalaya.com/album/11848122......
  • 老资源分享之《Opengl游戏编程》代码
    徐明亮教授编写、同时应该也是他翻译的《3D游戏引擎》和《游戏物理学》  这本书的代码是以光盘提供的、鉴于现在人们都不用光盘了、那么贴个百度云链接吧: 链接:http......