app架构,一个听起来高大尚的名字,很多小伙伴听到这个词语感觉很迷茫,不知道架构具体说的是啥?在q群里,"app后端应该怎么架构"这个问题被问了无数次。通过阅读本文,根据本人提出的一个通用的架构设计的框架,帮你踏入架构的大门。



  在百度百科中,对架构的定义是:网站架构,一般认为是根据客户需求分析的结果,准确定位网站目标群体,设定网站整体架构,规划、设计网站栏目及其内容,制定网站开发流程及顺序,以最大限度地进行高效资源分配与管理的设计。



  看到上面的解析,估计很多新手都会搞晕。



  根据自己5年的互联网开发经验,为了帮助新手快速入门,特地提炼出一个通用的架构设计的框架:





  1. 有什么业务



  2. 遇到什么问题



  3. 有什么可行的技术解决方案






  掌握了以上的架构设计的框架,有什么好处呢?





(1)不怕被别人的架构文章搞晕





  当在网络上看到别人的架构分享时,套用这个架构的框架,问自己这3个问题:作者讲是在什么业务逻辑上,遇到哪些问题,采用了哪些技术解决方案。通过这个框架,能帮助你快速提炼出别人架构的核心点,掌握这个架构的精髓。





(2)能快速地整理合适的架构





  当在设计app的架构时,根据架构的框架,可采用下面的4个点设计app架构:





  1. 根据app的设计,梳理出app的业务流程,把每个业务流程列出来



  2. 把每个业务流程中会遇到的问题整理出来



  3. 根据整理出的问题,探讨可行的技术解决方案



  4. 把3中的所有的技术解决方案有机融合,就是一个app的架构了。





  另外,从对架构的框架上可看出,架构设计上的以下特点:





(1)架构是和业务紧密相关的





  每个app都有独自的业务逻辑,遇到的问题也不会一样的,解决方案也不一样,因此架构也不尽相同。



  经常在qq上被人问到:"app后端应该采用什么价格?"大哥,我不了解你的业务逻辑,不知道你会遇到哪些问题,怎么知道你需要使用哪些技术方案,架构根本无从谈起。





(2)架构的演变是由业务驱动





  当app处于不同的发展阶段,架构上也需要做变化。



  例如,验证用户的token,一开始没啥用户的时候,可能直接在用简单的sql查询语句就能搞定,但随着用户的增长,服务器的压力越来越大,查询速度越来越慢,可能就要迁移到nosql中验证。



  但同时要考虑一个问题,如果初期架构上的不合理,到了后期,因为业务的发展需要改变架构是很困难.但是初期要弄一个好的架构,又可能耽误后端的研发进度,使整个app的上架时间推迟,这时又要面对巨大的资金和时间压力,具体怎么取使,要各位小伙伴认真考虑,马虎不得。





(3)架构不是为了炫耀技术





  架构是为了满足业务的需求而设计的,技术人员不应过度设计,学了一堆最新最炫的技术,都把它放进架构,而不是根据实际的需求来做。



  技术是为了满足业务而存在的,过度设计,不但延误了整个app的研发周期,也可能给运维带来了很多不必要的麻烦。





总结:

  在app成长的过程中,后台的架构也需要不断成长。技术人员,也需要跟上这个成长的步伐。

---------------------------------------------------------------------------------------------------------------------------

打开链接  app后端系列文章总目录 总目录 ,能查看本人发表过的所有原创“app后端”文章。

【作者】曾健生

【QQ】190678908

【qq群】254659220 

【微信公众号】 appbackend

【新浪微博】 @newjueqi

【博客】http://blog.csdn.net/newjueqi

版权声明:本文为博主原创文章,未经博主允许不得转载。

