单页网站制作软件,seo搜索优化怎么做,网络安全哪个培训班比较好,山东省菏泽市城乡建设局网站干程序员的都有接收别人的代码的经历#xff0c;大部分时候#xff0c;我们都会偷偷骂一句“这人是傻逼吧#xff0c;这代码写的这么烂#xff01;”
“一个方法写几百行#xff0c;还没有注释#xff0c;鬼知道写的什么东西#xff01;”
现在#xff0c;你不需要为…干程序员的都有接收别人的代码的经历大部分时候我们都会偷偷骂一句“这人是傻逼吧这代码写的这么烂”
“一个方法写几百行还没有注释鬼知道写的什么东西”
现在你不需要为这个事情担心了。AI 可以帮你生成注释代码拆分。
AI 帮你生成注释
接手别人的代码很多人写代码都没有注释变量命名也是一言难尽这个时候你直接把代码输入给 GPT它能很好的帮助你理解代码的意思减少接手别人代码的痛苦。
prompt 大模型返回 这段Java代码的意思是 首先定义了两个 Mono 对象mono 1和 mono2它们调用两个 TestServiceImpl 类的 request() 方法并返回一个 String 类型的结果对象。 然后使用 Mono.zip() 方法将 mono1 和 mono2 对象组合起来当它们都完成后将结果以 Tuple元组类型传递给 map() 方法。在 map() 方法中根据子 Mono 的执行情况将其结果对象合并成一个 String 对象。如果第二个 Mono 对象返回了结果则将两个结果字符串合并否则只返回第一个 Mono 对象的结果字符串。 最后使用 Mono 对象的 block() 方法来阻塞等待结果并将结果打印到控制台执行。如果没有结果可以使用则返回 mono1 对象作为默认值。该代码实现的功能是等待两个 Mono 对象都完成后将它们的结果对象合并为一个字符串。 AI 帮你学习你完全不熟悉的语言
GPT 能支持各种语言当你工作中碰到了不熟悉的语言但是老板又让你接手这种项目的时候GPT 就派上用上了它能很好的帮我们快速学习代码了解业务。
比如下面这个例子lua 是一种现在用的不多的语言了但是 GPT 照样能很好的解释代码的意思。
prompt content content:gsub(‘USERNAME([^%c])\n’, ‘’) — 上面是一行 lua 代码请你解释意思 作为一个完全没学过 Lua 语言的阿七来说我一眼觉得这行代码的意思是获取 content 中的 USERNAME 字段的值。
还有阿七不是那么自信把问题抛给了 GPT。
大模型返回 这行 Lua 代码的意思是 使用 Lua 中的 gsub 函数将字符串变量 content 中满足特定模式的内容进行替换。 具体地这行代码使用正则表达式 ‘USERNAME([^%c])\n’ 来匹配 content 字符串中以 “USERNAME” 开头紧跟着一个或多个非控制字符除了控制字符外的任意字符并以一个或多个换行符结尾的部分。匹配到的部分将被替换为空字符串。 换句话说该代码的目的是将 content 字符串中形如 “USERNAME” 开头的行行结尾有一个或多个换行符删除或替换为空字符串。 AI 帮你重构代码
我们经常能在工作中看到写几百行甚至上千行的方法碰到这样的代码我们内心只有一句 MMP 能表达。
AI 时代不用为此忧心了。
我尝试把我碰到的几百行的方法输入给 GPT我发现它能很好的帮助我拆解长方法。
但是公司的代码不好拿出来秀我在网上找了一段代码我们可以看看效果。
prompt: List purchaseInfoList sheet.getPurchaseInfoList().stream().filter(purchaseInfo - purchaseInfo.getExteriorOperation().getExteriorPart().getExteriorOperationList().stream() .filter(exteriorOperation - exteriorOperation.getProcessState().equals(ExteriorOperation.ProcessState.PROCESSING)).count() ! 0 ———————————————— 上面的 Java 代码太难阅读了非常影响代码理解请帮我拆分上面的 Java 代码不改变代码意思但是更容易读懂 输出
以下是拆分后的 Java 代码更易于理解
ListPurchaseInfo purchaseInfoList sheet.getPurchaseInfoList();ListPurchaseInfo filteredPurchaseInfoList purchaseInfoList.stream().filter(purchaseInfo - {ListExteriorOperation exteriorOperationList purchaseInfo.getExteriorOperation().getExteriorPart().getExteriorOperationList();long processingCount exteriorOperationList.stream().filter(exteriorOperation - exteriorOperation.getProcessState().equals(ExteriorOperation.ProcessState.PROCESSING)).count();return processingCount ! 0;}).collect(Collectors.toList());大模型返回
首先获取 sheet 对象中的 purchaseInfoList 列表。使用 stream() 方法将 purchaseInfoList 转换成流。使用 filter() 方法过滤出符合条件的 PurchaseInfo 对象条件为该对象中的 ExteriorOperation 对象列表中至少有一个对象的 processState 属性为 PROCESSING。在 filter() 方法中使用 lambda 表达式实现过滤条件。首先获取当前 PurchaseInfo 对象中的 ExteriorOperation 对象列表然后使用 stream() 方法将其转换成流。在 ExteriorOperation 对象流中使用 filter() 方法过滤出 processState 属性为 PROCESSING 的对象然后使用 count() 方法获取符合条件的对象数量。最后判断符合条件的对象数量是否不为 0如果是则表示该 PurchaseInfo 对象符合过滤条件。使用 collect() 方法将符合条件的 PurchaseInfo 对象收集到一个新的列表中并返回该列表。
我们看到GPT 不仅帮帮我们做了代码拆分还格式化了我们的代码让代码可读性更高甚至还解释了每段代码的意思。
是不是很棒赶紧去试用吧