代码简洁-----第一步:命名

我们花在读代码和写代码的时间之比大概在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']}%'";
}

还要关注一件事儿,关于模糊查询,到底能不能砍点抽象需求来换查询效率。

原文地址:https://www.cnblogs.com/freephp/p/5093395.html