前言:
近期因学校实验室项目需求,组建6人小团队研发一个网站,框架采用.NET MVC + EF ,数据库为SQL Server。
简单总结一二。
一、数据库设计方面
网站的根基,数据库。最开始源自于和甲方进行需求沟通,由于甲方节奏较缓慢,在未完全确定需求的情况下,贸然开始数据库设计,采坑如下:
1. 建表时,字段含义不明确。
1.1 字段内容不明确:如字段“省”,填写行政区划代码 or 文本内容 ?
1.2 字段名称存在歧义:如group表中,group_id代表含义为唯一标识符,区别于主键,user_group表中,group_id却代表group表中的主键id。
1.3 需求变动,导致字段冗余。需求未完全确定情况下,导致字段发生变动,引起冗余情况,后期开发时没有删除,产生疑惑。
2. 建表时,建议采用逻辑外键。采用逻辑外键,对表与表之间的约束关系进行描述。
2.1 优点:降低数据库维护成本
消除业务逻辑层中,进行删除操作时,因外键约束引起的异常
2.2 缺点:数据一致性将全转移至业务逻辑层,需要进行精细控制(结合事务)。
二、业务逻辑层
1. 没有独立拆分出Model项目,导致代码冗余程度提升(比较恶心)
2. BLL层,接口定义时,没有统一返回类型(团队之间沟通不到位,制定的研发规范没有落实好)
3. 接口内部实现中,细节、边界情况处理不完善(属于代码基本功)
三、测试
1. .Net MVC 尚未进行压力测试,正在探索中........
2. 单元测试时,测试用例需要完善(微软自带的测试用例框架太重,无力吐槽)
3. 实验室设备有限,系统测试时,可以购买云服务器,用来部署网站,并进行测试
四、部署
1. IIS部署,跟Tomcat部署操作上,差异是真的大。。。。
2. 部署时,注意端口是否开放,在云服务器上部署完毕后(指定端口8080),发现客户端无法访问,查明原因,得知防火墙拦截了8080,没有放开。需要建立入站规则。
四、团队合作
1. 开发前,需要制定详细的编码规范,保证项目代码风格统一(参考阿里出的Java研发参考手册)
2. 开发前,分配任务需要平衡,考虑成员之间研发能力差异的前提下,合理分配任务。
以上,未完待续。。。。。。(明明搞Java,感觉画风不大对劲,算了,也算是一种提升)
总体而言,首次带团队从0~1进行研发,虽然我跟成员都是一帮学生,但感觉挺不错。