公司中项目思考的问题(一)

使用全 node 平台,下面是项目需要考虑的一些事情:
1、对项目中所作的事情进行一些罗列,这些应该是很多项目都需要考虑的问题和事情,其中每一块儿都有其重要的作用;
2、当项目足够庞大的时候,其中每一块儿都独立成为一个项目,就从单项目多功能组合变为,多项目单功能组合,然后每个项目内部在进行更次级的组合;
3、接下来再往大演变,如果有很多业务线,那么很多项目就是可以公用的,这些公用的项目抽离出来就组成了基础设施,为上层业务提供服务;
4、如果上层业务过多,导致各方引用底层基础设施过于庞杂,那么就需要引入一个中间层,进行引用管理,便于基础设施的升级和改进,明确基础设施的引用方;
5、对于中间层的使用问题,任何高内聚的独立系统之间的引用都可以加入中间层概念,对于数量较小的系统来说一些简单的单向引用不需要加入中间层;
6、对于中型以上业务,几十个项目组合提供服务,那么引入中间层就很有必要;
作为技术项目应该引入的功能和要做的事情(业务无关):
  sequelize 数据库 orm 化
  lodash 常用纯方法库
  ali-oss 静态资源存储
  async 代码并行库
  sentry 线上异常抛错收集
  ali-mns 消息队列
  redis 缓存和锁
  invoke sdk接入
  express 系统整体框架
  ejs 模板渲染
  morgan 日志
  跨域处理
  token 解析
  路由层
  apidoc 文档生成
  权限管理
  请求压缩
  静态文件目录
  超时处理
  请求解析
  cookie 解析
  请求链路日志记录
  性能分析
  异常处理
  定时服务
  时区处理
  独立组件抽离
  数据处理脚本
  gitlab devOps
  docker-componse
  静态数据
  代码规范
  合作方式
  系统配置处理
  基础服务设施
  schema 管理
  版本控制
  单元接口测试
  开发模式
  参数校验
  加密及安全
  域名配置
  服务器配备
  debug
  对外sdk服务
  token 生成管理验证机制
  数据备份
  外部库整理
  项目结构及规划架构
  上线流程
  迭代周期
  接口规范
  信息同步
  进度同步
  崩溃重启
  项目之间的关系
  编码心态
  技术分享