移动开发者快速上手php接口开发

来源:互联网 发布:数据库设计遵循的原则 编辑:程序博客网 时间:2024/05/16 13:51

前言

Android写多了,突然想换个姿势;就鼓捣了一阵iOS,发现和Android大同小异;那就学学后台,写写接口?

有时候吧,人就得折腾折腾,否则就容易缺乏危机感,虽然大部分时间我们都是从事当前岗位的事情,但是工作之余,我们也是要逐步提升自己,起码我们要有意愿去了解新技术!毕竟同时了解多种相关技术,整体的思维肯定会有提升!

但是不可否认的是:脱离实际业务的技术都是纸上谈兵

但是我们也得从纸上谈兵做起啊!

学习一门新的技术,应该学什么,学到什么程度,可以从公司的招聘任职要求中看出门路:

这里以php为例吧,毕竟php是世界上最好的语言(手动微笑)

这里写图片描述

当然,最终达到什么程度,还得看个人目标和精力投入!

接下来,我也只是把我目前领悟的招式记录了一下,如果合你的套路那你可以参考参考,如果你觉得招式太简单,那就请不吝赐教!

开发环境配置

  • Mac下如何搭建PHP开发环境?
    • 快速上手的话,这里推荐MAMP或者MAMP PRO
    • MAMP,可以切换php版本、数据库、web服务器,配置hosts也比较方便,总体更人性化(适合懒人)
    • 开发工具可以使用Sublime Text或者PhpStorm
    • 其它相关可参考PHP开发相关配置

简易版接口项目

  • 项目地址:ishow
  • 项目Model EER图:

这里写图片描述

  • 接口演示:
    这里模拟请求使用的工具是:网页调试与发送网页HTTP请求的Chrome插件Postman
    例如:注册接口register.php

这里写图片描述

其它接口依次类推:

  • 收藏与取消收藏接口 collect.php
  • 演出详情信息接口 detail.php
  • 登录接口 login.php
  • 演出列表接口 show.php
  • 分页获取演出列表接口 showbypage.php
  • 获取演出类型的接口 showtype.php
  • 修改密码的接口 updatepassword.php
  • 上传头像接口 uploadimg.php(这里提供了一个uploadimg.html模拟头像上传的逻辑)

基于Laravel5.4框架以及Angular.js进行开发

  • 为什么使用php开发框架?

PHP开发框架有助于促进快速软件开发(RAD),节约了开发者的时间,有助于创建更为稳定的程序,并减少开发者重复编写代码的劳动。这些框架还通过确保正确的数据库操作以及只在表现层编程的方式帮助初学者创建稳定的程序

  • 这里为什么选择Laravel?

php框架谁最牛?这两年各种排名下,不敢说全部,但基本上Laravel都独占鳌头,看谷歌趋势,红色的Symphony似乎才是最热的,但是走在下降通道,它的压制下,Laravel正在直线崛起!
Laravel被称之为“为Web开发艺术家使用的框架!

  • 帅乎,基于Laravel框架进行开发,既有接口开发,也涉及部分前端开发

这里写图片描述

业务接口设计与规范

上面的两个案例 参考了很多网络资源教程 个人认为只适合上手使用,如果要真正地做起后台接口开发,还是要严格遵守符合接口开发的设计和规范

下面是我从后台开发的技术分享中学习总结的,仅供大家参考:

  • 业务接口的作用

    • 从数据库/下游系统 获取、组织加工数据
    • 提供数据给需求方
  • 接口很简单,加一个接口分分钟的事情?

  • 前置准备

    • 切忌直接动手 先确保知己知彼
    • 吃透需求
      • 需求逻辑结构
        • 需求长什么样?
        • 需求是否可以实现?
        • 需要什么样的接口?
      • 交互方式
        • 一个接口能搞定吗?
        • 长连接还是短连接?
      • 需求背后的动机
        • 需求是否合理
        • 有没有更好的方案
    • 了解数据
      • 各系统数据概貌
        • 这些数据有没有?
        • 这个数据能不能拿到?
        • 有没有更好的方案?实时没有,可否离线异步?
      • 数据存储结构
        • OFS
        • ES
        • MySQL
        • offline?
        • 多套数据类问题 数据结构不方便扩展
        • 以何种方式获取
        • RPC
        • cache
    • 理解交互
      • 用户体验为重:体验优先,同步or异步
      • 交互时机把控:合理分配接口
      • 理解交互特点:推拉结合方案
  • 业务接口设计原则
    • 最大化易用性
      • 命名:是易用性提升的主要部分 沉淀命名字典
        • 接口命名:最好是动宾结构
        • 参数命名:最好是定语➕名词
        • 注意:不要用生僻单词或者发明缩写
      • 参数:采用粗粒度参数
      • 文档:及时性和动态性
    • 职责分明
      • 各司其职
        • get就是get,不要干set的活
      • 合理搭配
        • 针对各司其职的各类接口,寻找合理的交互形式
      • 职责明确
        • 应用场景确定可控,不合理场景不要往里塞
    • 归纳抽象
      • 归纳接口
        • 对功能进行抽象,进行“内聚”,类似功能归纳抽象到一起,降低与客户端的交互复杂度。同时防止接口数量爆炸
      • 系统拆分
        • 归纳表现层逻辑(文案组织等) 、和功能层逻辑,水平拆分,减少接口/系统间的偶合
    • 避免臃肿
      • 异步化
      • 插件化
      • 优化上下游交互
  • 做到以上这些就可以了吗?
    • 面对需求,拥抱变化
    • 优化,进无止境
  • 我的CSDN博客地址:http://blog.csdn.net/s003603u
  • 我的GitHub地址:https://github.com/soulrelay
  • 我的简书地址:http://www.jianshu.com/u/514ca03bbc17
  • 我的个人网站:SuS’ World
原创粉丝点击