软件的优化是软件开发过程中必不可少的过程,只有做到了优良的优化才能使软件真正可以上线使用,令软件具有友好的用户界面,健壮性等等...所以对于一个信息管理软件来讲,实现了基本功能只是完成了第一步,优化是必不可少的。
我从用户使用的便捷性与健壮性两个方面对学生信息管理系统进行了优化
便捷性:
1.选择日期界面使用MonthView控件,既节约了用户的时间,又防止了用户对于日期输入错误。
Private Sub MonthView1_DateClick(ByVal DateClicked As Date)
txtBorndate.Text = MonthView1.Year & "-" & MonthView1.Month & "-" & MonthView1.Day
MonthView1.Visible = False
End Sub
2.ComBox控件的数据直接动数据库中读取,减少了用户的工作量,避免了输入产生错误
'添加班号到combox
txtSQL = "select * from class_Info"
Set mrc = ExecuteSQL(txtSQL, MsgText)
While (mrc.EOF = False)
comboClassno.AddItem mrc!class_No
mrc.MoveNext
Wend
3.添加一些限制比如:登录界面禁用特殊符号防止SQl注入,需要内容输入的窗体对字符内容进行限制(手机号码位数、不允许空格、判断有些内容是否为纯数字等等...)
##禁止特殊符号
Private Sub txtUserName_KeyPress(KeyAscii As Integer)
If KeyAscii > 31 And KeyAscii < 48 Or KeyAscii > 57 And KeyAscii < 65 Or KeyAscii > 90 And KeyAscii < 97 Or KeyAscii > 122 And KeyAscii < 127 Then
MsgBox "不能输入特殊字符!", vbOKOnly + vbExclamation, "警告"
KeyAscii = 0
End If
End Sub
##限制为纯数字
If Not IsNumeric(Trim(txtSID.Text)) Then
MsgBox "请输入数字!", vbOKOnly + vbExclamation, "警告"
Exit Sub
End If
健壮性(稳定性):
1.从数据安全的角度,在用户密码修改界面添加修改密码后需要重新登录。
txtSQL = "select*from user_info where user_ID='" & UserName & "'"
Set mrc = ExecuteSQL(txtSQL, MsgText)
mrc.Fields(1) = Text1(0).Text
mrc.Update
mrc.Close
MsgBox "密码修改成功!请重新登录", vbOKOnly + vbExclamation, "修改密码"
Unload Me
Unload fMainForm
'重新打开登陆窗体和Main窗体
Dim fLogin As New frmLogin
fLogin.Show vbModal
Unload fLogin
fMainForm.Show
2.数据库中没有数据,程序在读取数据库数据时报的错误(3021),我总结了一下两种办法,
##判断记录集中记录数
If mrc.RecordCount = 0 Then
MsgBox "已经没有记录了!", vbOKOnly + vbExclamation, "提示"
Exit Sub
End If
##利用EOF的状态
If mrc.EOF = True Then
MsgBox "已经没有记录了!"
Exit Sub
End If
宗旨均是在写入数之前判断记录是否存在。
3.实时错误 91,导致这个问题的可能性比较多比如:SQL语句是否拼写正确,ODBC数据源是否正常,数据库是否正常等等...
推荐大家使用单步调试,添加监视这样可以看出哪些内容的赋值发生了问题。
4.还有一个vb运行阶段出现“Automation错误 定义的应用程序或对象错误”。这就是vb自身和系统的兼容问题了,在启动vb前,将vb.exe右键属性,在兼容性栏,勾选以兼容模式运行(xp3),以管理员方式运行即可解决。
以上是一些具体的错误以及优化改进的方案,还有其他没有进行的优化方案。
后台代码方面:
1.数据库的约束(范式)能否更优
2.在VB中提高代码实现的效率,将重复的代码剥离出来写成方法,提高代码复用率。
用户界面
1.减少用户手动输入的数据减少出错的概率(从其他途径自动获取)
2.选择界面做的更简洁易懂
总结:
优化改进伴随了整个软件的生命周期,我们在进行的时候一定要奉行“宁让程序多做,也要让用户少做”的原则,在优化的过程中把自己当一个什么都不知道的用户,从用户的角度去思考使用,往往可以得到意想不到的收获。当然也可以借助一些已经做得比较成熟的软件,比如获取用户信息可以参考支付宝的拍身份证扫描信息输入,手机号的输入参考平时手机缴费平台的特点等等...做到站在巨人的肩膀上,再跳一跳。
最后附上一个很久之前看到的段子:程序员们开发了一个酒吧的自动售酒的交互系统,测试了很多指令:来一打啤酒,来一杯威士忌,来一杯冰,来一杯硫酸,来杯汽油等等。。。。发现都没有问题,就信心满满的上线了。
客户A,“来一打啤酒” 正确完成
客户B ,“来一杯冰” 完美应对
客户C ,“厕所在哪?” 系统崩溃!!!
其实对于用户来讲问个厕所很正常,所以我们开发一定要在客户的角度去考虑。