手机应用软件开发实现方式同普通PC软件一样

  首先,我这里说明接口,不是代码里的接口,而是接口项目,如果想错了就不用往下看了。

  在手机广泛流行的今天,手机应用也随之越来越多,而且成长的速度也非常快。手机应用软件开发实现方式同普通PC软件一样,也分为BS和CS方式。而采用CS方式,在服务器端大多采用接口的形式提供数据交互(主流数据交互方式有:Json、WebService等),今天要说的就是如何设计接口。

  接口作为连通客户端与数据库进行数据流通的桥梁,起着举足轻重的作用,直接影响着程序的效率性、稳定性、可靠性以及数据的正确性、完整性。客户端注重的是界面美观,操作方便顺畅,是用户最直接的感受体验,而接口则是所有数据的提供者,是用户深层的内涵体验。

  因次,设计接口在一个项目中,是非常重要的。那么我就目前的经验总结下如何合理设计接口。

  一、 设计原理

  1. 深入了解需求

  除了设计数据库的人最了解需求外,其次就是设计接口的人了,甚至有时接口开发人员还要参与到数据库设计中。从“客户端-接口-数据库”的层次上看,接口明显扮演着承上启下的角色,一方面要明白接口要什么数据,另一方面要考虑如何从数据库获取、组织数据。所以如果不了解需求,你就无法正确抽象对象来组织数据给客户端,也无法验证数据库的数据结构能否满足需求。数据库设计者要了解需求中的数据结构,而接口则更多的要了解需求中的逻辑结构以及由此衍生出的逻辑数据结构。

  2. 了解数据库结构

  既然接口要明白如何从数据库获取、组织数据,就当然要了解数据库结构啦。

  3. 了解客户端原型

  了解原型,其实更多是为了帮助你设计接口时需要提供的数据和结构。但有时当你设计时并没有原型,所以此条并不是必须要求的。但假如设计完接口后原型出来了,我们也可以拿原型还验证接口设计是否正确、合理。

  二、设计原则

  1. 充分理由

  不是随便一个功能就要有个接口,也不是随便一个需求就要加个接口。每新建一个接口,就要有充分的理由和考虑,即这个接口的存在是十分有意义额价值的,无意义的接口不仅增加了维护的难度,更重要是对于程序的可控性的大大降低,接口也会十分臃肿。因此我放在了第一条。

  2. 职责明确

  一个接口只负责一个业务功能,它与设计模式里的职责单一原则类似但却不同,因为一个业务功能里可能会包含多个操作,比如查询会员,可能除了查询会员表外还要获取该会员的其他必要信息,但不要在查询会员的同时还有修改权限等类似的其他业务功能,应该分成两个接口还做。

  3. 高内聚低耦合

  一个接口要包含完整的业务功能,而不同接口之间的业务关联要尽可能的小。还是查询会员的例子,有时查询会员的同时,可能该会员的相关信息要随之发生变化(如状态),如果这时一条完整的业务流水线,那么就应该在一个接口里完成,而不应再单独设立接口去操作完成。就是说一个接口不应该随着另一个变化而变化或以某几个接口为前提而存在。

  4. 分析角度明确

  设计接口分析的角度要统一明确。否则会造成接口结构的混乱。例如,不要一会以角色的角度设计,一会儿就要以功能的角度设计。

  5. 入参格式统一

  所有接口的参数格式要求及风格要统一,不要一个接口参数是逗号分隔,另一个就是数组;不要一个接口日期参数是x年x月x日风格,另一个就是x-x-x。

  6. 状态及消息

  提供必要的接口调用状态信息。调用是否成功?如果失败,那么失败的原因是什么。这些必要的信息必须要告诉给客户端。

  7. 控制数据量

  一个接口返回不应该包含过多的数据量,过多的数据量不仅处理复杂,对数据传输的压力也非常大,会导致客户端反应缓慢。过多的数据量很多时候都是接口划分不明确。

  8. 禁止随意拓展参数

  与第1条类似,只不过是针对参数而言了。日后拓展接口可能是难以避免的,但是不要随意就加参数,加参数一定是必要且有意义的,需求改变前首先应考虑现有接口内部维护是否能满足需求,而不要通过加个参数来方便自己实现需求的难度,因为参数的更变会直接导致客户端调用的变化,容易产生版本兼容性问题。

  三、设计方法

  1. 抽象业务

  相比抽象对象而言,抽象业务更宏观,我觉得相对也容易一些,但抽象尺度往往不太好把握。

  2. 数据格式

  接口定义的数据格式必须都经过充分考虑,否则会出现数据转换失败或超出长度等错误。如果无法确定,直接设置成字符串是最合适的。

  3. 有意义的命名

  无论是接口还是参数,名称都应该是有意义的,让人能看明白的。

  总之,接口设计是一个细致的工作,设计时也会有很多矛盾,但个人倾向于粗粒度设计方向(即内聚性更高一些),这样不仅给客户端浏览接口方便明确,维护也轻松些,这么做的缺点就是某一接口扩展时不是很灵活,但可以通过重新定义一个接口来弥补,但正如上所说,新增接口还是要三思而后行的。以上很多虽然都是理论性讲解,但牢牢记住这些,并结合实际工作,就会慢慢深刻的体会到其中的含义。即理论指导实践,实践来验证理论。

时间: 2024-09-23 05:29:27

手机应用软件开发实现方式同普通PC软件一样的相关文章

手机应用软件遇瓶颈 国内复制苹果商店难成功

