「产品前端架构」协作流程

产品前端架构

专注于引导前端工程师去主导团队高效协作,去引领团队规范化、工程化构建复杂系统的实践过程。

本章节的核心内容包括多角色低耦合的协作流程、协作规范、
多角度分析选择适合具体项目的技术解决方案、工程化的版本管理、系统构建案例分析。

协作流程

Web 系统

websevice.png

Web 系统部署在服务器上为提出不同需求的外部客户端服务。

MVC (Model, View, Controller) 它们分别代表数据层视图层
控制层

MVC.png
  • 数据层,封装数据管理操作(例如数据的 CRUD )
  • 视图层,展示数据模型提供人机交互
  • 控制层,处理用户请求,委托数据层,选择视图层进行展示

NOTE:CRUD 代表 Create、Read、Update、Delete。

下面以用户请求页面为例:

MVC_Process.png
  1. 客户端发送请求,服务器控制层接受到请求
  2. 请求数据层获取数据,返回控制层
  3. 控制层根据数据选择合适的视图层进行展示
  4. 视图层生成页面代码,返回控制层
  5. 控制层返回客户端进行展示

技术栈全览

mvc-before.png
  • Photoshop,获取图片资源
  • CSS 与 HTML,制作页面
  • JavaScript 前端交互逻辑
  • Template 结构与内容分离整合
  • Java/PHP/Node 后端逻辑

弊端

  • 后期维护性差(相同内容,不同形成存在)
  • 专业化程度低
  • 需求响应速度慢

前端工程师新责任

mvc-after.png

随着视图层也会存在业务逻辑的需求,前端工程师也会参与到业务逻辑的实现中去。
这样使前端工程师可以在后期转换成全栈工程师(Fullstack Developer)。

角色定义

完成一个 Web 系统需要至少以下三种角色:

  • 视觉工程师,视觉稿到交互原型的转化
  • 前端工程师,实现系统前端交互逻辑
  • 后端工程师,系统后端业务逻辑

前端工程师

frontend-developer.png

前端部分又可再细分为页面工程师和前端工程师**。前者更注重和视觉工程师的协作,
后者则更多的与后端工程师进行协作。

页面工程师

  • 精通切图技术 (Photoshop,Sketch)
  • 精通页面制作 (CSS,HTML)
  • 熟悉前端开发技术 (JavaScript,Template)
  • 了解后端开发技术 (Java,Node)

前端工程师

  • 精通页面制作 (CSS,HTML)
  • 精通前端开发技术 (JavaScript,Template)
  • 熟悉切图技术 (Photoshop,Sketch)
  • 熟悉后端开发技术 (Java,Node)
项目工时分配比
tasks-assign.png
  • 页面制作:3天
  • 前端逻辑:7天
  • 后端逻辑:10天

NOTE:多角色开发会比单人工程增加工作沟通成本。

协作流程

开发过程

collaboration-process.png

按照流程规范可以明确角色和其对应的职责,这样可以大大减少角色间的沟通成本。

  • 页面入口规范,定义系统对外可访问入口和配置信息
  • 同步数据规范,定义系统对模板文件的预填信息
  • 异步接口规范,定义前后端接口信息

维护过程

collaboration-mataince.png

NOTE:红色路径为不需要改变规范的前提下,响应需求变更。

职责说明

下面将总结各个角色职责具体任务:

页面工程师

  • 切图、图片优化
  • 页面制作、优化页面效果与结构(适合业务逻辑开发)
  • 完成简单的前端业务逻辑开发

前端工程师

  • 主导制定前后端分离规范
  • 主导前端联调对接测试
  • 系统前端设计架构、满足一定的非功能性需求
  • 完成系统前端的业务逻辑实现、优化实现逻辑

后端工程师

  • 协助定制前后端分离规范
  • 协作前后端联调对接测试
  • 完成后端系统框架及业务逻辑实现

角色与人之间不一定需要一一对应,前端工程师和页面工程师可能是一人。
全栈工程师则有能力包揽一切。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,847评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,208评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,587评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,942评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,332评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,587评论 1 218
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,853评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,568评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,273评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,542评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,033评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,373评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,031评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,073评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,830评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,628评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,537评论 2 269

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 170,568评论 25 707
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 12,473评论 2 59
  • selector用于从XML中定义背景 包含多个item节点,不同的item节点表示不同的状态,常用的状态有两个 ...
    UniThan阅读 190评论 0 0
  • 文/王勤 摄影/丹山映雪 香烟夹在指间 如捻着整个世界 她微仰着头 思绪,如烟 青烟漫过头顶 漫过浅秋的银杏树 她...
    南河牧风阅读 443评论 0 0
  • 无题 草皮 我们已早已不是从前的我们 对生命的茫然压抑的透不过气了 或者 养一条狗吧 你永远都是他的唯一 你...
    诗子草皮阅读 189评论 0 0