PHP 扩展包实战教程 - 从入门到发布
1. 序言 2. 开发环境 3. 写作约定 4. 什么是 PHP 扩展包? 5. Composer 基础使用 6. 拓展包的基础结构 7. 需求分析与功能设计 - 天气 SDK 8. 准备工作 - 创建开放平台应用 9. 创建项目并安装依赖包 10. 从接口获取天气数据 11. 异常与错误处理 12. 编写单元测试 13. 测试我们的拓展包 14. 为 Laravel 集成优化 15. 编写友好的说明文档 16. 发布上线 17. 发布第一个版本 18. 代码重构实践 19. 使用 Travis-CI 做自动化测试 20. 使用 StyleCI 自动修复代码格式 21. 扩展包案例赏析 - EasySMS 22. 课程总结 23. 扩展开发推荐阅读清单 24. 作品分享和学习感悟
Menu

代码重构实践

file

代码重构的两个技巧

可能看到这里的时候,你已经发现了一些问题,比如我们的接口 getWeather ,它一个接口干了两件事情:

  • 获取实时天气;
  • 获取天气预报。

虽然这么设计没啥问题,但是我们还是希望我们的作品更加优雅,就 $type 参数而言,base 代表实时,all 代表预报本来就不是特别合理的设计,但是接口如此我们也只能妥协,我们有两个方法来改善这个问题:

重新设计参数

我们不直接对用户暴露接口参数,重新设计合理方便阅读的参数对外使用,将设计的参数与接口参数作对应,比如,我们可以改成下面这样子:

src/Weather.php

    .
    .
    .
    public function getWeather($city, $type = 'live', $format = 'json')
    {
        $url = 'https://restapi.amap.com/v3/weather/weatherInfo';

        $types = [
            'live' => 'base',...

本文章首发在 Laravel China 社区

为了保证课程的高品质,我们需要对课程进行收费。付费后 才能观看剩余内容。 购买

上一篇 下一篇
讨论数量: 1

Chasers9527
关于修改 live 和 forecast 的问题?
0 个点赞 | 1 个回复 | 问答
刻意练习,每日精进。
12
点赞
1089
浏览
1
讨论
贡献者

作者