几种软件应用架构的简单比较-- 之前写的一篇小文章(图没有上)
1、Client/Server 架构简析Client/Server是随着PC 性能的和关系数据库的发展,在大型机(Framework)之后兴起的应用软件技术架构。 Client/Server架构由后台的关系数据库服务器和前台的用户程序构成。每个用户前端都需要安装可执行程序。 在C/S架构中,每个前端可执行程序需要与后台服务器建立固定的数据连接(Connection)。 由于需要建立固定的数据连接,并且相对数据传输量较大,C/S架构的程序一般应用在高速局域网(LAN)内。 Client/Server架构的优点是实现简单,在本地访问速度快,不足之处在于不适应远程应用,并且部署和升级工作量大。2、Application/Server 架构简析 Application/Server是一种过渡技术,它能在不改变现有应用程序的前提下,通过MTS等技术,实现应用程序的集中部署和远程访问。 Application/Server 由后台数据库服务器、终端服务器(Terminate Services)和用户端的 Terminate Client构成。 应用程序运行在终端服务器上,客户端通过上传键盘和鼠标指令,下载屏幕响应和打印数据流,实现远程应用。 Application/Server架构的优点是便于集中部署,客户端部署简单,不足之处是对终端服务器压力过大,并且,对于远程通信线路的稳定性要求高,用户交互响应速度和远程打印都容易受远程网络压力大。并且,部署终端服务器的License成本相对较高。、 3、Multi-Layer 架构简析Multi-Layer架构,是在C/S基础上发展起来的技术。 Multi-Layer架构之前主要在客户端执行的业务逻辑处理单独放在中间层运行,这样,前端用户界面不需要直接连接数据库服务器,不需要建立固定的数据连接。而处于中间的应用服务器可以基于连接池(Connection Pool)的形式访问数据库,便于控制连接数据和数据库性能。 Multi-Layer 一般可以通过中间层实现前端的自动升级(Auto-Update),相对容易部署,并且,客户前端与中间层之间通过数据压缩等手段,可以适应远程访问。 Multi-Layer的优点是适应远程访问,用户交互性好,但是Multi-Layer和Client/Server一样,需要每个客户端进行首次安装。 4、Browser/Server 架构简析Browser/Server是所有Internet应用采用的技术架构。 Browser/Server架构适于远程应用,随着的Web Server 和Application Server技术的发展,是目前在internet上应用最广的技术。 Browser/Server架构的优点是构建简单、易于部署,易于升级。但是由于基于HTML文本传输,通信效率相对较低,而基于Browser的操作界面,用户交互性弱,适应于查询和简单的交互,不太适合大量、快速录入和编辑要求的应用环境, 5、Smart Client 架构简析Smart Client是近几年发展起来的,它充分综合了和C/S和B/S的优点。 Smart/Client由后台数据库服务器、 基于Web Server的中间层应用服务器、前端的Thin Client构成。中间层通过Web Services技术进行接口封装,这样,前端和中间就基于XML 进行数据传递。 Smart/Client技术本身支持Auto-Update形式的自动升级、可以基于Web的首次安装等特性。由于Thin Client 和应用服务器之间传递的全部是业务数据,不包含UI 元素,所以,相比B/S,它具有更高的响应速度。
1、如果使用python语言,需要学习哪些知识?
python作为一门简单明了的语言,非常容易上手,语言层面不会太复杂,稍微有点难度的顶多就是装饰器、元类和少量函数式编程内容。要说学习的话,我觉得更多是一些编程方面通用的东西,比如:数据结构和算法、设计模式、操作系统、计算机网络之类的
2、选择什么样的python框架开发,这个框架的优势?
tornado,因为非阻塞io的原因,性能非常高,特别适合写后端API(App的后端应该都是rest风格的api),而且成熟稳定
3、如何部署服务器?本地服务器调试,以及公网服务器部署?
这个一两句说不清楚,涉及到运维、测试、开发诸多方面, 部署和测试推荐几个包:fabric、nose、unittest(python自带),版本管理推荐git,持续集成推荐使用docker+jenkins
4、如果使用python框架开发移动后台服务,在开发源码内使用哪种框架?mvc还是其它的,比如我返回json数据,每次json对象最外层有一些相同的东西,该如何处理?
MVC什么的,一般的框架都差不多的,tornado也是支持的,返回json有相同的东西,写个修饰器就完了
5、python的后台服务最大能支持多大的pv量会严重影响用户体验性能?
youtube、reddit、豆瓣、知乎这样的大流量网站都是python写的,觉得你的App的规模不太可能遇到性能问题,即使有也应该不是python的问题,而是任何语言都会有问题。毕竟web后端不是计算密集型,而是io密集型的,python和其他语言的区别不会太大吧,大量的pv是可以靠堆服务器堆出来的,如果是计算量比较大的任务,你可以考虑用c或c++写
6、如何兼顾 网页前端以及移动端 开发的后台?
用python写的API,网页和移动端都是可以调用啊,让前端学学React,就可以轻松解决前后端分离这个问题(PS: facebook 就是后端php + 前端React,淘宝也有在用nodejs做前后端分离)
7、有没用相关的案例,即用python开发的移动后台?有没有该问题的开源项目?
这个应该比较少,App后端开源的不常见,而且大部分是rest风格的api,很多时候会涉及到自身的业务和敏感信息应该不会开源的吧(又不是bbs或者博客程序)
App设计,你该注意这6个关键点
设计最优先要考虑产品的目的和诉求,在满足产品的功能。通过设计,我们可以引导用户的行为和视觉流,以达到产品的目的。通过图形、文字的大小、形状、颜色的组织,可以将信息分优先级的呈现给用户。
美是一种功能。它可以传达给用户整个产品有趣和高品质的感觉,用户有时并不一定是因为内容吸引,在内容不足的时候,设计可以作为内容的补足来保证用户足够的停留和二次开启。但同时有趣的设计,需要在保证设计风格的一致性的前提下,不然莽撞的设计容易使用户迷惑,而关闭app
《App后台开发运维和架构实践》(曾健生 )电子书网盘下载免费在线阅读
4yqj
书名:App后台开发运维和架构实践
豆瓣评分:72
作者: 曾健生
出版社: 电子工业出版社
出版年: 2016-5
页数: 280
内容简介
《App 后台开发运维和架构实践》通过阐述移动互联网中 App 后台开发的特点,梳理了 App 后台开发中会遇到的各个技术点,给出了生产环境常用软件的实战运维经验总结,剖析了常见 App 后台技术架构设计,为读者呈现一幅包括技术选型、后台搭建、性能优化、运维实践、架构设计的 App 后台开发蓝图。
《App 后台开发运维和架构实践》的目标读者是对技术感兴趣的产品经理、刚入行的 App 后台开发人员,以及从传统软件行业转向 App 后台开发的技术人员。
作者简介
曾健生,曾任职于广州市赢靖信息科技有限公司,负责社交App后台研发。目前就职bmob后端云从事云服务方面的研发工作。
0条评论