产出动态有数据的php,jsp页面,前端与后端的打包发布完全独立。
这种的好处是前端层的表现,数据完全由前端把控,
有什么问题可以由前端独立解决,并单独打包发布。
前端与后端的打包发布完全独立。这局话的意思和理解
回复内容:
产出动态有数据的php,jsp页面,前端与后端的打包发布完全独立。
这种的好处是前端层的表现,数据完全由前端把控,
有什么问题可以由前端独立解决,并单独打包发布。
前端与后端的打包发布完全独立。这局话的意思和理解
前后端分离,前端工程化,前端与后端交互全部通过api,你或许觉得这样对seo不好,但是现在有nodejs,这样的话页面渲染可以交给前端去做,实际上这也是趋势,后端应该去关心系统可用性,性能等问题,不应该关注页面问题,这部分应该交给前端去做
这篇博客应该可以帮到你Web前后端分离开发思路 by livoras
首先得确定通讯协议以及通讯参数。
前端独立作业可以使用mock等工具模拟后台数据传输。
后端设计使用数据模型完成业务,生成接口。
个人认为就是类似于把php中的模版引擎等视图业务从项目中剥离出来形成独立的前端版本?
前后端通过 API 交互。不论使用 web 前端,还是 ios 安卓客户端,都可以。
后端尽量使用相同的API满足前端多个页面甚至不同前端的需求,这才是最好的。前端需要知道后端返回了什么数据,根据设计图应该如何渲染出来就可以了。
我前阵子写了篇前端用ionic、cordova 后端用CoreThink开发非原生APP的步骤http://www.oschina.net/question/2598464_2151690?fromerr=mCRfZH2m你可以看看
简单的说,通过数据接口(比如:ajax请求)将前后端分离。
反面案例
去年接手了一个半成型web项目:后台php语言开发的。不看代码不知道,一看代码,我晕了。代码基本如下:
<?php ... echo val; ?> <html> <?php echo ...?> </html>
整个php文件中包含着html的味道。细节不多说了,你们应该懂得。除了css文件外,我吐了。深深的伤了强迫症的心。语言还可以这么使用。我再次觉得我选择错了道路。本以为代码的世界可以规整一些,看来我错了。
后来想了想,这样开发的,可能是一个人把前后端都囊括了,也够辛苦的。不过,这样混合开发的模式,还真有一个优点,成本少,效率高。缺点一大堆,扩展和后期维护都成问题。
正面案例
还是去年,同样接手一个web项目。主要需求:显示后台数据库表中的内容,说白了,就是模仿mysql的web控制。不过是简单的。但是有要求:模型化,即后台通过修改少量的参数,就可以控制前端显示的表的个数,甚至表的列名。也就说,前端有关表的一切信息都是由后端提供。前端只要根据后端的数据,对界面做显示性的调整即可。
设计思路:
1.有关表的样式和鼠标对于表格的动态操作,作为前端模块部分;
2.表的表名信息和列表信息由ajax请求服务器返回json,本地对json稍加验证,即可动态创建本地表;
3.数据的获取,同样适用ajax获取。然后填充本地表;
4.本地对于数据的增删改,通通通过ajax上传到服务器;
唯一的磨合点,就在ajax接口上面。开发的时候,由于后端缓慢,有些接口传递到前端的就是直接echo
出来的假数据。
前后端分离优点
通过数据接口模式的开发,前后端完全分离,而且这个项目因为是模型化设计,所以代码重用度非常高。
而且,出现问题,通过检测数据接口的数据,很容易知道是前端的问题还是后台的问题。十分的便于维护,甚至深度的二次开发。

aphpdepentioncontiveContainerIsatoolThatManagesClassDeptions,增强codemodocultion,可验证性和Maintainability.itactsasaceCentralHubForeatingingIndections,因此reducingTightCightTightCoupOulplingIndeSingantInting。

选择DependencyInjection(DI)用于大型应用,ServiceLocator适合小型项目或原型。1)DI通过构造函数注入依赖,提高代码的测试性和模块化。2)ServiceLocator通过中心注册获取服务,方便但可能导致代码耦合度增加。

phpapplicationscanbeoptimizedForsPeedAndeffificeby:1)启用cacheInphp.ini,2)使用preparedStatatementSwithPdoforDatabasequesies,3)3)替换loopswitharray_filtaray_filteraray_maparray_mapfordataprocrocessing,4)conformentnginxasaseproxy,5)

phpemailvalidation invoLvesthreesteps:1)格式化进行regulareXpressecthemailFormat; 2)dnsvalidationtoshethedomainhasavalidmxrecord; 3)

tomakephpapplicationsfaster,关注台词:1)useopcodeCachingLikeLikeLikeLikeLikePachetoStorePreciledScompiledScriptbyTecode.2)MinimimiedAtabaseSqueriSegrieSqueriSegeriSybysequeryCachingandeffeftExting.3)Leveragephp7 leveragephp7 leveragephp7 leveragephpphp7功能forbettercodeefficy.4)

到ImprovephPapplicationspeed,关注台词:1)启用opcodeCachingwithapCutoredUcescriptexecutiontime.2)实现databasequerycachingusingpdotominiminimizedatabasehits.3)usehttp/2tomultiplexrequlexrequestsandredececonnection.4 limitsclection.4.4

依赖注入(DI)通过显式传递依赖关系,显着提升了PHP代码的可测试性。 1)DI解耦类与具体实现,使测试和维护更灵活。 2)三种类型中,构造函数注入明确表达依赖,保持状态一致。 3)使用DI容器管理复杂依赖,提升代码质量和开发效率。

databasequeryOptimizationinphpinvolVolVOLVESEVERSEVERSTRATEMIESOENHANCEPERANCE.1)SELECTONLYNLYNESSERSAYCOLUMNSTORMONTOUMTOUNSOUDSATATATATATATATATATATRANSFER.3)


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

WebStorm Mac版
好用的JavaScript开发工具

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境