您的位置:首页 > 编程语言

修改了别人的代码、优化前与优化后的对比,唉,写个好代码真不容易啊

2012-03-12 17:10 357 查看
最近紧急接手别人做了一半的项目,看了一些代码,惨不忍睹,也号称是上海的IT公司写的代码,还说自己是做了很多年的政府项目,自信得很,态度很高傲、目中无人,我是彻底服了,我已经很嚣张了,居然比我还嚣张很多很多,项目做得一塌糊涂,代码质量还这么差,当然也不是说我的代码写得有多好,只是想说,写代码需要认真再认真,需要仔细做好每件事、日积月累,才能有个良好的技术积累、项目积累,想赚钱也会容易很多。

对方页面、代码、数据、里主要问题有:

1:命名不规范。

2:排版也乱。

3:一个注释也没有。

4:代码复用率低,同样功能的代码有重复出现的。

5:思路有些混乱,代码不严格。

6:程序运行有严重的Bug,默认加载居然后面的市不会出来。

7:数据丢失,省的选项里,居然没有湖北、还有些省份的数据也乱了套。

8:默认加载指定的省、市功能不稳定。

9:其他更多的细节,就不指望了,能正确跑起来就不错了。



当然我没按完美程度要求,只是略微调整了一些,这么简单的东西,都能写成这样,更有点儿难度的页面,能写成什么呢?我都不好意思贴出来其他模块的代码,修改完善别人的代码,真是痛苦啊,只是没办法全部都重新写了,只能错在哪里,修改哪里,维护哪里。

我们是想强调一点儿,若简单的东西都做不好的,整个项目一定会更乱,质量是不敢想象的,我们只有做好每一点每一滴,才有希望把整个项目做得很棒。

你可以说,这个不重要、那个不重要、那什么才重要?只有出了人命才重要吗?

优化前代码:




代码

using System;

using System.Collections;

using System.Collections.Generic;

using System.Configuration;

using System.Data;

using System.Linq;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.HtmlControls;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Xml.Linq;

using ClientObjects;

using ModelObject;

namespace Festind.Control

{

public partial class cityControl : System.Web.UI.UserControl

{

public int _PID

{

set { pid.Value = value.ToString(); }

get

{

try

{

return int.Parse(ddp.SelectedValue);

}

catch { return 0; }

}

}

public int _CID

{

set { cid.Value = value.ToString(); }

get

{

try

{

return int.Parse(ddc.SelectedValue);

}

catch { return 0; }

}

}

protected void Page_Load(object sender, EventArgs e)

{

if (!IsPostBack)

{

List<DictionaryModel> lst = CDictionary.getDictionary(DictionaryModel.DictionaryType.PROVINCE);

ddp.Items.Clear();

for (int i = 0; i < lst.Count; i++)

{

ddp.Items.Add(new ListItem(lst[i].Value, lst[i].ID.ToString()));

}

ddp.SelectedValue = pid.Value;

lst = CDictionary.getDictionary(DictionaryModel.DictionaryType.CITY, int.Parse(pid.Value));

ddc.Items.Clear();

for (int i = 0; i < lst.Count; i++)

{

ddc.Items.Add(new ListItem(lst[i].Value, lst[i].ID.ToString()));

}

ddc.SelectedValue = cid.Value;

}

}

protected void ddp_SelectedIndexChanged(object sender, EventArgs e)

{

int id = int.Parse(ddp.SelectedValue);

List<DictionaryModel> lst = CDictionary.getDictionary(DictionaryModel.DictionaryType.CITY, id);

ddc.Items.Clear();

for (int i = 0; i < lst.Count; i++)

{

ddc.Items.Add(new ListItem(lst[i].Value, lst[i].ID.ToString()));

}

}

public void load()

{

ddp.SelectedValue = pid.Value;

List<DictionaryModel> lst = CDictionary.getDictionary(DictionaryModel.DictionaryType.CITY, int.Parse(pid.Value));

ddc.Items.Clear();

for (int i = 0; i < lst.Count; i++)

{

ddc.Items.Add(new ListItem(lst[i].Value, lst[i].ID.ToString()));

}

ddc.SelectedValue = cid.Value;

}

}

}

优化后代码:




代码

using System;

using System.Collections;

using System.Collections.Generic;

using System.Configuration;

using System.Data;

using System.Linq;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.HtmlControls;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Xml.Linq;

using ClientObjects;

using ModelObject;

namespace Festind.Control

{

public partial class CityControl : System.Web.UI.UserControl

{

/// <summary>

/// 省

/// </summary>

public int ProvinceID

{

set

{

this.provinceID.Value = value.ToString();

}

get

{

try

{

return int.Parse(this.ddlProvince.SelectedValue);

}

catch

{

return 0;

}

}

}

/// <summary>

/// 市

/// </summary>

public int CityID

{

set

{

this.cityID.Value = value.ToString();

}

get

{

try

{

return int.Parse(this.ddlCity.SelectedValue);

}

catch

{

return 0;

}

}

}

protected void Page_Load(object sender, EventArgs e)

{

if (!this.IsPostBack)

{

this.Load(this.provinceID.Value, this.cityID.Value);

}

}

protected void ddlProvince_SelectedIndexChanged(object sender, EventArgs e)

{

this.Load(this.ddlProvince.SelectedValue);

}

public void Load()

{

this.Load(this.provinceID.Value, this.cityID.Value);

}

private void Load(String province)

{

this.ddlCity.Items.Clear();

List<DictionaryModel> lstCity = CDictionary.getDictionary(DictionaryModel.DictionaryType.CITY, int.Parse(province));

for (int i = 0; i < lstCity.Count; i++)

{

this.ddlCity.Items.Add(new ListItem(lstCity[i].Value, lstCity[i].ID.ToString()));

}

}

public void Load(String province, String city)

{

// 加载省

this.ddlProvince.Items.Clear();

List<DictionaryModel> lstProvince = CDictionary.getDictionary(DictionaryModel.DictionaryType.PROVINCE);

for (int i = 0; i < lstProvince.Count; i++)

{

this.ddlProvince.Items.Add(new ListItem(lstProvince[i].Value, lstProvince[i].ID.ToString()));

}

if (!province.Equals("0"))

{

this.ddlProvince.SelectedValue = province;

}

else

{

province = this.ddlProvince.SelectedValue;

}

// 加载市

this.Load(province);

if (!city.Equals("0"))

{

this.ddlCity.SelectedValue = city;

}

}

}

}

将权限管理、工作流管理做到我能力的极致,一个人只能做好那么很少的几件事情。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  职场 优化 项目 休闲