本专栏开设的目的是通过一个完整的项目开发过程来带领大家掌握前端、后端、数据库等各个模块的核心开发知识。在学习之前,重要的是选择一个合适的项目。本专栏选择了一个云笔记项目,命名为 Keller 云笔记,具体要需要什么功能呢?
无论项目大小,在动工之前,都是已经有了明确的目标,这个目标不是凭空想象的,需要经过一系列的分析与判断。百度百科上对项目需求分析做如下描述:
需求分析是指理解用户需求,就软件功能与客户达成一致,估计软件风险和评估项目代价,最终形成开发计划的一个复杂过程。
从广义上理解:需求分析包括需求的获取、分析、规格说明、变更、验证、管理的一系列需求工程。
在带着大家做云笔记项目需求分析之前,我们要掌握 4W1H 的分析原则,Who、What、Where、When、How。这个原则是在做任何项目都适用的,具体解释如下。
1. Who 用户分析
2. What 功能分析
3. Where 环境分析
4. When 项目周期
5. How 开发流程
用户
云笔记项目面向的是广大有随时随地记录习惯的用户,对用户没有技能上的要求,角色分为两种:普通用户和管理员。普通用户可以记录、管理自己的笔记;管理员可以查看系统用户数、管理用户。单机可以同时支持上百位使用者并发使用场景,分布式部署方式可以支撑千万级用户量。
开发者
该项目需要的开发者有前端开发工程师、后端开发工程师、数据库管理员和系统运维人员,项目较小,各类工程师 1 枚即可。当然,也可以由 1 枚全栈工程师独立完成。
项目功能分析是项目需求分析的重点内容,在这一步能将抽象的需求描述转换为真实可见的项目功能说明书,即项目开发过程中的重要依据。
在工作中,我们可能接到老板或者甲方这样的需求描述:
我需要一款笔记类的应用,可以编辑富文本笔记,支持 MarkDown 格式,在安卓手机、苹果手机、平板电脑上都能使用。
或者是这样的:
开发一款类似微信的聊天软件。
我最近接了个项目,描述更加简单:
参照 www.xxx.com。
这个时候我们该怎么办呢?
以第一个需求说明为例:
流程图如下:
知道分析流程后,接下来我们实际做一下云笔记项目的功能分析。
登录注册是使用应用的入口,我们来看下有道云笔记的登录页面:
我们可以看到在有道云笔记的登录页面提供了多种登录方式:账号密码登录、手机号验证码登录、QQ 账号快捷登录、微信账号快捷登录、新浪微博账号快捷登录。这些登录方式几乎是现有主流应用能用到的所有方式了,除此之外,还有一种在国外常用的登录方式:邮箱验证码登录。
我们分别对这几种登录方式进行分析,看哪些是适合我们的:
经过如上分析,云笔记项目可以使用两种登录方式:账号密码登录、邮箱验证码登录
确定好登录功能后,看注册。有道云笔记的注册功能,是在点击上图的“新用户注册”按钮后,跳转到网易邮箱账号注册页面:
观察这个页面,使用的是验证手机号的形式注册个新的邮箱账号,然后就可以用这个邮箱账号使用网易旗下的其他应用,包括有道云笔记。
和登录时我们做的分析一样,短信验证码方式对个人开发者来说不太容易实现。因此,云笔记项目使用邮箱验证码注册
登录注册功能分析完毕后,我们就可以根据选用的登录注册方式来画出界面的原型图,参考原型图如下。
登录页面:
注册页面:
有道云笔记登录后是这样的一个界面,我们来分析一下包含了多少功能。
这个界面是标准的上、左、中、右式布局。
上:
左:
中:
右:
经过以上分析后,用户功能整理如下:
参照普通应用的管理员功能,对云笔记项目的管理员功能做如下设置:
管理员功能整理如下:
使用环境
云笔记项目的使用环境是浏览器,兼容 Firefox、Chrome、Safari 浏览器,不针对 IE 浏览器做特殊设置。
运行环境
云笔记项目的运行环境可以是 Windows、macOS、Linux,可运行在个人电脑、服务器、虚拟服务器上。
项目动工日期
这里说的正式动工是指:已经对项目工作量和可行性有初步判断、开发人员初步确定、开发人员职责分配完成、可以开始项目编码工作。需要在完成前后端架构选择、数据库设计、接口文档设计后,正式动工。
项目开发周期
预计整个项目开发周期为 40 天,其中:后端 28 天,前端 12 天。
项目开发流程
项目工作量分配
在本项目中所有设计、开发和部署工作,由全栈工程师独立完成。
本篇通过参照目前市面上主流的云笔记《有道云笔记》,在其基础上进行相应的增减,来形成 Keller 云笔记项目的功能结构。本篇的功能树将指导整个项目开发过程,是后续数据库设计、接口文档设计、代码设计的基础。