项目流程及项目设计(前端视角)

186 阅读2分钟

项目流程

项目沟通很重要,每日一沟通,有事说事,没事报平安。

需求分析

  • 产品经理(PM):提出功能需求,展示原型图并说明为什么开发。
  • 前端(FE):质疑需求是否合理,是否闭环,技术上是否可实现。是否需要其他支持。不要急于给排期。
  • 是否需要帮助。

技术方案设计

  • 求简,不过度设计。
  • 产出文档。
  • 组内评审。
  • 发出会议结论。

开发

  • 排期一般多四分之一时间。
  • 考虑上一个流程的排期,不好判断时给出工作量(几天完成)。
  • 写开发文档。
  • 单元测试。
  • Code Review,让技术更好的人帮你看下代码。

联调

  • 和后端(RD)和客户端(CRD)进行技术联调。
  • 让视觉设计师(UE)确定视觉效果。
  • 让产品(PM)确定产品功能。

测试

  • 提测发邮件,抄送项目组。
  • 测试问题要详细记录。
  • 有问题及时沟通,前端(FE)和测试(QA)天生信息不对称。

项目上线

  • 如果有问题,及时回滚。先止损,再排查问题。

常见问题

产品(PM)加需求怎么办?

  • 不能拒绝,走需求变更流程即可。
  • 如果公司没有变更流程,发起项目组和leader的评审,重新评估排期。

项目设计

状态:数据结构设计(Vue-data)

  • 用数据描述所有内容
  • 数据要结构化,方便遍历、查找
  • 数据要可扩展,已便增加新的功能

视图:组件结构和拆分

  • 从功能上拆分层次
  • 尽量让组件原子化
  • 容器组件(只管理数据)和UI组件(只显示视图)

经典案例

todolist

  • 原型图(一般由产品经理或视觉设计师提供)

  • data数据设计
data: function () {
    return {
        list:[
            {
                id:1,
                title:'标题',
                completed:false
            },
            // ...
        ]
    }
}
  • 组件设计
<App>  <!--只负责管理数据-->
    <Input/>  <!--只负责输入,将数组结果给父组件 -->
    <List>  <!--只负责显示列表,从父组件获取数据 -->
        <ListItem/>  <!--显示单条数据,删除,切换完成状态 -->
        <ListItem/>
        <ListItem/>
    </List>
</App>