从一个简单的逻辑看严谨的www.one88bet.com


 

                  我想作为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语句也很烂,降低了代码的可读性。同时,通过这个问题反应出了一个在程序设计中一个很重要的思想,那就是要做到“严谨”!我不可能说如果做到“严谨的设计”会把所有的错误避免掉,但是,起码会减少一些低级的错误。有的时候,这些低级的错误甚至是致命的!试想如果开发的是一个医疗系统、金融系统。

                       自己当时想的是,快点把它做完了,功能完成了,就好了,这样用得时间就少了。可是回过头来想一想,真得是节省了时间了吗?出了错误,客户就会报怨,自己又想去找错误,找到错误又要调试、改正,审核数据,我想如果用这些时间用在设计上,应该是绰绰有余的。
                 

                 在此提醒自己和有这方面问题的博友,要用心去做软件!


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
© 2014-2019 ITdaan.com 粤ICP备14056181号