`
steely816
  • 浏览: 130152 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

前端与后端的配合

阅读更多

→FLASH与后端通讯的手段多种多样,网上相关教程太多了,这里不再例举。但很多时候,创业团队由于受制于各种现实条件,可选择的方案并不多。像我们公司,刚开始基本上只能选择FMS+PHP+MYSQL。其实,对于我们前端来说,后端选择什么解决方案对我们的影响并不大,我们无非就是用的API不一样而已。多看看教程,用很少的时间我们就能掌握其要领。那么前后端合作的难点是什么呢?我觉得关键是逻辑的划分。

→“前后端合理划分逻辑”,这句话咋看上去貌似简单,其实里面蕴含着诸多方面的考虑。比如安全性、后端性能、工作量、人事分工等等。安全性:记得我们的游戏同时在线超过3000的时候,就已经有人开始攻击我们的后端了,篡改了很多人的个人资料。幸亏攻击的人只是我们一个善意的玩家,如果是恶意的商业攻击,后果不堪设想。经过这次后,老板开始缠着我们追问“怎么防止别人攻击,提高安全性”。这个问题又一次把我们难住了,我们都知道,基于HTTP的请求不被截取是不可能的,而SWF文件又不存在绝对的安全。就算你防得了恶意进攻,你也防不了良性的外挂,想从技术层面让别人完全攻击不了我们也是不可能的。那我们是不是只能坐以待毙了?不是!如果前、后端在合作的时候,数据逻辑与合法性检查都是做在后端的,就可以很好的避免一些良性外挂。首先是游戏数据逻辑要尽量全做在后端,比如用户在玩小游戏的时候,我们不要只是在用户结束小游戏后,简单的把数据传回后端,后端记录进数据库完事,一旦攻击者发现了你这个传数据的后台接口,完全可以避开SWF,做外挂直接呼叫你这个接口刷分,就算你验证用户也没用,因为他可以先注册一个合法的用户,然后在外挂中登录再刷分。当

然,你还可以对游戏分数先加密在传给后端,提高攻击难度,但这也是不保险的,因为加密算法就在你的SWF文件中,别人可以很容易获得。所以正确的做法应该是:游戏开始的时候只告知后端游戏ID→后端标识ID对应的游戏已经开始并记录开始时间→用户每次获得一个分数时,前端传回来的不是分数,而是一个动作ID, 后端根据动作ID给用户加分→游戏结束时,前端告知后端游戏已经结束→后端得知游戏结束,记录结束时间,计算时间差,根据时间差和最后得分是否符合标准做出相应处理,如果符合标准就把最后得分入库,并返回前端显示给用户,如果不符合标准,就启动安全处理系统。而这个标准一般是由数值策划给出的。经过我这么一分析,你可能头痛了,本来一个很简单的小游戏计分,怎么搞得这么复杂?前后端工作量都增加了不说,对后端性能也提出了更高的要求,服务器可能要增加了,后端人手可能要增加了,开发周期也要延长了,值得么?这个问题问的很好,这正是我下面要说的:后端性能、工作量、人事分工:一旦我们每一步进行安全性与合法性验证后,整个项目的工作量都会大大膨胀,开发周期也会大大延长;一旦我们把数据处理、业务逻辑和安全验证都移到后端时,后端的压力就会增加,服务器要增多,对后端人员的能力要求也会提高。很多初创团队在项目初期人力财力,软件硬件都不足,可能顾不上那么多,一心想着早点让项目上线。在这种情况下,我觉得安全性可以暂时放一下,众所周知的安全漏洞补上就可以了。但“数据处理和业务逻辑”这个,宁可开发的慢一点,宁可再招个后端高手,宁可多几台服务器成本,也要把它们尽量都放在后端。因为这个没分清的话,会影响到整个系统的清晰度,严重影响项目中后期的发展,为日后的重构增加难度和超多的工作量,我们还指望着在重构时加强安全性呢,到时候数据处理和业务逻辑还是要放后端!所以综合考虑,该出手时就出手,能省的不浪费,不能省的不要抠!

→前面一节谈了前后端合作的难点。这里再简单的谈两个要点:
        1,前端人员不要以前端的角度看后端:前端和后端有个本质的区别,就是前端的负荷是分担在每个客户端的,而服务端的负荷是集中在服务器上的。对于我们前端来说,一个功能多占了几K内存,SWF文件大了几K根本不是什么问题,可对后端来说就是很严重的问题了,一个人大几K,上千人就是几M了。服务器在连接数、内存和CPU之间会有微妙的平衡点,一旦这个平衡点被打破,随便再多哪怕一点点资源占用,整个服务器的性能都会严重下降,影响用户体验,当然,如果你有几十上百台冗余服务器供你负载平衡,你可以当我没说,可如果你像我们公司一样,一开始就3、5台服务器的话,就请前端人员一定要多多配合后端人员,帮他们省出每一个字节,每一次请求。比如像道具属性会有很多文字说明,这些说明应该以类似XML文件的方式储存为静态文件,后端返回给前端的道具数据包里只需要一串物品ID,前端就可以根据这些物品ID在XML文件里查询出这些道具对应的静态物品属性了。别看这些数据可能只有十几K,对后端来说意义重大。还是那句话,只要不是架构性问题,前端不要怕麻烦,要尽量配合后端提高性能。

        2,前端后端要有很明显的BUG分界点。当一个BUG出现时,后端应当很快的用一种统一的方案证明数据没有问题!这个方案必须让前端知道,并让前端也可以操作。大家熟知的php remoting里有一个servicebrowser,这个东西就很好,它能罗列出所有PHP的接口,我们输入参数,它就返回结果,我们可以根据结果直接查看数据是否正确。——确定数据的正确性,对前端DEBUG非常重要,而一个BUG的解决,一般都是由前端人员入手并进行定位的。

→其实相对于前端和美术的合作,前端与后端的合作还是简单清晰的,前后端在开发的过程中,应该是非常独立的,后端开发完全可以先启动,把数据接口提前写好,等着与前端整合,而当整合过程发生问题时,又可以很快的界定是谁的问题。

分享到:
评论

相关推荐

    单页web应用:javascript从前端到后端(源码)

    本资源"单页web应用:javascript从前端到后端(源码)"提供了从浏览器端到后端全栈JavaScript开发的实践指导,对于学习和理解SPA的构建流程极其有价值。 1. **前端JavaScript框架**:前端是SPA的核心,通常会使用...

    城市地图带后端_前端后端.zip

    8. **地图标记与覆盖物**:用户可能需要在地图上添加标记或覆盖物,如兴趣点、公交站等,这需要前端与后端配合,允许用户上传或编辑这些信息。 9. **实时更新与定位**:集成GPS定位功能,提供实时的位置追踪和导航...

    前端+后端.zip

    这些资料可能涵盖了如何使用Java进行后端开发,如何设计和实现RESTful API,如何使用Maven或Gradle管理项目依赖,以及如何集成前端框架,如使用Spring Boot与React配合构建全栈应用。 学习前端和后端开发,开发者...

    柚子黑卡小程序前端+后端完整版 V3.3.1

    这套系统包含了小程序的前端界面与后端服务,旨在提供一种智能化的会员管理解决方案。 前端部分是用户交互的核心,通常由HTML、CSS和JavaScript等技术构建,采用现代Web开发框架如React或Vue.js来提升用户体验。...

    校园信息发布系统 vue前端 后端java 一套完整

    《校园信息发布系统:Vue前端与Java后端的整合实践》 在信息技术日益发达的今天,校园信息发布系统的构建已经成为教育信息化的重要组成部分。本套系统采用Vue前端技术和Java后端技术进行开发,旨在为师生提供一个...

    拼多多客京东客蘑菇街V9.1.0 小程序前端+后端

    该资源是关于拼多多客、京东客以及蘑菇街电商小程序的V9.1.0版本的前端与后端源代码。这个版本的更新可能包含了优化的性能、新增的功能以及修复的已知问题,旨在提升用户体验和商家运营效率。 首先,我们要理解“小...

    路飞学城前端+后端.zip

    在这个项目中,学习者可以了解到如何将前端界面与后端服务进行交互,如通过Ajax或Fetch API发送请求,以及如何处理JSON数据。同时,通过阅读和理解代码,可以掌握如何设置路由、处理HTTP请求、执行数据库查询等后端...

    完整的餐馆前端后端项目

    这个“完整的餐馆前端后端项目”是一个综合性的IT解决方案,主要涵盖了餐饮行业的在线服务流程,包括前端用户交互和后端管理系统。项目的核心是利用技术手段实现了餐馆运营的关键环节,如点餐、购物车功能、订单处理...

    前端及后端区别.doc

    【前端与后端的区别及其挑战】 前端开发与后端开发是构建Web应用程序的两个关键部分,它们各自负责不同的任务和责任。理解这两者的差异对于Web开发团队至关重要。 **前端开发**,也称为客户端开发,主要关注用户在...

    酷炫小程序相册 4.7.4 小程序前端+后端.zip

    【酷炫小程序相册 4.7.4 小程序前端+后端】是一个完整的解决方案,包含小程序的前端用户界面和后端服务器组件。这个版本号4.7.4表明了这是一个经过多次迭代和优化的产品,旨在提供一个高效且美观的图片相册功能。在...

    《单页Web应用:JavaScript从前端到后端》完整版+书签

    Node.js与前端JavaScript紧密配合,可以实现前后端的无缝对接和数据交互,是构建单页应用的关键技术之一。 从提供的部分内容来看,该书可能包含有关单页应用开发的讨论,并且在文档的某些部分提到了书籍的获取方式...

    柚子家政 6.2.3 小程序前端+后端.zip

    小程序前端是用户在手机上看到和交互的部分,它负责展示内容、处理用户输入、与服务器通信等任务。在这个柚子家政的小程序前端中,可能包括了预约家政服务的界面、服务详情展示、用户个人信息管理、支付功能、评价...

    微信家政到家小程序(前端+后端)

    此项目包括了小程序的前端界面和后端服务器开发,实现了用户与服务提供商之间的无缝交互。 小程序是一种轻量级的应用形式,无需下载安装即可在微信平台上使用,方便快捷。在“家政到家小程序”中,前端部分主要负责...

    初识前端后端UI交互,初学者必看

    **前端与后端的开发任务量分析与比较**,通常取决于项目的复杂性和需求。小型项目可能只需简单的前端页面和少量后端逻辑,而大型项目可能需要大量的后端处理和复杂的前端交互。前端工作可能更注重创意和视觉呈现,而...

    同城黑卡一陈 2.1.4 小程序前端+后端.zip

    《同城黑卡一陈2.1.4:小程序前端与后端详解》 在当今的互联网时代,小程序作为轻量级的应用形式,以其无需下载、即扫即用的特性深受用户喜爱。本篇将深入探讨“同城黑卡一陈2.1.4”这一特定版本的小程序前端和后端...

    小小素材库V7.8.43 原版 小程序前端+后端

    小小素材库的后端可能采用了一些常见的技术栈,如Node.js、Java或Python等,配合数据库系统如MySQL、MongoDB等,来处理前端请求和存储用户数据。 1. RESTful API设计:后端通过定义清晰的RESTful接口,与前端进行...

    前端后端的一些资源文档

    这个压缩包“前端后端的一些资源文档”包含了与这两个领域相关的多个技术及其资源。让我们深入探讨这些技术及其重要性。 1. **Ajax(Asynchronous JavaScript and XML)**:Ajax是一种在无需重新加载整个网页的情况...

    前端WebUploader后端Java大文件分片上传

    通过这样的前端和后端配合,"前端WebUploader后端Java大文件分片上传"方案能够有效地处理大文件上传问题,提高系统性能,降低因网络波动导致的失败概率,为用户带来流畅的上传体验。在实际开发中,需要根据具体业务...

    崛企图文 1.2.7 小程序前端+后端.zip

    在这个项目中,后端可能使用了Node.js、Java、Python等语言,配合Express、Django、Flask等框架进行开发。后端的主要任务是接收前端发送的请求,处理数据,执行业务逻辑,并将结果返回给前端。例如,用户上传图文...

Global site tag (gtag.js) - Google Analytics