前言
任何一个项目或者系统开发之前都需要定制一个开发约定和规则,这样有利于项目的整体风格统一、代码维护和扩展。由于Web项目开发的分散性、独立性、整合的交互性等,所以定制一套完整的约定和规则显得尤为重要。
本文档将定制一系列约定和规则,他们分别包括组件团队、文件夹命名规则、文件名命名规则、程序代码编程风格、数据库设计约定。这些规则和约定需要与开发人员、设计人员和维护人员共同讨论定制,将来开发都将严格按规则或约定开发。一个优良可行的规范可以使我们工作得心应手事半功倍。
此项目设计书参考博客 http://www.cnblogs.com/lidaofei1991/articles/4672977.html 编写设计。
1.组建开发团队
在接手项目后的第一件事是组建团队。
在团队划分中应该含有6个角色,这6个角色是必须的,分别是项目经理,策划,美工,程序员,代码整合员,测试员。
在本项目中,我一个人分饰6个角色。
2.开发工具
Web开发工具主要分为3部分,第一部分是网站前台开发工具,第二部分是网站后台开发环境,第三部分是项目管理和辅助软件。下面分别简单介绍这三部分需要使用的软件。
网站前台开发工具:由于我精力有限,并且不擅长前端技术,我直接从网上下载了一个模版,地址为:http://www.yangqq.com/download/div/2014-02-19/649.html在此感谢作者杨清。
网站后台开发工具我是用的是myeclipse2016,数据库客户端使用的是SQLyog,浏览器使用的是360极速浏览器。
网站项目管理主要指对开发进度和代码版本的控制。这里我使用的是maven和github。
3.网站开发流程
在项目开始实施之前应该有一个工作步骤也就是工作流程,在项目开发中最需要时间的是总体设计和系统测试,而程序编写代码所占的时间并不多,但有的团队就急于开发写代码,先把程序写出来再说,没有注重评审和测试这2个环节,结果造成返工,得不偿失。所以项目来了不要急于开工写代码,应该一步一步慢慢来,只有走的慢才能走得稳走得远。图1的开发流程比较好地体现开发的整个环节。
web项目开发的流程图
4.数据库开发
数据文件命名采用`系统名`+`_`+`文件类型`,比如系统名为young,则数据库文件命名为young_database.mdf,文件名全部采用小写。
数据库表命名规范,表名长度不能超过30个字符,表名中含有单词全部采用单数形式,单词首写字母要大写,多个单词间不用任何连接符号。若库中有多个系统,表名采用`系统名称`+`_`+`单词或多个单词`,系统名是开发系统的缩写,如Ac_User,Art_Article。关连表命名规则为`Re_`+`表A_`+`表B`,Re是Relative的缩写,如: Re_User_Article, Re_User_Form。
数据库字段命名规范,数据库字段名全部采用小写英文单词,单词之间用”_”隔开,如:username,password,registerdate,user_id。
视图名采用规则View_表A_表B_表C,View表示视图。这个视图由几个表产生就用”_”连接几个表的名,如果表过多可以将表名适当简化,但一定要列出所有表名。
/*存储过程命名规则P_表名_存取过程名(缩写),比如P_User_Del,P_ArticleType_AddData*/(此项目暂时没有使用存储过程,而且阿里巴巴也不推荐使用)。
SQL语句编写规则,关键字必须大写,其他书写按上述命名规则,比如:SELECT id, username FROM Ac_User WHERE username = ‘tom’
5.文件夹文件名命名规范
文件夹命名一般采用英文,长度一般不超过20个字符,命名采用小写字母。除特殊情况才使用中文拼音,一些常见的文件夹命名如:images(存放图形文件),flash(存放Flash文件),css(存放CSS文件),js(存放Javascript脚本),inc(存放include 文件),link(存放友情链接),media(存放多媒体文件)等。
文件名称统一用小写的英文字母、数字和下划线的组合。命名原则的指导思想一是使得你自己和工作组的每一个成员能够方便的理解每一个文件的意义,二是当我们在文件夹中使用“按名称排例”的命令时,同一种大类的文件能够排列在一起,以便我们查找、修改、替换、计算负载量等等操作 。
图片的命名原则名称分为头尾两部分,用下划线隔开,头部分表示此图片的大类性质例如广告、标志、菜单、按钮等等。
放置在页面顶部的广告、装饰图案等长方形的图片取名: banner
标志性的图片取名为: logo
在页面上位置不固定并且带有链接的小图片我们取名为 button
在页面上某一个位置连续出现,性质相同的链接栏目的图片我们取名: menu
装饰用的照片我们取名: pic
不带链接表示标题的图片我们取名: title
下面是几个范例: banner_sohu.gif 、banner_sina.gif、 menu_aboutus.gif 、 menu_job.gif、 title_news.gif、 logo_police.gif、 logo_national.gif 、 pic_people.jpg 。
6.程序代码编程规范
一个良好的程序编码风格有利于系统的维护,代码也易于阅读查错。
程序代码需要有缩进,缩进采用键盘Tab键,不采用空格键。并且”=”或者链接字符串时需要左右空一格:
java变量名、方法名统一采用驼峰命名法,首字母小写,类名首字母大写,js的函数名、 变量名,控件的id、name、class样式名,统一为小写。
当一个对象不在使用时要释放对象资源,比如inputStream对象等。
时间全部以字符串的形式保存到数据库中,这样做能够是日期在不同的数据库中都能良好地保存,也方便数据库地迁移。时间格式为HH:mm:ss,日期格式为YYYY-MM-DD,时间和日期中间用空格隔开。
有了项目设计规范,我们再来看看我们的项目需求。
要考虑需求,我们首先需要考虑我们的博客面向的对象有哪些:我们的博客主要面向3种人 系统管理员、博主 和 游客。
(其中系统管理员我们可以开发单独的后台管理系统去管理)
游客的功能最少:(还包括注册和登录功能,图中未显示)
博主的功能
管理员的特殊功能暂不考虑,此时处视为和博主具有相同功能。
根据使用者的业务需求我们将我们的博客分为几个模块
核心功能:
1.账户管理模块(Account)—–> 负责用户的注册和登录
2.博客管理模块(Blog) —–> 负责管理博客的个人信息如博客名称、个人介绍等
3.文章管理模块(Article) —–> 负责博主的文章的crud操作
4.评论管理模块(Comment)—-> 负责评论的crud操作
扩展功能:(暂未实现,以后版本会考虑添加)
5.相册功能(Photo)
6.好友功能
7.分享功能
8.快速登录
9.好友动态
10.博文搜索
我们看完了需求分析,我们来分析分析网站架构,本来我准备采用springboot来编写博客,奈何我对这个框架还不太熟悉,博主正在努力的学习,这个项目暂时先使用SSH框架,比较稳妥,将来再向springboot移植。
数据库我们使用mysql数据库。
我们根据核心功能暂时把博客系统分为4个模块,并将系统分模块开发。以增强系统的健壮性和可扩展性。
每个模块我们又根据MVC模式将其分为表示层、控制层、业务逻辑层、DAO层、数据库5层。
根据该流程图,我设计出如下框架,我们可以根据此框架设计出具体的业务流程。