网站开发从零开始到上线
· 系统架构的选型
· 网站设计
开发网站首先要想想需求是什么, 网站的访问量如何, 然后就要开始前后端的设计
后端设计: 主要关注的是网站的峰值并发量是否很高, 网站的数据库是否要支持事务, 一般的网站, 就用一个大众的开发框架即可(php可以选用laravel, nodejs可以选用express或者koa, python选用flask, java选用springboot springMVC), 数据库支持事务选用 mySQL postgreSQL, 不考虑事务选用mongodb
前端设计(界面): 设计师出AI图或者PSD图, 出交互UI效果图
前端设计(框架): React(基本成熟, 兼容到IE8), Vue(基本成熟, 兼容到IE9), 原生
如果快速开发, 前后端不分离, SEO要求比较强烈, 可以考虑模板引擎渲染前端页面
推荐: 前后端统一用Javascript书写, 这样基本上一个人就能搞定
开始开发(nodejs为例)
· 本地
o Git Workflow 模式开发
o 数据库环境配置(测试环境 生产环境 开发)
o 自动化工具的运用(webpack自动化打包 gulp自动化处理各种任务)
o 测试
· 线上
o 域名购买
o DNS解析
o 云服务器购买(含操作系统 推荐使用 CentOS 等Linux发行版)
o 云服务器用户创建(用户权限 ssh只允许秘钥登陆)
o 云服务器反向代理配置(推荐使用nginx), 或者使用云服务负载均衡
o 云服务器防火墙配置
o 云服务器数据库配置(可以单独购买数据库服务, 也可以单独弄一台数据库服务器, 展示型无需更新的网站可以不配置数据库)
o 服务器代码运行环境配置(参考本地环境配置)
o 服务器缓存配置(推荐使用redis 或者 服务商提供的 缓存服务器)
o githook线上环境自动化测试也可以搞起
o 线上日志和监控报警(可以使用第三方服务 OneApm Alinode等)
代码部署上线
· 前端
o 前端代码压缩, 文件名md5化
o 服务器开启gzip压缩
o 公共文件, 图片, 视频放在CDN上
o 图片base64化
o 域名发散
o 雪碧图
· 后端
o 数据库索引
o 数据库是否需要读写分离分库分表
o 后端代码部分进行良好的单元测试, 集成测试
· 部署
o 利用 git 进行部署(githook自动化的测试, 自动化的拉取到服务器上)