我想作为www.one88bet.com人员,我们都知道www.one88bet.com的成本和软件维护的成本,哪个大。一个软件的维护成本可能比设计的成本要多出好倍,但是,我想说,如果有一个好的www.one88bet.com,那么会大大降低软件的维护工作量的,这一点,是我深刻体会到的。
下面我们来举一个例子,这是我在一个实际的项目中所犯的错误
界面的主要内容如下:
两个下拉框的属性设置如下图所示:
我原来的代码是这样的:
if (ddlAdult.Text != "不携带")
{
orderInfo.FamilyMember = "是";
orderInfo.AdultCount = int.Parse(ddlAdult.SelectedValue);
}
else
{
orderInfo.AdultCount = 0;
}
if (ddlChild.Text != "不携带")
{
orderInfo.FamilyMember = "是";
orderInfo.ChildCount = int.Parse(ddlChild.SelectedValue);
}
else
{
orderInfo.ChildCount = 0;
}
所犯的错误:
自己想当然地把下拉框的Text属性认为是listItem(当前选择项)的Text,其实它所指的是selectedItem的value属性。所以说它永远也不可能等于“不携带”,那么orderInfo的FamilyMember也就永远为“是”,所以,造成的后果是,即使用户选择的都是“不携带”,那么是否携带家属也会显示为“是”。但是对于携带家属的情况没有影响。错误现象如下图所示:
下面是修改后的代码:
if (ddlAdult.SelectedItem.Text == "不携带")
{
orderInfo.AdultCount = 0;
}
else
{
orderInfo.FamilyMember = "是";
orderInfo.AdultCount = int.Parse(ddlAdult.SelectedValue);
}
if (ddlChild.SelectedItem.Text == "不携带")
{
orderInfo.ChildCount = 0;
}
else
{
orderInfo.FamilyMember = "是";
orderInfo.ChildCount = int.Parse(ddlChild.SelectedValue);
}
总结:
当时这个需求是后来客户才提出的,所以在做的时候,有些仓促,可以看出,写的if语句也很烂,降低了代码的可读性。同时,通过这个问题反应出了一个在程序设计中一个很重要的思想,那就是要做到“严谨”!我不可能说如果做到“严谨的设计”会把所有的错误避免掉,但是,起码会减少一些低级的错误。有的时候,这些低级的错误甚至是致命的!试想如果开发的是一个医疗系统、金融系统。
自己当时想的是,快点把它做完了,功能完成了,就好了,这样用得时间就少了。可是回过头来想一想,真得是节省了时间了吗?出了错误,客户就会报怨,自己又想去找错误,找到错误又要调试、改正,审核数据,我想如果用这些时间用在设计上,应该是绰绰有余的。
在此提醒自己和有这方面问题的博友,要用心去做软件!
本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。