做一个小项目经验分享,谈如何将一个小项目做成一个成功项目(二)
一个项目经过了需求分析,界面设计,和不断的会议讨论确定后马上就要进入激动人心的数据库设计,和架构设计阶段.
在我看来数据库设计对应用的全面性理解要求比较高,方方面面都要考虑到,但实际开发中可能会有没设计到的地方,不用怕
我们只要掌握好一个基本思想.设计也是一个迭代的过程,所谓迭代是指数据库设计并非完成后就永不改变,随着开发不断
进行数据库也会做局部增量设计,但是要明确几点:
1.必需先了解用户最终要实现的大方向,比如使用软件的年限是3年,哪么软件开发周期可能会是10个月,哪么这10个月里数据库所能达到的最优
结构,而不会让代码人员烦躁.让他们一看就会明白对象所代表的含义和之间的关系;
2.必需要能实现当前阶段的需求,当前需求其实是用户最关心的问题,如果当前需求都难以达到,哪就不用谈其它更高程度.所以当前需求是优先级别最高的;
3.在目前的需求上要有可扩展的空间,有些同学很不明白怎么才能有扩展空间.其实很简单,所谓扩展空间就是你能想到并做到的更高程度的空间.
不过这个需要一定的设计经验,如果你设计过较多的数据库架构,哪么就会明白如果做到更高程度需要更加周全;
4.在了解了用户后同时也要考虑自已的后期开发问题了,如在编码人员开发过程中是否更容易让他们理解设计思想.让开发人员更容易使用所设计的数据库.
尽可能少的减少后期开发人员的学习成本
数据库设计的同时我们也可以思考软件的架构了两者可以同时进行,但大部分小企业加构师和数据库设为同一人担任.这样会产生一些问题.比如架构和数据据库结合太
紧密,对数据库设计中的缺陷没有一个作检验的人.因为自己永远都不容易发现自己的错误,有一个镜子就更能相互提升.
接下来架构设计,
其实我个人认为架构设计还是一个比较全面的说法.分的细致了可分很多种
但在我们这个项目中架构就是指
软件架构和硬件架构
软件架构是模块之间的关系.模块与模块之间的必要规则.
硬件架色是软件所分布的物理位置,合理分布物理位置
紧接着我不得不说一下硬件架构的细节。
1)硬件架构的设计必需充分考虑实现情况。当前系统的版本软件环境
2)硬件架构的设计必需可以在本地虚拟出真实环境.(非常重要)
3)并制定出开发环境下所有使用的软件版本.(非常重要)
一次深刻的体会,当时开发环境下为windows 2003,SQL Server 2008,VS2005 转到服务器上为windows 2008 64位和SQL Server2000.当时部署后出现很多错误.64位的ODBC驱动无法找到.无法使用ADO读取Excel。
当数据向SQL 迁移时。SQL2008的类型在2000里不存在.虽然通过各种手法修正了这些问题。但代价却是非常的高.