博客
关于我
代码简洁之二:函数只做一件事儿
阅读量:441 次
发布时间:2019-03-06

本文共 2130 字,大约阅读时间需要 7 分钟。

拆分函数,简化代码,这是编程中追求可读性与维护性的重要实践。以下是对原文的优化版本,语言更加简洁流畅,结构更清晰。

拆分函数:让代码更具可读性

在编程中,我们常常面临代码过于冗长、难以维护的问题。通过不断拆分函数,我们可以让代码更清晰,更具可读性。这种方法的核心在于将复杂的逻辑分解为多个简单的函数,每个函数专注于完成单一任务。

1. 函数拆分的逻辑步骤

拆分函数的过程可以分为以下几个步骤:

  • 概括目的:识别函数的核心目标。
  • 提取步骤:将函数内部的操作拆分为多个独立的步骤。
  • 提取抽象层次:提取动名词,形成新的函数。
  • 保持一致性:确保新形成的函数在抽象层次上与原函数保持一致。

通过这样的拆分过程,我们可以逐步将复杂的逻辑转化为多个简单的函数。例如,一个包含多个判断逻辑的函数可以被拆分为多个专门处理特定逻辑的函数。

2. 代码拆分的示例

以一个典型的查询处理函数为例,原始代码如下:

// 接收查询的参数$minDate = trim($this->input->get_post('startDate', true));$maxDate = trim($this->input->get_post('endDate', true));$gameId = trim($this->input->get_post('gameId', true));$adPositionId = trim($this->input->get_post('adPositionId', true));$orderField = trim($this->input->get_post('orderField', true));$order = trim($this->input->get_post('order', true));$page = intval($this->input->get_post('page', true));$pageSize = intval($this->input->get_post('pageSize', true));// 判断排序规则if (!$order || !in_array($order, array('asc', 'desc'))) {    $order = 'desc';}// 判断排序字段if (!$orderField || !isset($this->_fieldsMappingArray[$orderField])) {    $searchParam['sort_by'] = 'date';} else {    $searchParam['sort_by'] = $this->_fieldsMappingArray[$orderField];}// 处理日期参数if (!$minDate) {    $minDate = date('Y-m-d', strtotime('-1 day'));}if (!$maxDate) {    $maxDate = date('Y-m-d');}// 转换日期为时间戳if (strtotime($minDate)) {    $searchParam['minDate'] = strtotime($minDate . ' 00:00:00');}if (strtotime($maxDate)) {    $searchParam['maxDate'] = strtotime($maxDate . ' 23:59:59');}

3. 代码优化后的版本

通过拆分,我们可以将上述逻辑转化为多个独立的函数:

$params = $this->getSearchFields($this->searchFieldOptions, $_REQUEST);// 判断参数合法性if ($tips = $this->checkParams()) {    $this->message->tips($tips);}// 查询游戏统计数据$stats = $this->_searchWebGameStats($params);// 组装数据并展示$this->template->cpView('users/webGameStats', $stats);

4. 函数拆分的好处

  • 代码简洁:每个函数只处理一个任务,代码更简洁明了。
  • 可读性强:函数之间的关系清晰,易于理解。
  • 可维护性高:单个函数的修改影响范围小,减少错误。
  • 降低复杂度:复杂的逻辑被分解为多个简单步骤,降低学习成本。

通过不断拆分函数,我们可以逐步将复杂的代码转化为易于维护的代码结构。这种方法不仅有助于写出更好的代码,还能让团队成员更容易理解和协作。

5. 实践建议

  • 始终保持单一职责:每个函数应专注于完成一件事。
  • 逐步拆分:从复杂的函数开始,逐步拆分为更小的函数。
  • 保持一致性:确保拆分后的函数逻辑与原函数一致。
  • 注重抽象层次:提取动名词形成函数名,保持代码结构清晰。

通过遵循这些原则,我们可以逐步将代码优化为更具可读性和维护性的状态。好的代码不是随意写出来的,而是经过反复思考和优化的结果。

转载地址:http://rfsuz.baihongyu.com/

你可能感兴趣的文章
RabbitMQ高级特性 - 消息分发(限流、负载均衡)
查看>>
php后台“爬虫”模拟登录第三方系统
查看>>
php后台的在控制器中就可以实现阅读数增加
查看>>
php命令行生成项目结构
查看>>
php命名空间
查看>>
PHP命名空间带来的干扰
查看>>
PHP和MySQL Web开发从新手到高手,第1天-搭建PHP开发环境
查看>>
php商店管理系统,基于PHP的商店管理系统.doc
查看>>
PHP四大主流框架的优缺点总结
查看>>
PHP图片处理—PNG透明缩放并生成灰图
查看>>
php在liunx系统中设置777权限不起作用解决方法
查看>>
PHP基于openssl实现的非对称加密操作
查看>>
php基本符号大全
查看>>
php基础篇-二维数组排序 array_multisort
查看>>
php基础配置环境变量
查看>>
php增删改查封装方法
查看>>
springboot之jar包Linux后台启动部署及滚动日志查看且日志输出至文件保存(超级详细)
查看>>
php多条件筛选功能的实现
查看>>
php多线程
查看>>
PHP大数组循环-避免产生Notice或者是Warning
查看>>