代码简洁-----第一步:命名
我们花在读代码和写代码的时间之比大概在10:1.所以写更容易理解的代码,就是加速开发。
简洁的代码就是只做好一件事儿
实际技巧
1.命名要清晰易懂
2.避免误导
比如java 代码中
int[] accountList = new int[];
其中accountList并不是List,可能会给阅读者带来误导。
3.做有意义的区分
比如ProductInfo和ProductData,意思和a,an,the差不多,无法区分出来,缺乏约定,造成阅读的困扰。
4.保持一致
以前我们总是说要follow before,其实就是要解决代码风格和处理方式的一致,这样可以减少理解难度和时间。
比如添加都用add,而不是有的地方写add方法,有的地方又写append.
5.脱离一点实际需求的命名,用专业化的命名,可以减少后来者的理解成本。比如JobQueue,众人皆知。
6.写更有语义环境的函数命名。
比如你在写一个设置用户基础信息的功能,假设是用面向对象的方式。用户User类,有username,age, job, phone,address等属性。
你可以分别写get,set方法。比如addUserName(),addAge()等。
尽可能地抽象出公共的方法和类,简化代码,复用代码。
比如我在写一些列表页面的时候,发现可能都要用到根据某个列(表中字段)来进行排序。
那么基于业务级别的创建排序查询字符串就是一个不断重复的过程,
为何不能再进一步抽象出一个公共的创建排序查询字符串的函数呢?
让每一句代码都是引入一个函数去处理(或者某类的方法调用)
function buildOrderby($orderData, $validOrderFields) {
if (!$orderData['order'] || !in_array($orderData['order'], array('asc', 'desc'))) {
$order = 'desc';
}
//过滤排序条件
if ($orderData['orderField'] && !in_array($orderData['orderField'], $validOrderFields)) {
$orderField = isset($orderData['default']) ? $orderData['default'] : 'id';
}
return $orderField . ' ' . $order;
}
应该让更多的判断和细节被封装到最里层,而不是让调用层做太多的处理。
比如在查询调用的时候,过滤非空的数组元素,是可以写在controller层中:
$params = array_filter($params);
$this->users_model->getList($params);
其实还是应写在model层中:
if ($param['user_name'] && $param['user_name']) {
$where[] = "user_name like'%{$param['user_name']}%'";
}
还要关注一件事儿,关于模糊查询,到底能不能砍点抽象需求来换查询效率。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」