无废话简单高效C#编码规范20100611

 

自己看自己的代码啥问题也没有,但是一个团队、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 是关键字,不建议用关键字做类名、函数名、参数名等。

 

 

将权限管理、工作流管理做到我能力的极致,一个人只能做好那么很少的几件事情。

About

吉日嘎拉可爱的女儿

吉日嘎拉(蒙古语为吉祥如意),2000年毕业于黑龙江大学计算机系软件专业,目前定居杭州,典型的IT软件土鳖一个,外号“软件包工头”。

 

通用权限管理系统组件(GPM - General Permissions Manager)自2003年开始发布,目前是国内注册用户和免费盗版用户最多的权限管理系统,是各种信息管理系统开发中彻底的权限解决方案。本组件支持多种主流数据库(Oracle、sqlsever、db2、mysql),功能强大,使用方便,代码简洁,思路严谨,被广大支持者称为权限管理系统中的“走火入魔级权限管理系统”。

 

精心维护通用权限管理系统组件(GPM - General Permissions Manager)有8年多,3年的不断推广,20万行经典的业务逻辑积累,经过上万次的调试修正,经历了四百个付费客户,上百软件公司的实战开发。

11年以上开发经验,外企工作5年,上市公司3年,独立经营软件公司2年,主持研发部门管理工作4年以上。

将权限管理、工作流做到我能力的极致,一个人只能做好那么很少的几件事情。

吉日嘎拉,通用权限管理系统组件
QQ:252056973,Mail:jirigala_bao@hotmail.com

访问者分布 Locations of visitors to this page

通用权限管理模块的严谨设计定位、精心编码实现、不断维护推广、持续优化改进,主要是为了实现一个可以高度重复利用劳动成果的工具软件并×××给所需的人们,另想成为国人值得骄傲的知名软件功能模块。

可供国内管理类开发人员在日常工作中进行灵活二次开发利用的模块,开发管理类软件的必备工具之一,我们的目标就是让程序员早点儿回家休息。

淘宝店地址:http://jirigala.taobao.com