在 DeepSeek 的帮助下,我又给 WPJAM Basic 增加了几个函数!
对于程序员来说,写代码其实不难,反而最难的是给函数命名,这是困扰程序员最大的问题,很多程序员开玩笑说:编程5分钟,命名2小时。😂
比如之前网上就有一张图,反应了程序员编程的时候,具体在干嘛:

让 DeepSeek 给函数命名
首先我们先明确一下:什么样的函数名是一个好的名字呢?
好的函数命名应当简洁、清晰且易于理解,能够在不查看具体实现的情况下直观地反映出其功能和用途。
但实际上找到这样的命名并不容易,需要充分考虑变量、函数和类的功能、用途以及上下文环境,因此程序员需要花费大量时间思考如何为代码中的各个元素命名,以提高代码的可读性和可维护性。
那么如果我们让 DeepSeek 在我们给函数命名的时候,给我我们一些建议,是不是可以解决我们这个困扰呢? 或者说打开我们的思路呢?我们说干就干,首先是提示词,经过调试,下面是我的函数命名的提示词是:
我将发给你一段程序代码,你根据这段代码帮我提炼出函数的名称,函数名称的风格为下划线风格,然后函数应用于 WordPress,需要参考 WordPress 函数命名风格,并简单解释下为什么这么命名,如果可以请提供多一些选项以供选择,谢谢。
正好最近在发布 WPJAM Basic 新版的时候,为了方便,又增加了几个函数,比如下面,判断变量是不是闭包函数:
return $object instanceof Closure;

再来一个,如果变量回调函数,那就调用回调函数,否则就还是返回变量本生:
return $value && is_callable($value) ? $value(...$args) : $value;

如果自己也有想法,可以再在和他沟通一下:😄

WPJAM Basic 新增函数
所最后在 DeepSeek 的帮助下,WPJAM Basic 新版增加下面几个函数:
1. maybe_callback
如果变量是回调函数,则调用回调函数,否则返回变量本身:
if(!function_exists('maybe_callback')){
function maybe_callback($value, ...$args){
return $value && is_callable($value) ? $value(...$args) : $value;
}
}
2. maybe_closure
,
类似于 maybe_callback
,但是它判断是闭包函数才调用,其他一样:
if(!function_exists('maybe_closure')){
function maybe_closure($value, ...$args){
return $value && is_closure($value) ? $value(...$args) : $value;
}
}
3. is_closure
怎么判断闭包函数呢?就有这个函数了:
if(!function_exists('is_closure')){
function is_closure($object){
return $object instanceof Closure;
}
}
4. wpjam_pick
从对象或者数组中,根据 $keys
获取一个关联数组,类似 JS 工具库 underscore 或者 loadsh 的 _.pick
函数,如果是从数组中获取,其实和 WordPress 内置的 wp_array_slice_assoc
一样,只是命名这个更加简洁。
function wpjam_pick($arr, $keys){
return is_object($arr) ? wpjam_array($keys, fn($i, $k)=> isset($arr->$k) ? [$k, $arr->$k] : null) : wp_array_slice_assoc($arr, $keys);
}
等我发布新版,就可以使用了!