【浙大网新图灵通讯】无废话简单高效C#编码规范20100611
2010-10-24 23:59
483 查看
无废话简单高效C#编码规范20100611
自己看自己的代码啥问题也没有,但是一个团队、N多个人、N多年的代码,就比较难维护、难阅读了,什么样的不好的习惯、错误漏洞能出来的就全出来了。
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using FDA.Model;
using FDA.IDAL;
namespace FDA.BLL
{
正确代码参考
/**************************************************************
* Copyright (C) 2010 iTouch, Inc (http://www.itouch.com.cn)
* All Rights Reserved
* Created by JiRiGaLa <QQ:252056973>
* 版权所有:浙大网新易盛网络通讯有限公司
* 作 者:吉日嘎拉(JiRiGaLa_Bao@hotmail.com)
* 创建时间:2010-06-11
* 修 改 人:
* 修改内容:
* 修改时间:
**************************************************************/
using System.Collections.Generic;
using System.Data;
using FDA.IDAL;
using FDA.Model;
namespace FDA.BLL
{
private static readonly IAlarmQuery dal = FDA.DALFactory.DataAccess.CreateAlarmQuery ();
public DataTable GetAlarmHandtailorList(ref AlarmInfo info)
{
return dal.GetAlarmHandtailorList(ref info);
}
public DataTable GetAlarmHndtailorListNames(string creater)
{
return dal.GetAlarmHndtailorListNames(creater);
}
正确代码参考
private static readonly IAlarmQuery dal = FDA.DALFactory.DataAccess.CreateAlarmQuery ();
public DataTable GetAlarmHandtailorList(ref AlarmInfo alarmInfo)
{
return dal.GetAlarmHandtailorList(ref alarmInfo);
}
public DataTable GetAlarmHndtailorListNames(string creater)
{
return dal.GetAlarmHndtailorListNames(creater);
}
※ 错误参考
protected static readonly IApplianceQuery aq = DALFactory.DataAccess.CreateApplianceQuery();
/// <summary>
/// 获取器械实时库存信息(Search),按器械信息分类。
/// </summary>
/// <param name="asp">分页实体</param>
/// <param name="RecordCount">总记录数</param>
/// <returns></returns>
public DataSet GetAppPeriodStockSearch(ApplianceStockPager asp, ref int RecordCount)
{
return aq.GetAppPeriodStockSearch(asp, ref RecordCount);
}
/// <summary>
/// 获取器械实时库存明细信息的SQL语句
/// </summary>
/// <param name="Qx_id">数据编号</param>
/// <returns></returns>
public ApplianceStockInfo GetAppPeriodStockDetail(string Qx_id)
{
return aq.GetAppPeriodStockDetail(Qx_id);
}
正确代码参考
protected static readonly IApplianceQuery dal = DALFactory.DataAccess.CreateApplianceQuery();
/// <summary>
/// 获取器械历史库存信息(Search),按器械信息分类。
/// </summary>
/// <param name="applianceStockPager">分页实体</param>
/// <param name="recordCount">总记录数</param>
/// <returns>数据集</returns>
public DataSet GetApplianceStockSearch(ApplianceStockPager applianceStockPager, ref int recordCount)
{
return dal.GetApplianceStockSearch(applianceStockPager, ref recordCount);
}
/// <summary>
/// 获取器械历史库存明细信息的SQL语句
/// </summary>
/// <param name="qxId">数据编号</param>
/// <returns>分页实体</returns>
public ApplianceStockInfo GetApplianceStockDetail(string qxId)
{
return dal.GetApplianceStockDetail(qxId);
}
※ 错误参考
/// <summary>
/// 获得数据列表,如根据仓库获取探头列表
/// </summary>
public DataSet GetDllList(string strColum, string strWhere)
{
return dal.GetDllList(strColum, strWhere);
}
正确代码参考
public DataSet GetDllList(string colum, string where)
{
return dal.GetDllList(colum, where);
}
※ 错误参考
SystemManage.cs 文件,代码 1206 行
※ 错误参考
namespace FDA.BLL
{
public class Remoting
{
将权限管理、工作流管理做到我能力的极致,一个人只能做好那么很少的几件事情。
posted on 2010-06-11 11:53 吉日嘎拉 不仅权通用权限 阅读(618) 评论(11) 编辑 收藏
#1楼 回复 引用 查看 规范还有人去遵守 监督
国内有QA的公司不多
小公司不规范的比比皆是
2010-06-11 12:14 | debugger
* 作 者:吉日嘎拉(JiRiGaLa_Bao@hotmail.com)
* 创建时间:2010-06-11"
有点做广告的嫌疑,嘿嘿~
2010-06-11 12:38 | 风雨者2
2010-06-11 13:16 | 活雷锋
大哥,那我怎么写?才可以呢?
2010-06-11 13:46 | 吉日嘎拉 不仅权限管理
2010-06-11 14:32 | 王一一
我专门写过整理命名空间的文章,你自己找一下吧,也很简单的。
2010-06-11 14:37 | 吉日嘎拉 不仅权限管理
2010-06-11 14:50 | Kevan
好的
2010-06-11 17:04 | 王一一
2010-06-11 17:07 | 浪花一朵朵
谢谢你的认可
2010-06-11 17:51 | 吉日嘎拉 不仅权限管理
自己看自己的代码啥问题也没有,但是一个团队、N多个人、N多年的代码,就比较难维护、难阅读了,什么样的不好的习惯、错误漏洞能出来的就全出来了。
第1章 头部文件源码参考
※ 错误参考using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using FDA.Model;
using FDA.IDAL;
namespace FDA.BLL
{
1.1 规范定义
缺少公司的版权信息定义。1.2规范定义
using 没有用开发环境里中提供的工具进行整理、排序,引用了多余的 System.Text命名空间。1.3规范定义
该有的空行没空起来,using 与 namespace 之间需要有空行。正确代码参考
/**************************************************************
* Copyright (C) 2010 iTouch, Inc (http://www.itouch.com.cn)
* All Rights Reserved
* Created by JiRiGaLa <QQ:252056973>
* 版权所有:浙大网新易盛网络通讯有限公司
* 作 者:吉日嘎拉(JiRiGaLa_Bao@hotmail.com)
* 创建时间:2010-06-11
* 修 改 人:
* 修改内容:
* 修改时间:
**************************************************************/
using System.Collections.Generic;
using System.Data;
using FDA.IDAL;
using FDA.Model;
namespace FDA.BLL
{
第2章 函数参数定义部分
※ 错误参考private static readonly IAlarmQuery dal = FDA.DALFactory.DataAccess.CreateAlarmQuery ();
public DataTable GetAlarmHandtailorList(ref AlarmInfo info)
{
return dal.GetAlarmHandtailorList(ref info);
}
public DataTable GetAlarmHndtailorListNames(string creater)
{
return dal.GetAlarmHndtailorListNames(creater);
}
2.1规范定义
变量与函数之间需要有空行,该有的空行需要有。2.2规范定义
函数中的参数名不规范,建议 ref AlarmInfo info 修改为 ref AlarmInfo alarmInfo,首字母小写。2.3规范定义
函数与函数之间,应该有空格隔开,不要都拥挤在一起。2.4规范定义
由于此函数部分都是为了实现接口写的,函数的具体功能、参数说明等应该在接口里写就可以了,此处可以不写函数说明、参数说明。正确代码参考
private static readonly IAlarmQuery dal = FDA.DALFactory.DataAccess.CreateAlarmQuery ();
public DataTable GetAlarmHandtailorList(ref AlarmInfo alarmInfo)
{
return dal.GetAlarmHandtailorList(ref alarmInfo);
}
public DataTable GetAlarmHndtailorListNames(string creater)
{
return dal.GetAlarmHndtailorListNames(creater);
}
※ 错误参考
protected static readonly IApplianceQuery aq = DALFactory.DataAccess.CreateApplianceQuery();
/// <summary>
/// 获取器械实时库存信息(Search),按器械信息分类。
/// </summary>
/// <param name="asp">分页实体</param>
/// <param name="RecordCount">总记录数</param>
/// <returns></returns>
public DataSet GetAppPeriodStockSearch(ApplianceStockPager asp, ref int RecordCount)
{
return aq.GetAppPeriodStockSearch(asp, ref RecordCount);
}
/// <summary>
/// 获取器械实时库存明细信息的SQL语句
/// </summary>
/// <param name="Qx_id">数据编号</param>
/// <returns></returns>
public ApplianceStockInfo GetAppPeriodStockDetail(string Qx_id)
{
return aq.GetAppPeriodStockDetail(Qx_id);
}
2.5规范定义
代码中的 aq,与上面代码中的 dal 习惯冲突,建议统一用 dal或者小写字母原则 aq 写为 ApplianceQuery。2.6规范定义
RecordCount 局部变量不能大写开头,建议用 recordCount。2.7规范定义
Qx_id不建议这么写,局部变量不能大写开头,建议写为qxId,也不建议用_ , ID建议写为Id。2.8规范定义
由于此函数部分都是为了实现接口写的,函数的具体功能、参数说明等应该在接口里写就可以了,此处可以不写函数说明、参数说明。正确代码参考
protected static readonly IApplianceQuery dal = DALFactory.DataAccess.CreateApplianceQuery();
/// <summary>
/// 获取器械历史库存信息(Search),按器械信息分类。
/// </summary>
/// <param name="applianceStockPager">分页实体</param>
/// <param name="recordCount">总记录数</param>
/// <returns>数据集</returns>
public DataSet GetApplianceStockSearch(ApplianceStockPager applianceStockPager, ref int recordCount)
{
return dal.GetApplianceStockSearch(applianceStockPager, ref recordCount);
}
/// <summary>
/// 获取器械历史库存明细信息的SQL语句
/// </summary>
/// <param name="qxId">数据编号</param>
/// <returns>分页实体</returns>
public ApplianceStockInfo GetApplianceStockDetail(string qxId)
{
return dal.GetApplianceStockDetail(qxId);
}
※ 错误参考
/// <summary>
/// 获得数据列表,如根据仓库获取探头列表
/// </summary>
public DataSet GetDllList(string strColum, string strWhere)
{
return dal.GetDllList(strColum, strWhere);
}
2.9规范定义
在函数参数中变量中不要加str等前缀 strColum、strWhere应该写为colum、sqlWhere。正确代码参考
public DataSet GetDllList(string colum, string where)
{
return dal.GetDllList(colum, where);
}
※ 错误参考
SystemManage.cs 文件,代码 1206 行
2.10规范定义
光功能定义就这么多,那实现部分更不是海一样的代码了?需要分割、职责分明、把一个大的功能模块划分为多个功能部分。※ 错误参考
namespace FDA.BLL
{
public class Remoting
{
2.11规范定义
Remoting 是关键字,不建议用关键字做类名、函数名、参数名等。将权限管理、工作流管理做到我能力的极致,一个人只能做好那么很少的几件事情。
posted on 2010-06-11 11:53 吉日嘎拉 不仅权通用权限 阅读(618) 评论(11) 编辑 收藏
评论
1846385#1楼 回复 引用 查看 规范还有人去遵守 监督
国内有QA的公司不多
小公司不规范的比比皆是
2010-06-11 12:14 | debugger
#2楼 回复 引用 查看
"* 版权所有:浙大网新易盛网络通讯有限公司* 作 者:吉日嘎拉(JiRiGaLa_Bao@hotmail.com)
* 创建时间:2010-06-11"
有点做广告的嫌疑,嘿嘿~
2010-06-11 12:38 | 风雨者2
#3楼 回复 引用 查看
你的标题是:无废话简单高效C#编码规范2010-06-11 13:16 | 活雷锋
#4楼[楼主] 回复 引用 查看
@风雨者2大哥,那我怎么写?才可以呢?
2010-06-11 13:46 | 吉日嘎拉 不仅权限管理
#5楼 回复 引用 查看
吉日哥,怎么把多余的using干掉啊?2010-06-11 14:32 | 王一一
#6楼[楼主] 回复 引用 查看
@王一一我专门写过整理命名空间的文章,你自己找一下吧,也很简单的。
2010-06-11 14:37 | 吉日嘎拉 不仅权限管理
#7楼 回复 引用 查看
好东西。2010-06-11 14:50 | Kevan
#8楼 回复 引用 查看
@吉日嘎拉 不仅权限管理好的
2010-06-11 17:04 | 王一一
#9楼 回复 引用 查看
编程很严谨,值得学习一下。2010-06-11 17:07 | 浪花一朵朵
#10楼[楼主] 回复 引用 查看
@浪花一朵朵谢谢你的认可
2010-06-11 17:51 | 吉日嘎拉 不仅权限管理
#11楼 回复 引用
一直都有兴趣看你写的blog的 现在这个 有点吹毛求疵的感觉,和强把自己的想法加给别人的感觉,对比上面的好多点 .net framework都没有,软件是软的:微软只有一个,联想买下ibm ,也还是联想。相关文章推荐
- 【浙大网新图灵通讯】无废话简单高效C#编码规范20100611
- 【浙大网新图灵通讯】无废话简单高效C#编码规范20100611
- 【浙大网新图灵通讯】无废话简单高效C#编码规范20100611
- 【浙大网新图灵通讯】无废话简单高效C#编码规范20100611
- 【浙大网新图灵通讯】无废话简单高效C#编码规范20100621
- 【浙大网新图灵通讯】无废话简单高效C#编码规范20100612
- 【浙大网新图灵通讯】无废话简单高效C#编码规范20100621
- 【浙大网新图灵通讯】无废话简单高效C#编码规范20100621
- 【浙大网新图灵通讯】无废话简单高效C#编码规范20100612
- 【浙大网新图灵通讯】无废话简单高效C#编码规范20100612
- 【浙大网新图灵通讯】无废话简单高效C#编码规范20100621
- 【浙大网新图灵通讯】无废话简单高效C#编码规范20100612
- 【浙大网新图灵通讯】无废话简单高效C#编码规范20100612
- C#.NET 2005之编码规范
- 用c#实现类似QQ的简单通讯程序
- C# 编码规范和编程好习惯
- C# 编码规范和编程好习惯
- C# 编码规范和编程好习惯
- C# 编码规范和编程好习惯
- C#编码规范