最近看牛腩老师的新闻发布系统,听他一步一步边做边讲。
实现一项工程,尤其是前期准备/设计到代码,所谓建模。
(注意:以下例子均以新闻发布系统为例)
-
一、前期准备,从硬件设备到软件安装。硬件不多说,软件的安装就要尽量周到齐全、专业。
例如,一个web系统的开发:
必备软件(开发工具):
Visual Web Developer,SQL Server,SQL Server Management
其他软件(辅助工具):
Dreamweaver,Flash,Photoshop
浏览器(测试效果):
Firefox,Opera,Chrome,IE6/7/8,IETester,
UML画图工具:
JUDE/Rose/EA
-
二、建模阶段:
首先要给这项工程分配一个WorkSpace工作空间,以存放有关此工程的所有文件。
其次,开始设计或阅读我们的文档(需求分析、概要设计、详细设计)
主要概括为以下几点:
(1)系统介绍,即主要功能概括。
(能够实现后台人员添加新闻,浏览者能够在前台浏览新闻并发表评论。)
(2)功能,功能详述。
角色 对象 操作
前台:浏览者(浏览新闻,发表评论,搜索新闻)
后台管理员:新闻类别(增加,删除,修改);新闻管理(增加,修改,删除);评论管理(删除,添加在前台,不能修改,只能删除))
(3)数据库设计,根据功能来抽象实体类
新闻发布系统,需要管理类别,管理新闻,管理评论,抽象出基本实体类及他们的属性及属性数据类型。
类别表category(一级分类):id:int(自增长类型);name:string;
新闻表news:id:int;title:string;content:string;createTime:Date;caId:int(一对多)
评论表comment:id:int;cotent:string;createTime:date;newsId:int(一对多的关系);userIp:string
(4)生成数据库文档:
名称 类型 说明
(5)界面模拟图设计
i 首先是页面框架,也就是母版页。比如顶部应该有一个logo和banner了,可以安置一个搜索栏啦,中间是内容区域,尾部有一个版权声明啦之类。
ii 然后设计网站主体内容,首页,新闻列表页和新闻内容页。
首页,首页套用母版页,内容可仿照其他网站首页模式,放置一些网站重要功能的内容。如新闻发布系统,主要功能是让人们浏览新闻,首页就要放置一些和帮助人们浏览新闻有关的内容,如新闻分类、最新新闻、热点新闻之类。
由首页新闻分类可进入新闻列表页,以便查看某一类别新闻,并方便切换到其它分类的新闻列表。
单击某一新闻的新闻标题,进入内容项,这里是新闻的主要内容,同时也要方便导航到其他新闻页,比如母版页中的logo或banner导航到首页,新闻分类导航到其他分类页。新闻下部是其他浏览者都该新闻的评论,并可添加评论。
iii 再然后是一些功能页,包括辅助功能(搜索结果页)和后台管理(登陆页,后台管理页),还有就是错误页。
(6)数据表操作类设计,针对各个表,有哪些操作
例如:
对类别表操作类:
取出当前所有新闻分类
增加类别
修改类别
删除类别(连同其下的新闻及新闻评论一起删除)
判断类别名称是否已存在
对新闻表操作类:
取出最新10条新闻(所属分类,新闻标题,发布时间)
取出10条热点新闻(所属分类,新闻标题,发布时间)
根据类别ID取出该类别下的所有新闻(所属分类,新闻标题,发布时间)
根据新闻ID取出该条新闻主体内容(所有,分类,标题,内容,发布时间)
根据标题搜索新闻
根据内容搜索新闻(全文索引更好些,这里用单纯的sql语句)
增加新闻
修改新闻
删除新闻(连同其下新闻评论一起删除)
对评论表操作类:
根据新闻ID取出该新闻的所有评论(评论ID,评论内容,时间,IP)
添加评论
(注册用户能够修改他发表的评论)
删除(违禁)评论
(7)代码规范
数据库命名,类命名及属性/方法名命名,变量命名等。
(8)代码
--
写的比较零散,由前期准备(硬软件),然后初步文档(展现功能),UML图建立架构辅助文档,数据库设计,界面设计(可放置后面),类设计(针对功能)。