中国苹果开发者难以承受之痛 "我们为APP Store开发的一款游戏软件估计两个月后就会上线,初步定价在1.99美元."广州千随信息技术公司CEO Camxi昨日对<第一财经日报>表示,手机游戏开发成功只是开始了iPhone淘金路的第一步,游戏在App Store上线后,公司还准备针对海外重点市场做推广,估计每天的花费至少上千美元. "不花钱推广,再好的游戏都可能淹没在已有近20万个应用程序的APP Store海洋里.必须要先推广,抢夺下载量,进而取得很好的下载排

移动互联网催生新需求手机应用软件成消费新宠

移动互联网催生的新型需求 手机应用软件成消费新时尚 3G商用在2009年催热了手机应用软件市场,手机应用软件还将成为2010年新的消费时尚.往后,打造高品质的产品,不仅是实现国产手机二次崛起的关键,同时也是推动中国3G真正走向大众化的保证 ■本报记者 赵海霞 3G全面商用在2009年是业界的一件大事,也正因为中国3G元年,"天翼"."G3"."沃"等词汇扑面而来,很多消费者成为了3G用户. 正如2G时代一样,所有的手机用户在拥有了终端之后,总是希

手机视频开发技术 支持Android和iOS平台

AnyChat手机视频开发包是面向集成或软件开发商使用,用于开展手机视频相关的产品开发和系统集成. 开发包提供手机端音视频采集.编码.压缩.音视频传输等功能;通过与后端服务器对接,优先P2P通讯,实现手机视频即拍即传.手机视频直播,手机视频录制和手机视频通话. 当前手机视频SDK开发包支持iOS和Android平台. . 提供手机视频采集直播的开发接口 通过视频参数设置接口,设置拍摄视频的分辨率.编码方式.码流.媒体流类别等 通过视频拍摄,实现视频的采集,编码和传输 · 提供语音.文字通讯接口

手机游戏开发中如何选择适合的纹理格式

为毛要写这个 本来觉得像这样的问题,是无法归类的,因为不同的项目有不同的需求,但今天因为quick论坛中的一个技术疑问贴,钩起了我整理这篇文章的兴趣 http://www.cocoachina.com/bbs/read.php?tid=214811 于是,我决定尽力描述一下纹理格式选择方面的问题,一是起到一个科普的作用,因为目前没有发现十分完整的讲这方面的文章.二是整理一下自己的思路. 当然,这些东西肯定不是我自己凭空YY出来的,我也是参考了不少文章,也从项目中总结了一些问题.在此先列出一些链接

以开发人员方式交付设计

本文讲的是以开发人员方式交付设计, 长标题:像在开发环境中搭建 UI 一样在 Sketch 中设计 首先,这将是本文中唯一一次提到 Photoshop.现在是 2017 年了,为自己好,去下载 Sketch(或者 Figma - 只要不是 Photoshop 就行) 用吧. UI 设计已经有了长足的发展,图像处理程序也是如此(如果你现在还这么称呼它们的话).仍记得在 GIMP 中创建我们的第一套 UI 时的场景,现在,有了 MacBook,我们可以用 Sketch 完成几乎所有与 UI 相关的所

[Windows Phone]解锁、注册Windows Phone实体手机为开发机(Windows 8)

原文:[Windows Phone]解锁.注册Windows Phone实体手机为开发机(Windows 8) 前言 ? ? 最近要开发Windows Phone(以下简称WP)的手机游戏,由於使用模拟器实在有些慢,加上装在实体手机上运行会比较有感觉,所以便购买了一只Lumia 920来做为开发机,但是当我要开始把开发的程式Port到实体手机时,却遇到了「无法连接到手机,因为该装置处於开发人员锁定状态....」等讯息! ? 究竟是怎麽回事呢? 要如何解决呢? 其实我们需要对手机做一个注册的动作.

作为一款手机应用软件,大姨吗已经完成了从0到千万用户的原始积累

作为一款手机应用软件,大姨吗已经完成了从0到千万用户的原始积累.对比市面上众多主打女性经期护理的App,大姨吗的商业化进程来得较早,且其一直毫不避讳对商业化的追求态度. 2013年下半年,大姨吗动作频频,从连获投资到发布<2013中国女性生理健康白皮书>,到与智能数字健康公司PICOOC合作推出智能体重秤,再到购买大姨妈.痛经等多个域名宣布将平台化运作--这被外界很多声音解读为激进式的发展. 与大姨吗的激进式发展较为不同的是,整个移动互联网行业的惯性思维是:对流量的诉求要远远大于对商业化的关注

介绍Worklight V6新加入功能对手机应用开发的影响和效果

IBM 从 2012 年初收购 Worklight 平台之后,就一直致力于企业级http://www.aliyun.com/zixun/aggregation/10262.html">手机应用开发的研究.为了更好的规范相应的流程,IBM 提出了手机企业级应用开发生命周期的概念.在这个概念中,所有的流程被定义为九个部分,相应的内容如表 1 所示: 表 1. 生命周期 名称 任务 设计 通过各种图形化工具完成用户界面的定义,并且开发简单示例 帮助用户体验 开发 通过集成开发平台完成跨平台手机应

手机应用开发:减法思维制胜

手机应用开发:减法思维制胜 作者:磐石之心 手机http://www.aliyun.com/zixun/aggregation/11584.html">应用开发者越来越多,手机应用也越来越丰富.不仅有个人的产品,还有大公司的产品,那么应用如何才能做到脱颖而出呢? 我想最重要的是把握产品的核心需求,只有将核心需求做精致才可能取胜.但是很多开发者往往忽视核心需求的打造,过多的追求一站式服务或者抢眼球的功能,这是不可取的. 原因很简单,因为手机具有开发的局限性,无论是CPU.内存.屏幕还是网络,