记录下写的代码,不然感觉久了会忘
个人思路和理解,仅做记录用
最开始接触到活动项目(大家常说的H5)时,用于开发的技术栈为jquery
.
项目前端目录结构大概如下:
www/ #该目录与域名同级,里面的内容全量同步至服务器
├── source/ #源码目录
│ ├── act1/ #单个活动项目
│ │ ├── src/ #单个活动项目源码
│ │ ├── index.html #构建后的index
│ │ ├── css/ #构建后的css文件
│ │ └── js/ #构建后的js文件
│ ├── act2/ #单个活动项目
│ └── act3/ #单个活动项目
├── favicon.ico
├── NgnIMKLhyX.txt #域名校验文件等
...
开发一个新的H5流程为:
在source
下新建文件夹act4
,结构与act1
保持一致
在act4
的src
目录中添加文件(html、css、js)进行开发
在act4/
目录下打开terminal
,使用gulp
命令进行构建,构建后的文件会自动生成在act4/
目录下,为了便于代码回退,不会清理掉上一次构建的内容
从www/
目录开始,保持目录结构,将act4/
中构建好的文件压缩成zip,上传至发布平台进行发布(可理解为同步www
目录下文件至服务器,只是这个步骤为增量发布)
上线后访问 example.com/source/act4/index.html
即可访问到开发好的H5
项目
新建活动时大量重复的复制粘贴操作,繁琐
活动无分类目录,有时候类似的活动文件夹命名困难,想找一个活动的源码也很困难
由于是开发自己建立新项目,而框架只做文件存储和发布用,构建流程只压缩和转译css、js,并不会抽离模块,因此开发者会引入额外第三方库或者工具,例如:有人使用jquery
,有人使用vue
,甚至有人用脚手架在目录下自己单独构建,因为没有统一规范,当需要迭代和维护时,面临的问题不亚于重新开发,包括但不限于:理解他人所用技术栈、重新安装依赖(针对不同node
版本和npm
源)等
由于技术栈绝大多数是jquery
,dom
一半在html
一半在js
中,并且没有统一的数据管理功能,维护起来也十分困难(被诟病无数)
由于旧文件未及时处理,导致线上内容会慢慢积累,最终达到900+M
,严重影响了上线发布效率,从点击发布到线上更新需要等待大概半个小时.
不利于公共代码抽离,除了针对一些通用函数能够进行封装之外,对于同样的UI组件逻辑如果需复用还是需要靠复制粘贴
需要统一规范,包括但不限于文件目录规范、命名规范、技术栈规范、开发规范
使用git
做分支管理,通过提交记录tag或者hash进行代码回退,不需要保留额外文件,缩减文件数量
使用细节可控的构建工具(webpack
等,还有就是我能会的,哈哈)
使用cdn
,不必把所有的静态资源都存放到自己服务器上
采用更优雅的技术框架(Vue、React等),方便组件的封装和复用,同时也带有配套的数据仓库(Vuex、Redux等)