Stella 知识库--解析论坛的架构(1)
-- 系列文章与Stella Forum v2.0搭配使用效果更好 --
下面开始,我们一起来做一个论坛吧。
其实很简单嘛,先分好论坛的页面(注册,发帖,帖子浏览等等),然后就开始写代码。比如我们做这个注册的页面:
1.在dreamweaver中画好页面
2.复制主要代码到visual studio .net 2003中,拖两个textbox,一个button到页面上。
3.双击button控件,开始写button1_onclick方法。
4.在方法中要写得东西:用户输入验证、检查输入的用户名和email是否已经存在、用户密码加密、存入到数据库...好多啊,写完后,看着长长的代码,我自己都晕了,幸好我这个人意志比较坚定,哈。
好,写完一个页面了,感觉不错,其他的页面如法炮制。漫长的写代码的旅程........
几 天之后,被一个个几百行代码的视图折磨的快吐血的我终于写完了一些主要的页面。来运行一下吧,我小心翼翼地打上网址http: //localhost/stella2/default.aspx,default.aspx主要是显示所有的板块和一些统计信息,漫长的等待后……出 错了!!真晕啊,幸好有出错提示,我打开vs的相应页面代码看看...又是漫长的等待,我的机器是p42.0+256m的,又在vs上装了一个 Broland together 2.0,我还顺便开了QQ和winamp,因此现在要打开这个几百行代码的文件真是有些困难,好在终于打开了,设断点,调式,又是等待....哦,原来是 数据操作那里把一个表名写错了,赶紧改过来,再运行,还是出错...55555,要在那么多代码中设置合适的断点可不容易啊,再调试,等待....等 待....等待....好像vs死掉了哎...于是我做了一个决定,把所有的和数据访问相关的代码写到另一个项目中, 然后在web项目中引用这个项目,以达到简化代码和方便调试和修改的作用。经过几天的奋斗,终于整理好了这个东西。现在那些页面的代码看上去清楚多了, (虽然还是很多,因为一些数据处理和验证都放在那里),再运行...又出错了,不过这次提示一看就知道是数据操作那里出问题,好办,打开数据操作的项目中 的相关文件,修改之,而web项目那里完全不需要改动,真是舒服啊...
可是舒服的日子过了没几天,问题又来了,网上有朋友说,小n,你那个论坛的用户密码修改和取回应该这么这么做,我一听,果然有道理,于是就找到相应的页 面,找到相关的代码,修改之,然后又有朋友说,小n,你的论坛的错误信息显示应该那么那么做,我一听,果然有道理(...),于是就找到相关的页 面....这次是错误信息显示啊,这页面可多了去了,于是又开始了漫长的修改、出错、调试、又出错....好容易改完了,网上传来了消息..著名的某某某 密码术被破解,现在连初上网的小朋友都可以解开加密的代码...会不会这么巧?我就是用的那个加密算法啊,于是又....
经过这么几次折腾,我一见QQ上有头像在动,就感到晕:不会又有新主意和新消息了吧?好的建议不能不接受,可是从页面代码中找逻辑处理的代码并修改的痛苦我实在是受不了了....
于是我又做了个决定:把数据处理和业务逻辑处理相关的代码写到一个单独的项目中,这样,web项目那里只是负责显示和获取数据,新建的这个项目负责处理数据,最后由这个项目把合适的数据送到数据操作项目或者web项目。把这个分离页面显示和数据处理的工作完成后,页面的代码看起来更清楚了,而且数据处理的方法如果有变,也不需要再动web页面了。
这次改动完成后,我没有立刻写代码,而是整理了一下整个论坛的结构
1.发现有很多代码都是重复使用的,比如加密操作,比如错误日志记录工作...于是我又做了一个决定,把这些重复性的东西放到一个单独的项目中去,以后修改就只动这个项目,避免大动干戈的到处乱翻...
2.发现很多地方对论坛设定的使用都是直接使用了数字,比如说一个页面显示15个主题,论坛发帖的间隔时间是30秒,等等,这样以后要是想修改的话就很麻烦了,于是我又做了一个决定,把这些设定都用单独的类乘放,为了清晰结构,把这些负责设定的类放到一个单独的项目中,以后修改就只动这个项目,避免大动干戈的到处乱翻...
3.用户输入检查也需要整理,因为今天你想让用户名不能包含中文字符,但是说不定后天就想使用中文字符...为了避免像一开始那样从代码堆中找逻辑的痛苦,我又做了一个决定(好多决定了...),把用户输入检查单独放到一个项目中,以后修改就只动这个项目,避免大动干戈的到处乱翻...
今天先写这么多,大家看得时候可以对照着论坛架构图。剩下的部分包括webcomponents、interface、factory、services,这些东西放到下一篇文章中介绍。