4-1、需求分解和目录创建

互联网项目大概分几类:私讯、电商、彩票、旅游、金融。

彩票项目对ES6知识复杂度都有要求。

十分钟一期,倒计时。

要完成的功能模块:

覆盖的知识点:

第一排:期号,倒计时。都是动态查询。

第二排,这里完成选好投注。

第三排,传统是都把东西写好,怎么用ES6实现Template模板,实现动态切换任二、任三效果。

第四排:选号区,下面都是跟这变,涉及很多算法。

下面还有机选等等。

怎么组织,用什么架构,怎么思考。做一个分析。

ES6倡导模块化。模块化倡导功能单一。

看一下哪些功能单一出来,首先定时器,单独模块,就是实现倒计时,给一个周期,完成倒计时,倒计时完成后,有一个触发函数。功能模块就是倒计时,跟你做不做彩票,做什么前段项目,没有强耦合性,我们给他弱化,分离出来。

创建彩票项目目录:mkdir  lottery

创建定时器文件:touch timer.js

涉及到很多计算东西,比如选中了号码,奖金怎么算,盈利怎么算,注数怎么算,投注的钱怎么算。所有跟运算相关,单独拿成一个模块。这些运算跟彩票关系不是很大。比如组合运算,在彩票里也能用,在其他项目也能用。创建一个计算模块:touch calculate.js

期号是动态获取,倒计时也是实时在变。倒计时结束,期号加一。倒计时重新开始。数据不是来自客户端,而是通过接口来自体彩中心。因为某一期可能是不销售状态。

遗漏:11选5,11个号码,每次会开5个中奖号码。没出的就是遗漏。遗漏就是拉下。根据当前中奖号码推测哪些号码没有中奖。统计某个号码有多少期没出,就是遗漏,这个数据是自己的服务端统计的。要投注,也要跟服务端通信。这些跟接口相关的东西,再封装成一个模块,叫接口模块。创建接口模块: touch interface.js 。

回到浏览器,还要根本的功能。上面的功能虽然是实现彩票项目,但是跟彩票没有根本关系。放到别的项目也能复用。差一个模块来描述彩票的。比如实现,玩法提示,有多少号码,计算规则,中奖逻辑。建一个基本模块base.js模块。

这些模块都是以类的方式来实施的。最后一个模块来整合11选5的彩种的模块。touch lottery.js 把上面四个模块继承过来。封装成一个完成模块。

在入口文件index.js,这个是整个大的彩票项目文件,需要引入两个部分,1、ES6兼容处理部分:import 'babel-pplyfill' ; 2、彩种文件:import Lottery from './lottery'';

在模块lottery.js中导入上面四个模块,这个模块是具体彩种,按功能划分导入下面4个部分。如下:

import './lottery/base.js'   import './lottery/timer.js'   import './lottery/calculate.js'   import './lottery/interface.js'

后面讲具体每个模块怎么实现。

至于模板部分,css部分,服务端接口部分不是重点,文件准备好,直接用。

你可能感兴趣的:(4-1、需求分解和目录创建)