1、Cisco WebEx 杜欢w3cgroupdh20196126WEB开发方式历史回顾 问题与挑战 迎接挑战组织结构上的前后端分离 F2E&SDE 改变的意义开发模式上的前后端分离 合理的开发流程 Yahoo!的分离开发经验 全新的思想-可复制的前后端分离开发模式验证与实践业务管理开发甲乙丙丁开发主管技能数据库服务端客户端业务管理开发甲乙丙丁开发主管客户需求数据库设计服务端编程客户端页面业务管理开发甲乙丙丁开发主管客户需求数据库服务端客户端客户需求客户需求数据库服务端客户端数据库服务端客户端如何降低招聘成本?如何提高项目质量?如何完善开发资源分配?如何提高企业的专业形象?如何为员工提供技能升级
2、的空间?如何为员工提供更好的职业规划指引?F2E F Front E End E Engineer 泛指WEB前端开发SDE S Server D Develop E Engineer 泛指WEB后端开发组织结构组织结构Team LeaderTechnic LeaderTeam member企业提高生产力提高项目品质降低招聘成本提升专业形象员工做自己想做的事具备成为领域内专家的基础获得更为清晰的职业规划路线明确的需求F2E前端SDE后端整合测试QA测试项目发布变动的需求 转换成明确的需求 非紧急,重大变动的部分可以版本更新的方式进行处理 制定适合的“需求更改”流程PHPMaple System
3、+PHP存在的问题 在页面中找到要替换的假数据有点困难,需要“淡定”经常弄丢HTML中的字符、引号、结束符等等 SDE表示“压力很大”SDE套页后的页面拿到前端跑不起来 QA需要等到后端全部弄好后才能开始测试JAVAPHPASP.NET指令引入JS的I18N资源文件 页面中调用该指令后,应该输出如下代码:“en_US”应该由该指令自动识别客户端语言 如果站点允许用户选择“语言”,则以此为准页面中输出的I18N信息 该指令应该从相应的i18n属性文件中取到key为”feed.userinfo”的值,如果支持参数形式,则可以将参数传递过去,支持多参数以数组形式的传递,如:arguments=”a”
4、,”b”,”c”前端Mock环境时将只有一个模拟i18n文件(每种语言一个)例如,i18n资源中有:feed.userinfo=0's Info那么,调用该指令后应该输出:Charlies Info业务数据的访问 “name”取到的数据将赋值给它,以便在后面可以通过它来访问取到的数据“param”该service需要用到的参数“service”在前端mock环境下,它会去读取对应的mockdata/biz/feed/feed_list.json 这个文件,在真实环境中,它由后端对该指令接口的具体实现去提供真实数据,service和params将传递进去。通过AJAX访问业务数据 biz
5、call.ext.do,.php,.asp(x)所有通过AJAX访问业务数据的请求都指向到同一个bizCall.ext,发送一个字段:字段名:bizcall字段值:name:“feed”,service:“feed.feed_list”,params:pageSize:10,pageIndex:0 对后端来讲,他们仍然可以使用 easySC.bizData 来处理,对前端来讲,他们的假数据不需要编写多份.提示:前端对业务数据访问的AJAX Call可以封装为一个通用方法,如“bizCall”环境数据访问 “key”在前端开发的mock环境中,应该匹配到前端模前端模拟拟的的环环境假数据文件境假数
6、据文件中的“currentuser.username”,在真实环境中,则由后端对该指令接口的具体实现去提供真实数据,key将传递进去。“name”取到的对应KEY的返回值,如:“Charlie Du”,可以在后面的代码中使用“指令指令”,可以由任何语言进行实现,可以由任何语言进行实现“指令指令”设计思想设计思想:“指令指令”在前端在前端mockmock环环境中取假数据境中取假数据“指令指令”在真在真实环实环境中取真境中取真实实数据数据 环环境切境切换换由开关控制由开关控制业务数据格式 需要由前后端共同约定status:“SUCCESS|FAILURE”,message:“当前请求的情况资讯”,
7、result:“返回值,可以是任何数据类型,比如 String,Array,Object,需要前后端一起约定”环境数据格式 需要由前后端共同约定,后面的注释可以由后端同事补齐,用于后端在真实环境中取数据时可以明确数据出处(比如,来自Session或Cookie)。rootpath:“/”,skinpath:“/resource/skin_default/”,jspath:“/resource/js/”,currentuser.cred:“U1U7EXG5”,/*数据出处*/currentuser.username:“Charlie Du”/*备注信息*/前端模拟假数据文件结构表单数据约定 Ac
8、tion URL Items Name Submit Method链接URL、参数约定所有这些约定所有这些约定最终需要形成最终需要形成“数据接口文档数据接口文档”Data Interface SpecificationXXX ProjectVersion:0.1F2E Owner:Charlie DuSDE Owner:Bo Song2019/10/09Easy Separate and Cooperate它是一个简易的前后端分离框架基于可复制的前后端分离开发模式思想,JAVA+Freemarker的简单实现HTTP ServerEasySC Framework前端环境真实环境实现接口BizDataEnvDataI18NI18NJSModule:current-listmstarWEB-INFclasseseasysc.properties思考思考:Q&AThanks!dh20196126