400 likes | 571 Views
架起前端和开发的桥梁. 淘宝网前端开发工程师:张挺. About Me. Sina weibo: 雪霁霜飞_张小挺 email: czy88840616@gmail.com twitter: @czy88840616 github: https://github.com/czy88840616. 大纲. 前端和开发如何更好的协作 Demo交付、数据约定 未来前端们的开发模式. 淘宝背景. 长期处于基于html的协作方式 Demo准备和更新 Demo交付和嵌套. 问题. 先说说困难. 。。。. 集团开发使用webx.
E N D
架起前端和开发的桥梁 淘宝网前端开发工程师:张挺
About Me • Sina weibo: 雪霁霜飞_张小挺 • email: czy88840616@gmail.com • twitter: @czy88840616 • github: https://github.com/czy88840616
大纲 前端和开发如何更好的协作 Demo交付、数据约定 未来前端们的开发模式
淘宝背景 • 长期处于基于html的协作方式 • Demo准备和更新 • Demo交付和嵌套
问题 先说说困难 。。。
集团开发使用webx • 庞大的开发环境+maven库 • 数据库 问题 先说说困难
那怎么解决问题呢? • 不写demo。。 • php(jade)转vm • 直接写vm?
前端更专注本职工作(html/css/js),开发更专注业务逻辑前端更专注本职工作(html/css/js),开发更专注业务逻辑 省去开发套用demo的时间 模板更新维护统一 php velocity 对比 vs
希望直接提交vm作为demo交付 YY 有一个东西 不需要开发套页面 前端demo保持和线上页面一致 可以直接测试vmcommon
目标:像开发一样运行vm 思考 • 需要一个轻量级的伪webx框架 • 可以解析velocity • 方便的数据格式 • 部分模拟逻辑
直接使用json,然后json -> java object 思考 • 数据问题 • no sql && db • no java object
思考 • 难度有点大,还是从veloicty入手 • 使用velocity • groovy解析json • groovy运行动态脚本
ResourceLoader - 资源加载 • Tools System - 工具类 • Render System - 渲染机制 Velocity包含 实现和改造
loader改造 FileResourceLoader TemplateResourceLoader
loader改造 TemplateResourceLoader Macro Screen Control Layout #parse(‘control/a.vm’) #control.setTemplate(‘a.vm’)
Tools改造 ControlTool Tms Tool Cms Tool Uri Tool CsrfTokenTool RundataTool pageCacheTool CsrfTokenTool CsrfTokenTool
Tools改造 ControlTool
$control.setTemplate • 作用域context处理 • 调用Render System Tools改造 ControlTool
Render System 改造 VM Data + =
Render System 改造 Data
$a.b.c Render System 改造 Data
$a.b.c Render System 改造 { Data
用户体验第一 上手慢 模拟累 不喜java 调查
+ 提供实时渲染velocity API 提供webx目录分析和web界面 思考 大家不喜欢java
+ version 2
API改造 API Template Tools Request Data Params
API改造 API velocity velocity velocity velocity velocity velocity velocity velocity velocity Instace pool
client 处理 API Client
client 处理 Client 路由资源 解析模板 查找模板 Parser Finder Router preprocessor
解析模板依赖 便携的小功能(代理) 编码处理 数据处理 独角兽系统支持 自定义数据解析合并 Velocity多实例处理 Webx工具类接入 html Vm+data 框架 Client Server
成果 客户端 https://github.com/czy88840616/avalon-node
成果 客户端
成果 服务端 https://github.com/czy88840616/vcenter POST API http://v.taobao.net/render.do 接受模板和数据 => 合并处理 => 返回html
继续YY 现在看起来已经比较简单了。 那么 有办法再简单一点么?
hsf Java web data 继续YY 假如数据不需要模拟呢? HTTP
data 继续YY
是不是很美好 继续YY 需要开发、前端等共同努力