6.app架构基础的更多相关文章

  1. App架构师实践指南三之基础组件

    App架构师实践指南三之基础组件 1.基础组件库随着时间的增长,代码量的逐渐积累,新旧项目之间有太多可以服用的代码.下面是整理的公共代码库. 2.关于加密密钥的保护以及网络传输安全是移动应用安全最关键 ...

  2. 【转】App架构设计经验谈:接口的设计

    App架构设计经验谈:接口的设计 App与服务器的通信接口如何设计得好,需要考虑的地方挺多的,在此根据我的一些经验做一些总结分享,旨在抛砖引玉. 安全机制的设计 现在,大部分App的接口都采用REST ...

  3. 【转载】安卓APP架构

    注:本篇博文转载于 http://my.oschina.net/mengshuai/blog/541314?fromerr=z8tDxWUH 本文介绍了文章作者从事了几年android应用的开发,经历 ...

  4. App架构经验总结(转)

    原文链接: http://keeganlee.me/post/architecture/20160303 架构因人而异,不同的架构师大多会有不同的看法:架构也因项目而异,不同的项目需求不同,相应的架构 ...

  5. App架构经验总结(转载)

    原文地址:http://www.iteye.com/news/31472 架构因人而异,不同的架构师大多会有不同的看法:架构也因项目而异,不同的项目需求不同,相应的架构也会不同.然而,有些东西还是通用 ...

  6. App架构师实践指南六之性能优化三

    App架构师实践指南六之性能优化三 2018年08月02日 13:57:57 nicolelili1 阅读数:190   内存性能优化1.内存机制和原理 1.1 内存管理内存时一个基础又高深的话题,从 ...

  7. App架构师实践指南四之性能优化一

    App架构师实践指南四之性能优化一     1.性能维度常见用来衡量App性能的维度如图9-1所示.其中,性能指标包括电池(电量/温度).流量(上行流量/下行流量等).CPU(平均/最大/最小).内存 ...

  8. App架构师实践指南五之性能优化二

    App架构师实践指南五之性能优化二 2018年07月30日 13:08:44 nicolelili1 阅读数:214   从UI和CPU方面来说App流畅体验优化,核心为流畅度/卡顿性能优化. 1.基 ...

  9. 从服务端架构设计角度,深入理解大型APP架构升级

    随着智能设备普及和移动互联网发展,移动端应用逐渐成为用户新入口,重要性越来越突出.但企业一般是先有PC端应用,再推APP,APP 1.0版的功能大多从现有PC应用平移过来,没有针对移动自身特点考虑AP ...

随机推荐

  1. java中Scanner类nextLine()和next()的区别和使用方法

    转载:http://blog.csdn.net/zhiyuan_ma/article/details/51592730 在实现字符窗口的输入时,很多人更喜欢选择使用扫描器Scanner,它操作起来比较 ...

  2. 全面解读Java NIO工作原理(3)

    全面解读Java NIO工作原理(3) 2011-12-14 10:31 Rollen Holt Rollen Holt的博客 我要评论(0) 字号:T | T JDK 1.4 中引入的新输入输出 ( ...

  3. Javascript二(函数详解)

    一.函数            Javascript是一门基于对象的脚本语言,代码复用的单位是函数,但它的函数比结构化程序设计语言的函数功能更丰富.JavaScript语言中的函数是"一等公 ...

  4. Day9 进程理论 开启进程的两种方式 多进程实现并发套接字 join方法 Process对象的其他属性或者方法 守护进程 操作系统介绍

    操作系统简介(转自林海峰老师博客介绍) #一 操作系统的作用: 1:隐藏丑陋复杂的硬件接口,提供良好的抽象接口 2:管理.调度进程,并且将多个进程对硬件的竞争变得有序 #二 多道技术: 1.产生背景: ...

  5. IOS Swift语言开发 tableView的重用以及自cell的自适应高度

    http://www.aichengxu.com/iOS/11143168.htm 一.准备数据 (这是一个元组,第一个元素为英雄的名字;第二个元素为英雄头像图片的名字,格式为.PNG,如果为其他的格 ...

  6. Python并发编程的几篇文章

    Python几种并发实现方案的性能比较 http://www.elias.cn/Python/PyConcurrency?from=Develop.PyConcurrency python并发编程 h ...

  7. 在 Ubuntu 系统中部署 Git Server

    http://blog.csdn.NET/poisonchry/article/details/11849781 虽然有很多开源的Git仓库,不过并非所有都尽人意,譬如Github,Gitlab等,不 ...

  8. 简明4步,让Python的好朋友Pycharm变得更加雅观!

    跟着人工智能/机械学习的兴起,Python再次取得广泛程序员的关注.而JetBrains出品的PyCharm无疑是最好用的Python IDE之一. 把本身的IDE装备安排得既有逼格又雅观,这是每个P ...

  9. 使用float属性的一些小技巧

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAPwAAACJCAIAAACHJsJCAAAKUUlEQVR4nO2dTY8cxRnHd73LLsusDd ...

  10. 第五章 MySQL函数

    一.数学函数 (1) 绝对值函数:ABS(x) ABS(x) 用于返回 x 的绝对值 mysql> SELECT ABS(2), ABS(-2.3), ABS(-33); +--------+- ...