搭建新项目注意事项
来源:互联网 发布:淘宝素材百度网盘 编辑:程序博客网 时间:2024/06/06 02:43
作为项目负责人,一开始要做很多事情,总会忽略很多比较关键的地方。以下是关于之前项目的一些总结,以后再遇到新项目时,一定要先仔细阅读此总结再开始新项目的搭建。
一、数据库相关
1.设计数据库时尽量确认好每个字段的长度、类型
在类型方面,特别需要注意的是:数字类型要明确是否有小数,时间的存储类型确认 好是string、datetime还是date。
2.保证数据库字段名字符合实际指代的意思和规范
3.主键不要直接定义成【id】,而要加上前缀,定义成【表名id】或者【表名_id】
4.每张表一定要有creator、create_time,modifier、modify_time,时间类型为datetime,创建人和修改人的ID类型为long或int
5.相关业务的数据库表的表名可以使用统一前缀,如o_order、o_mail
6.如果项目中会有很多关联查询,为了减少关联查询,那么表中外键所在表的相关外键也可以作为此表的一个字段。例如,商品表中有卖家ID(seller_id),卖家表中有所在企业ID(enterprise_id),如果我们想查询一个企业有哪些商品,为了避免关联查询,我们就可以将enterprise_id也可存在商品表中。
这样做可能会带来数据冗余的问题,这就需要在查询效率和冗余问题之间进行权衡了。一般像外键造成的冗余是被允许的。
7.数据库最选要写设计文档规范
所有数据库设计要写成文档,文档以模块化形式表达.大致格式如下:
‘——————————————-
’ 表 名: web_user
’ 作 者: Peter
’ 日 期: 2017-10-10
’ 版 本: 1.0
’ 描 述: 保存用户资料
‘——————————————-
’ 字段名 类型 长度 备注
’ userID int, 10 主键
’ userName vachar 10 用户名
’ ……
‘——————————————–
8.保证开发、测试、正式数据库结构同步
每次对测试数据库的更改,如修改字段的名字、长度,类型等等时,我们应当使用sql语句,如ALTER TABLE person ADD COLUMN birthday; ,然后将该sql语句备份在项目中。经过漫长的测试后,在正式环境需要发一版时,我们只需要将该sql在正式数据库中执行一次即可,执行完后对备份的sql进行标记说明已经在正式环境中执行。
二、代码相关
组织项目的分层结构。个人偏向于同一业务相关的vo、po、controller、service、dao、xml等这些包都放在同一包目录下。
异常处理公共类,主要是指Controller层的,这可以避免每个接口方法都要写try catch
定义好异常返回规则并实现,需将规则告知前端开发人员。
针对不同模块或大的业务功能,编写不同的常量类。可以避魔法值。
定义分页相关字段的公共类,在接口中要接收分页查询的参数时,可通过继承或实现分页公共类的对象接收。
Controller层只能是对参数校验和写不重复的简单逻辑,主要业务逻辑必须写在service层
如果用的框架不是特别好,可以对简单的增删改查自定义一个service层的公共接口和一个dao层的公共接口。MybatisPlus就不需要自定义。
接口规范最好遵循restful,即资源状态改变。如user/{id}/addition【接口中不能有动词】
VO对象最好继承PO对象,这样可以少写很多字段
如果是mybatis,建议用generate自动生成部分代码
- 搭建新项目注意事项
- 进入新项目的注意事项
- 一个新项目的搭建
- iOS 新项目搭建
- 新项目架构搭建要点
- android studio 导入新项目注意事项
- 做新项目的几点注意事项
- 新项目。。。
- 搭建新项目的步骤(一)
- 新项目一之常见项目框架搭建
- 入门如何搭建Node.js新项目
- 搭建Python的Eclipse开发环境之创建一个新项目
- Cocos2D-X入门学习-环境搭建-创建新项目-01
- Cocos2D-X入门学习-环境搭建-创建新项目
- 从零开始的Android新项目1 - 架构搭建篇
- 从零开始的Android新项目1 - 架构搭建篇
- 从零开始的Android新项目1 - 架构搭建篇
- hadoop搭建注意事项汇总
- SQSERVER版本区别
- OCamCalib与Improved OcamCalib的使用
- gluLookAt() 和 glOrtho() 的个人理解
- CS231N 笔记1_图片分类
- spring之Aop组件
- 搭建新项目注意事项
- Modo教程合集44部
- Lua基础之字符串
- 用CSS3设计响应式导航菜单
- SQL Server,MySQL,Oracle三者的区别
- 数组排序和常用类
- 单片机中映射表在UI设计中的应用
- MySQL 输入密码闪退
- java 异常